Teknisk Handbok För ebrev Webb via WebService Gäller från den 25 maj 2009. 2 Teknisk Handbok ebrev Webb, Web Services V1.2_040614



Relevanta dokument
Teknisk Handbok För ebrev Webb via WebService Gäller från den 21 januari Teknisk Handbok ebrev Webb, Web Services V1.

Gäller fr o m 1 januari ebrev Webb Teknisk handbok

DUGGA: Objektorienterade applikationer. Läs detta! Uppgifterna är inte avsiktligt ordnade efter svårighetsgrad.

Tänk på följande: Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Webservice tjänsten GetPerson Slagning mot befolkningsregister

Chapter 3: Using Classes and Objects

Introduktion till integrering av Schenkers e-tjänster. Version 2.0

Objektorienterad programmering D2

Fördjupad Java. Undantagshantering. Fel

Översikt. Installation av EasyPHP 1. Ladda ner från Jag använder Release Installera EasyPHP.

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

OOP Objekt-orienterad programmering

Objektorienterad programmering i Java

Användarmanual Pagero Connect 2.0

Tentamen OOP

Tentamen på kursen DA7351, Programmering , kl Malmö högskola Teknik och samhälle. DA7351, Programmering

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Lösningsförslag, tentamen FYTA11 Javaprogrammering

Tentamen, EDAA20/EDA501 Programmering

Tentamen, EDA501 Programmering M L TM W K V

Evodev AB web epost Telefon Fax

Att skriva till och läsa från terminalfönstret

Grundläggande programmering med C# 7,5 högskolepoäng

Snabbguide till Vårdfaktura

Teknisk guide för brevlådeoperatörer

Services + REST och OAuth

Retrieve a set of frequently asked questions about digital loans and their answers

Snabbguide till Avstämningsfunktionen 2.0

GATEWAY TJÄNSTEBESKRIVNING. Webbservice. WSDL-fil. Skicka meddelanden. SMS och FastnätsSMS

Objektsamlingar i Java

SMD 134 Objektorienterad programmering

Programmering A C# VT Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson

Webbtjänster med API er

Tryck på Ansök här i vänstermenyn, se nedan.

API Notera HTTPS POST msg UTF-8. API_key JSON Mobilnummer format 1. Skicka ett SMS till specifikt nummer POST parametrar: from msg API_key Exempel:

InTime HTTP API. Översikt funktioner. Webbtjänster för systemintegration med InTime Messenger.

DELPROV 1 I DATAVETENSKAP

Om du vill hitta tillbaka till din sektion klicka på fliken i huvudmenyn som heter organisation.

trafiksimulering Intro OU5 trafiksimulering

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016

Objektorienterad Programmering (TDDC77)

Tentamen , Introduktion till Java, dtaa98, dtea53

ANVÄNDARMANUAL. handdatorer i ängs- och betesmarksinventeringen. för

Lösningsförslag. Programmeringsmetodik, KV: Java och OOP. 17 januari 2004

Snabbguide Visma Compact API Version 5.1 Copyright Visma Spcs AB Visma Compact API

Användarhandledning. Procapita Vård och Omsorg Konvertering av worddokument till PDF/A

Laboration 10 - NetBeans

Bas - Utvecklingsstöd

TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. VT-13 Datum: Tid: kl

Mail för attest. Skickas ett mail till den som skapade och till den som attesterade rapporten om felet, åtgärda felet för ett nytt inrapportering

En snabb titt på XML LEKTION 6

Vårdfaktura Bokföringsfil och Kontering

Språkkonventioner och redigering av tal.

Tentamen i Objektorienterad programmering

Innehåll Introduktion... 3 InteractiveScene.config... 3 Scener <scenes>... 3 Typsnitt <fonts>... 3 Övergångar <transitions>...

PROGRAMMERING A VC# 2008 EXPRESS UTVECKLINGSVERKTYGET VISUAL C#

ANVÄNDARMANUAL. handdatorer i ängs- och betesmarksinventeringen. för

Kapitel 6. Hakparenteser fšr att ange index MŒnga všrden av samma typ

Tentamen. Grundläggande programmering i Java A 5p, DTAA

MVK SSO 2.0 Mina vårdkontakter

SmiNet 2 Manual Webanmälan

6 Rekursion. 6.1 Rekursionens fyra principer. 6.2 Några vanliga användningsområden för rekursion. Problem löses genom:

DHL subset av SFTI Svefaktura

Chapter 4: Writing Classes/ Att skriva egna klasser.

EndNote online. T5 ht 2015 Therese Nilsson/Camilla Persson

Föreläsning 7. Träd och binära sökträd

Tentamen TEN1 HI

Frågebanker, frågeuppsättningar och slumpvisa block

Dokumentation. Ver Sida 1

Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga)

Att använda pekare i. C-kod

Allmänna anvisningar: Skriv dina svar på svarsblanketten (se nästa sida) Markera och ange alla svar tydligt och entydigt efter instruktionerna.

Föreläsning 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc

Guide till hur jag ansöker i Idrottslyftet 2014 till projekt: Damhockeysymposium

Digital Display VDS / Bus2

Lösenordsportalen Hosted by UNIT4 For instructions in English, see further down in this document

Tentamen. 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl

Det här dokumentet är till för att ge en översikt över ASP.NET MVC samt hur WCF Services används från.net applikationer.

Examination i. PROGRAMMERINGSTEKNIK F1/TM1 TIN212 (Dugga) Dag: Onsdag Datum: Tid: (OBS 3 tim) Rum: V

Parsing med Recursive Descent, Avbildningsklasser. Syntaxdiagram. Syntaxdiagram och kodning expression. Betrakta följande uttryck

Handledning för publicering av avhandlingar och andra vetenskapliga publikationer i DiVA

Introduktion Schenker-BTL AB, Stab IT Beskrivning över informationsintegreringmed Schenker, metodbeskrivning version 1.

FactoryCast HMI. Premium & Quantum PLC. Applets

Innehåll. Förändringar i v5

Användarhandbok för e-curia

Startsida. Högskolan Dalarna

eremiss 3.23 Webservices integration

Utbildningsmaterial Personec Förhandling

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

PNSPO! Exporterar och Importerar texter från CX- Designer. 20 mars 2012 OMRON Corporation

"if"-satsen. Inledande programmering med C# (1DV402)

Dugga Datastrukturer (DAT036)

Hämta data mha URLer Föreläsning 2b. Innehåll Klassen URL

DAT043 Objektorienterad Programmering

OOP Omtenta

Föreläsning 13 och 14: Binära träd

Beslut om betalningsföreläggande

LEFI Online. Anslutningsinformation

Transkript:

Teknisk Handbok För ebrev Webb via WebService Gäller från den 25 maj 2009 2 Teknisk Handbok ebrev Webb, Web Services V1.2_040614

Innehåll 1 Introduktion... 3 1.1 Allmänt... 3 1.2 Så skickar ni ebrevwebb via WebService... 3 1.3 Testrutiner... 3 4 Beskrivning av ebrev Webbservices... 4 4.1 Kommunikationsöversikt... 4 5 Filstruktur på zip-arkiv... 5 5.1 Brevfil... 5 5.2 Adresslista... 6 5.2.1 Utlandsförsändelser... 6 5.3.Konfigurationsfil ebrev-webbd.cfg... 7 6 API... 9 Autentisering... 9 Exceptions och felkoder... 9 Returvärden... 9 6.1 Metoder... 9 6.1.1 sendwithaddressing... 9 6.1.2 Ping... 9 6.2 Exceptions och felkoder... 11 7 Kundstöd... 12 8 FAQ... 13 9 Exempel... 14 9.1 Konfigurationsfil med separat adressfil... 14 9.2 Konfigurationsfil med adresslista och giro information... 15 9.2 Kodexempel... 16 9.2.1 Sändning med Java (>=1.5)... 16 9.2.2 Sändning med C# (MS Visual Studio.NET 3.5 WCF)... 17 2 av 17

1 Introduktion Med ebrev Webb kan ni göra stora enhetliga utskick av brev. Dokument och adressfil skickas elektroniskt till Posten, som skriver ut och distribuerar fysiska försändelser. ebrev Webb är öppen dygnet runt, de beställningar ni skickar innan 20.00 levereras nästa dag (Apost) eller inom tre dagar (B-post). Ni kan skicka dokument i färg (endast B-post) eller svart/vitt. På www.posten.se under finns all information om ebrev Webb. Ni kan lämna dokument på två sätt till ebrev Webb. Antingen med ID på www.posten.se, eller genom att använda dator till datorkommunikation via Webbservice. 1.1 Allmänt Senaste versionen av den här handboken finns på www.posten.se. För att använda Webbservice krävs att ni är upplagd som kund, vilket görs på www.posten.se ni tillsammans med Posten gör tester innan första uppdrag sänds in. 1.2 Så skickar ni ebrevwebb via WebService 1. Ni levererar ett ziparkiv till Posten. 2. Vi kontrollerar att filens struktur och varnar för eventuella felaktigheter som inte hänger ihop med utskriftsdatat. 3. Filen fördelas mellan de olika utskriftscentralerna där den skrivs ut, kuverteras och lämnas för utdelning. 4. Följesedel och faktura sänds till er. 1.3 Testrutiner Implementeringen av Webbservices måste alltid testas och godkännas av Posten. Beskrivning av testförfarandet: 1. Posten och testansvarig hos er gör tidsplan och testscenarios. 2. Testerna sker i delmoment. inloggning och kommunikation mot testmiljö för Webbservice/PWS uppladdning av zip-arkivet mot testmiljön. Kontroll av ingående filer. Kontroll av layout, typografi och kvalitet på brev av Posten. Adress filen för test ska innehålla några fiktiva mottagare. När testerna är avslutade och godkända av Posten är ni redo för att skicka försändelser mot produktionsmiljön. 3 av 17

4 Beskrivning av ebrev Webbservices 4.1 Kommunikationsöversikt Posten publicerar webservices för att underlätta kommunikation mot tjänsten ebrev Webb. För ebrevwebb kallas denna service PWS (Posten Web Service). 4 av 17

5 Filstruktur på zip-arkiv För att skicka in data till ebrev Webb via webbservice-tjänsten skickas ett komprimerat filarkiv i formatet zip. Zip-arkivet ska innehålla tre alternativt två stycken filer: Brevfil (PDF eller Word doc) Konfigurationsfil (cfg) med eller utan adresslista. Adresslista (txt) om adresser ej återfinns i konfigurationsfilen. Zip fil måste vara komprimerad på ett sådant sätt att det går att öppna med WinZip. Den får inte vara skyddad med lösenord eller liknande. 5.1 Brevfil Brevfilen ska vara i Microsoft Word eller PDF-format. För inskickande av framförallt PDF dokument finns ett antal begränsningar och regler. Dessa återfinns på http://www.posten.se/c/ebrevwebb_hjalp. Word dokument får endast innehålla bilder (gif, tiff, jpg, bpm), word grafik och text. 5 av 17

5.2 Adresslista Listan på mottagare kan levereras på två olika sätt: Som en del av cfg filen (att föredra, se nästa kapitel). Som en separat tab avgränsad text fil. Oavsett metod så tillämpas reglerna nedan. Adressfilen ska vara en tabbavgränsad textfil namngiven med ändelsen.txt, t ex. adresser.txt. Filen skall vara sparad i ANSI/ISO-8859-1 format. UTF-8 godkänns inte. Bokstaven 'Ã' får ej användas i adresslistor Endast en mottagare fylls i per rad. Max 41 tecken i varje fält (om ej annan nämns nedan). Max 5000 adressater. Följande tabbavgränsade fält ska finnas med Name Address2 Address3 address4 Zip city country Namn Adressrad Adressrad Adressrad Postnr Postort Landskod Fältnamn Förklaring. Namn (mottagare) Adressrad1 Adressrad2 Adressrad3 Postnr Postort Landskod max 41 tecken obligatoriskt värde max 41 tecken max 41 tecken max 41 tecken max 12 tecken obligatoriskt värde max 41 tecken obligatoriskt värde max 2 tecken obligatoriskt värde, SE för Sverige Med giroinfo: pgbg gironumber betalningsmottagare belopp ocr text1-text6 PG = postgiro, BG = bankgiro obligatoriskt värde beroende på typ, max 20 tecken - obligatoriskt värde betalningsmottagare, max 30 tecken - obligatoriskt värde belopp i kronor, ören - obligatoriskt värde ocr nummer. fritextfält som visas i meddelandefältet, max 30 tecken. Kontakta Posten support för adressfilsmallar. 5.2.1 Utlandsförsändelser För att skicka brev till utländska mottagare krävs att en korrekt landskod anges. Landskoden skall följa ISO 3166 standard. Zip och City är obligatoriska värden oavsett vilket land som försändelsen skall till, adressfälten 1-3 är frivilliga och kan innehålla max 41 tecken. Debitering sker enligt gällande portotabell. 6 av 17

5.3.Konfigurationsfil ebrev-webbd.cfg Konfigurationsfilen är unik för ebrev webbservices. XML filen innehåller data som avsändare, mottagare, uppdragstyp och liknande. Filen är en XML-struktur och teckenkoden ska vara UTF-8 Exempel återfinns i kapitel 9. Definitioner på XML taggar <SenderData> Tag <UserID> <BPN> <Email> Beskrivning Värdet i fältet AnvändarID ska vara det som valts vid registrering Värdet som ni tilldelats enligt välkomstbrevet. Det är ett numeriskt värde om tio positioner inkl två inledande nollor (ex. 0022233311). Kontakt adress som används vid eventuella störningar. <PriceInfo> alt <ProductOptions> Tag <ColorType> <DeliveryType> <DocumentId> Beskrivning '1' för färg 0 för svartvitt utskrift A' för 1:a klassbrev; 'B' för ekonomibrev 1 = Med försättsblad (dvs mottagare och avsändare skrivs på ett eget ark) 2 = Giro (endast B-Kort och endast via Posten.se) 3 = Giro (information ligger i bifogad adressfil) 4 = Utan försättsblad (mottagare och avsändare skrivs på dokumentets förstasida) <SenderAddress> Avsändaradressen i breven dit obeställbar post returneras. Max 41 tecken per adressrad. Tag Beskrivning <addressline1> Avsändarens namn <addressline2> Adressrad 2 (gata) <addressline3> Adressrad 3 <addressline4> Adressrad 4 <Zipcode> Max 8 tecken <Country> Endast SE som avsändare 7 av 17

<Attachments> Det finns tre stycken attachment typer; PDF, DOC och Adresslista. PDF och DOC pekar ut brevfilen och Adresslista pekar ut en tab separerad adressfil (då sådan används). Om du väljer att ange mottagarna i cfg filen behövs inte denna sektion. Tag <Type> <Name> <Email> Beskrivning Filtyp. DOC, PDF alt Adresslista Filens namn Kontakt adress som används vid eventuella störningar. Ex. <Attachments> <Type>PDF</Type> <Name>pdf.pdf</Name> </Attachments> <Attachments> <Type>Adresslista</Type> <Name>listan.txt</Name> </Attachments> Recipients Denna array innehåller mottagaradresser. När denna array återfinns i cfg filen behövs ingen fristående adressfil. Fältens innehåll och begränsningar beskrivs i kapitlet 5.2 <Recipients> <Letter> <File>DOCUMENT.PDF</File> <ZipCode>806 36</ZipCode> <City>GÄVLE</City> <Country>SE</Country> <RecipientName>Gunilla Åberg</RecipientName> <AddressLine1/> <AddressLine2>Ängsullsvägen 6</AddressLine2> <AddressLine3/> </Letter> </Recipients> Med giro info skall även nedanstående ingå I Recipient taggen: <GiroInfo> <GiroType>PG</GiroType> <GiroNumber>12345</GiroNumber> <Amount>100,20</Amount> <SenderName>robert</SenderName> <OCR>848484848488</OCR> <RefText1>Detta är en fritext</reftext1> <RefText2/> <RefText3/> <RefText4/> <RefText5/> <RefText6/> </GiroInfo> 8 av 17

6 API Autentisering För HTTP Basic anges användare och lösenord som en base64-kodad HTTP-header enligt RFC-1945. Exceptions och felkoder Metoden sendwithaddressing och send kastar exceptions när försändelsen inte är godkänd eller vid driftsstörningar, dessa fel måste hanteras av klientapplikationen. En beskrivning av felkoderna återfinns i kapitel 6.2 Returvärden Det returvärde (märke) som returneras från send metoderna skall alltid sparas av kund. Det bör kopplas ihop med det data som du skickat in till Posten i en databas eller liknande. Detta märke används av Posten servicedesk för att referera till er försändelse. Detta märke skall även användas vid reklamation. 6.1 Metoder 6.1.1 sendwithaddressing String sendwithaddressing( byte[] data, String tfsmsgtype, String tfssender, String tfsreceiver ) Returvärde: Sträng innehållande statuskod och transaktionsreferens (ex. 200 PWS.xxxx.xxxx.xxxx). Beskrivning: Sänd data som ett argument i form av en minnesbuffert samt adresseringsparametrar. tfsmsgtype samt tfsreceiver är i normala fall ebrevwebb, tfssender är kundunikt id. 6.1.2 Ping String ping() Beskrivning Kontrollerar webbservicens status. Endast för test. Vad noga med att inte anropa denna metod mellan varje anrop till sendxxx då detta förlänger processtiden för dina inskick. Returvärde En sträng. pong. 9 av 17

6.1.3 Send Send ersätts av sendwithaddressing och skall ej användas annat än för bakåtkompabilitet. Synopsis: String send( byte[] data ) Returvärde: Sträng innehållande statuskod och transaktionsreferens (märke). Beskrivning: Sänd data som ett argument i form av en minnesbuffert. Adressering sker med SOAP-Headers. Headers: TFSSnd avsändaradress TFSRec mottagaradress TFSMsgType meddelandetyp SOAP Headers För korrekt hantering i ebrev Webb via Webbservices krävs utöver själva meddelandet vissa metadata som styr meddelandeflödet, t ex avsändare och mottagare, meddelandetyp och önskade kvittenser. Dessa uppgifter anges normalt direkt i meddelandet på något av de headerformat som specificerats av Posten men i PWS finns även möjlighet att ange dessa som SOAP Headers. Det finns även möjlighet att ange egendefinierade attribut kring meddelandet som dock inte blir Teknisk Handbok ebrev Webb, Web Services V1.2_040614 9 synliga för mottagaren. Dessa attribut registreras dock i TFS och förblir associerade med ursprungsmeddelandet och synliga när tex beställda kvittenser erhålls. De kan innehålla information som bara är av intresse för avsändaren tex avsändarens interna meddelande-id. Headers i förfrågan TFSSnd (obligatorisk) Avsändarens adress. Adressen måste tillsammans med eventuell kvalificerare vara registrerad i TFS och knuten till ett avtal med Posten. Adressen erhålls av Posten. TFSRec (obligatorisk) Mottagarens adress. Måste också vara kopplad till ett avtal med Posten. Vid användning av ebrevwebb via WebService ska adressen vara EBREVWEBB. TFSMsgType (obligatorisk) Meddelandetyp enligt Posten. I denna tjänst ska det stå EBREVWEBB 10 av 17

6.2 Exceptions och felkoder När PWS inte accepterar en försändelse kastar den ett s.k. exception. Exempel av utskrift av ett felmeddelande från ett exception; Errorcode: (300) Invalid zip. Too few files, found: 2, expected: 3 I felmeddelandet återfinns en felkod som beskrivs nedan Kod Beskrivning 200 OK 300 Ej godkänd zip fil. 301 Ej godkänd cfg fil 302 Konfigurationsfil saknas 303 Felaktigt dokument 304 Dokument (doc/pdf) saknas 305 Adresslista saknas 306 Ogiltig adresslista 307 Konverterings fel kontakta support. 308 Kommunikationsfel,kontakta support. 309 Felaktig teckenuppsättning (character set). Adresslistan skall vara ANSI (ISO- 8859-1). Config skall vara UTF-8. 310 XML Parsning misslyckades, felaktig konfig fil 312 Dokumentnamned i CFG stämmer ej överens med filens namn 313 Zip filen är för stor (MAX 3MB) 314 Dokumentet är för stort (MAX 3MB) 315 SOAP header saknas (endast om du använder send. Byt till sendwithadressing metoden istället. 316 Konverterings fel, kontakta support. 317 För många mottagare i adressfilen 318 Ogiltigt PDF. Vanligast förekommande när dokumentet skapats av Ghostscript i kombination med TTF fonter. Kontrollera vilket dokument som skapat PDF en samt att fonterna (typsnitten) som används är giltiga. Fonter som har namn av typen xxxx+tte är ej giltiga. 319 Felaktigt antal sidor i dokumentet. Min 1 Max 6 (12 för b-post). 11 av 17

7 Kundstöd Postens Service Desk har öppet 07.00 21.00 vardagar på 020-55 77 00. Frågor om priser, tilläggstjänster etc. besvaras av er säljare på Posten eller av Posten Kundtjänst Företag (020-23 22 20, www.posten.se). Posten Kundtjänst Företag 105 00 Stockholm Tel 020-23 22 20. Fax 08-28 81 77 kundtjanst.foretag@posten.se Du hittar också information på www.posten.se 12 av 17

8 FAQ När kan kunden skicka in sina brev? Tjänsten är öppen dygnet runt med undantag för service. Vart vänder kunden sig när han har kommunikationsproblem? Man vänder sig till Postens Service Desk på telefon 020-55 77 00 Vilka SOAP-standarder stöds? PWS stödjer de inofficiella W3C-standarderna: SOAP 1.1, http://www.w3.org/tr/soap WSDL 1.1, http://www.w3.org/tr/wsdl Vilka implementationer av SOAP är kompatibla med PWS? PWS bygger på Apache Axis 1.1. Kompabilitet med andra SOAP-implementationer framgår av diverse interoperabilitetstester, t ex http://www.whitemesa.com/interop.htm. I strävan att bibehålla kompabilitet har i möjligaste mån komplexa datatyper undvikits i parametrar och returvärden. 13 av 17

9 Exempel 9.1 Konfigurationsfil med separat adressfil OBS! teckenkodning i UTF-8 Filnamn=eBREV-WebbD.cfg Exempel med fristående adresslista: <?xml version="1.0" encoding="utf-8"?> <Config xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:nonamespaceschemalocation="c:\xml\config.xsd"> <SenderData> <UserId>xxxx</UserId> <CustomerId>yyyy</CustomerId> <BPN>1234567</BPN> <DocumentId>4</DocumentId> </SenderData> <PriceInfo> <ColorType>0</ColorType> <DeliveryType>B</DeliveryType> </PriceInfo> <senderaddress> <addressline1>företaget AB</addressLine1> <addressline2>box 123</addressLine2> <addressline3></addressline3> <addressline4></addressline4> <zipcode>12345</zipcode> <city>stockholm</city> <country>se</country> </senderaddress> <Attachments> <Type>DOC</Type> <Name>doc.doc</Name> </Attachments> <Attachments> <Type>Adresslista</Type> <Name>adresses.txt</Name> </Attachments> </Config> 14 av 17

9.2 Konfigurationsfil med adresslista och giro information Denna typ av config är att föredra framför den där mottagaradresserna levereras i en separat text fil. <?xml version="1.0" encoding="utf-8"?> <Config> <SenderData> <BPN>0020000000</BPN> <UserId>myuser</UserId> <Email>kale@mycompany.com</Email> </SenderData> <ProductOptions> <ColorType>0</ColorType> <DeliveryType>B</DeliveryType> <DocumentId>3</DocumentId> </ProductOptions> <SenderAddress> <AddressLine1></AddressLine1> <AddressLine2></AddressLine2> <AddressLine3></AddressLine3> <AddressLine4></AddressLine4> <ZipCode>12345</ZipCode> <City>Mycity</City> <Country>SE</Country> </SenderAddress> <Recipients> <Letter> <File>DOCUMENT.PDF</File> <ZipCode>75435</ZipCode> <City>Uppsala</City> <Country>SE</Country> <RecipientName>Kalle Kanin</RecipientName> <AddressLine1>Gatan 123</AddressLine1> <AddressLine2 /> <AddressLine3 /> <GiroInfo> <GiroType>PG</GiroType> <GiroNumber>123-123</GiroNumber> <Amount>100,01</Amount> <PaymentReceiver>My Company</PaymentReceiver> <OCR>848484848488</OCR> <RefText1>Fritext</RefText1> <RefText2></RefText2> <RefText3></RefText3> <RefText4></RefText4> <RefText5></RefText5> <RefText6></RefText6> </GiroInfo> </Letter> </Recipients> </Config> 15 av 17

9.2 Kodexempel Kodexemplen som anropar PWS tjänsten i detta avsnitt är skrivna i Java (nyttjar produkten Axis från Apache; http://ws.apache.org/axis/) samt i C# (MS Visual Studio.NET). Exemplen måste kompletteras med kundunika parametrar. Observera att testmiljön och produktionsmiljön använder sig av olika URL er samt inloggningsinformation. Observera att dessa exempel inte är kompletta utan skall endast användas som en vägledning. 9.2.1 Sändning med Java (>=1.5) import java.io.bytearrayoutputstream; import java.io.fileinputstream; import java.io.ioexception; import java.io.inputstream; import java.net.url; import javax.xml.namespace.qname; import org.apache.axis.client.call; import org.apache.axis.client.service; public class Pws2Sample { public final String NAMESPACE = "http://pws.posten.se"; public final int BUFSIZE = 8152; /** * Endpoint make sure it is correct! */ public final String ENDPOINT = "http://localhost:9081/pws/services/pws"; /** * Authentication. Change here */ public String username = "YOUR_USER"; public String password = "YOUR_PASSWORD"; public byte[] getbytebuffer( InputStream is ) throws IOException { ByteArrayOutputStream os = new ByteArrayOutputStream(); byte[] buf = new byte[bufsize]; int len; while( true ) { len = is.read( buf, 0, buf.length ); if( len < 0 ) break; os.write( buf, 0, len ); return os.tobytearray(); public void go(string filename){ try { InputStream is = new FileInputStream( filename ); // Replace sender with your own user String tfsmsgtype = "EBREVWEBB"; String tfssender = "Company X"; String tfsreceiver = "EBREVWEBB"; Service service = new Service(); 16 av 17

Call call = (Call) service.createcall(); call.settargetendpointaddress( new URL( ENDPOINT ) ); call.setoperationname( new QName( NAMESPACE, "sendwithaddressing" ) ); call.setusername( username ); call.setpassword( password ); String result = (String) call.invoke( new Object[] {getbytebuffer(is), tfsmsgtype, tfssender, tfsreceiver ); // The result contains 200 + mark (e.g. "200 SOAP.xxx.xxx") System.out.println(result); catch( Exception e ) { // Message contains error code and description // Consult your manual for more information. e.getmessage(); public static void main( String[] args ) { Pws2Sample sample = new Pws2Sample(); sample.go(args[0]); 9.2.2 Sändning med C# (MS Visual Studio.NET 3.5 WCF) Kodfragment. Koden använder sig av en proxy klass (SendClient) som genererats av Visual Studio. // Avoids the first (505) error System.Net.ServicePointManager.Expect100Continue = false; // Load the zip as a binary string filename = c:/mytestfile.zip System.IO.FileStream fs = File.OpenRead(filename); byte[] data = new byte[fs.length]; fs.read(data, 0, data.length); EndpointAddress ea = new EndpointAddress(endpoint); // <-- Insert the correct URL // Setup security BasicHttpBinding basic = new BasicHttpBinding(); basic.security.mode = BasicHttpSecurityMode.TransportCredentialOnly; basic.security.transport.clientcredentialtype = HttpClientCredentialType.Basic; pws2.sendclient client = new pws2.sendclient(basic,ea); client.clientcredentials.username.username = "xxx"; // <-- Change here client.clientcredentials.username.password = "yyy"; // <-- Change here try { // The result contains 200 + mark (e.g. "200 PWS.xxx.xxx") // Save this in a database for later reference! string result = client.sendwithaddressing(data, "EBREVWEBB", "Your company", "EBREVWEBB"); // <-- Change TfsSnd (Your Company) here lststatus.items.add("result:" + result); catch (FaultException fe) { // Add proper error handling! MessageBox.Show(fe.ToString()); catch (Exception eee) { MessageBox.Show(eee.ToString()); 17 av 17