Avatar billede downloading Nybegynder
22. oktober 2010 - 23:08 Der er 16 kommentarer

SOAP hvad er det for noget? Hvor skal jeg starte

Hej.

Jeg har ikke programmeret php i meget lang tid, men nu skal jeg til at lave en funktion på en hjemmeside hvor jeg skal kunne sende nogle informationer til PostDanmarks webpack funktion, og så modtage en pdf fil som man kan udskrive.

Jeg har kigget lidt på den manual de har sendt mig, og jeg tror jeg skal sende informationerne som SOAP kan det passe?

Jeg er helt blank på det her område, og jeg har googlet og gjort ved, men jeg syntes ikke at kunne finde noget brugbart begynder information om hvordan SOAP og php fungerer sammen, og hvordan jeg skal sende informationerne. Nedenfor er et eksempel fra manualen. Håber der er nogle der kan hjælpe.. Mange tak.

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
                  xmlns:par="http://www.post.dk/webpack2/parcellabel">
  <soapenv:Header/>
  <soapenv:Body>
      <par:generateParcelLabel>
        <authentication>
            <customerNo>999999999</customerNo>
            <password>password</password>
        </authentication>
        <parcels>
            <parcel>
              <collis>
                  <colli>
                    <colliNo>1</colliNo>
                    <remark>Fladskærm</remark>
                    <weight>5</weight>
                  </colli>
              </collis>
              <productCode>PRIVATE</productCode>
              <recipient>
                  <nameLine1>Jesper Cederberg</nameLine1>
                  <postalAddress>
                    <addressId>35612</addressId>
                    <countryCode>DK</countryCode>
                  </postalAddress>
              </recipient>
              <refNo>REF01</refNo>
              <sender>
                  <nameLine1>Post Danmark</nameLine1>
                  <postalAddress>
                    <addressId>12345</addressId>
                    <countryCode>DK</countryCode>
                  </postalAddress>
              </sender>
            </parcel>
        </parcels>
      </par:generateParcelLabel>
  </soapenv:Body>
</soapenv:Envelope>

<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
  <S:Body>
      <ns2:generateParcelLabelResponse ...>
        <parcelLabel>
            <label>...</label>
            <parcels>
              <parcel>
                  <collis>
                    <colli>
                        <barcode>07100003186DK</barcode>
                        <colliNo>1</colliNo>
                    </colli>
                  </collis>
                  <refNo>REF01</refNo>
                  <status>OK</status>
              </parcel>
            </parcels>
        </parcelLabel>
      </ns2:generateParcelLabelResponse>
  </S:Body>
</S:Envelope>
Avatar billede arne_v Ekspert
22. oktober 2010 - 23:25 #1
Hovedregel for brug af SOAP: begynder du at kigge på SOAP XML er du på vej ud på et sidespor!

:-)

Du kunne starte her:
  http://www.php.net/manual/en/class.soapclient.php
Avatar billede downloading Nybegynder
23. oktober 2010 - 00:18 #2
okay.. Tak..

Problemer er bare at jeg uanset hvor jeg kigger, ikke helt kan se sammenhængen af det kode jeg har skrevet, og så det jeg kan finde i de forskellige php manualer. Det jeg sidder med, hvordan skal man sende det til serveren? hvad hedder det?

Mange tak.
Avatar billede arne_v Ekspert
23. oktober 2010 - 00:35 #3
Sammenhængen er at hvis du bruger SoapClient så slipper du for at skrive det SOAP XML du postede.
Avatar billede znopie Nybegynder
23. oktober 2010 - 13:08 #4
Jeg har et script der kan lave dine postlabels ved Post Danmark.

Den kan tjekke om dit password skal lave om, og lave dine labels i PDF

koden fylder 61 linjer, og du er velkommen til at købe den :)
Avatar billede downloading Nybegynder
23. oktober 2010 - 19:12 #5
Er det php? Jeg er interesseret i det, men kun hvis jeg selv kan ændre i det, da det skal sættes ind i en eksisterende internet løsning.

Hvad skal du have for det, og hvor meget tjek og sådan gør det?
Avatar billede znopie Nybegynder
24. oktober 2010 - 12:39 #6
Det er en PHP kode der anvender soap

Koden generere en PDF lavel ud fra angivede prefix f.eks. ordrenummer, firmanavn, navn, adresse, postnummer.

Derudover kommer den med en popup, når din kode skal ændres.

Koden kan du selv tilpasse til din shop.
Avatar billede downloading Nybegynder
24. oktober 2010 - 13:55 #7
lyder jo ummidelbart perfekt. Hvilke indput skal den have? Det logger selv ind med brugernavn opg password og så sender informationerne og generere pdf-en? Hvis pdf-en skal gennems på serveren med et specielt navn kan den så det?

Og hvad skal du have for scriptet?
Avatar billede znopie Nybegynder
24. oktober 2010 - 14:05 #8
PT. står den til at $_POST ved alle de værdier du vil have ind i din postlabel.

Den kalder selv op til Post Danmark ud fra dit brugernavn og adgangskode som du har fået udleveret.

Når værdierne er sendt til Post Danmark, og de retunere dit Track&Trace nummer laver den selv PDF filen, som du kender den fra webpack.

Filen kommer op som en download, hvor du kan sige Åben, Download eller Annuller.

Jeg har brugt ca. 5 timer på at lave koden så enkel og let som muligt, samt at finde ud af dokumentationen fra Post Danmark, så vil have dækket noget af den tid.

Du kan få det for 1000,- incl. moms


Og den sparer virkelig meget tid! - Har gjort det op til at jeg sparer ca. 4-5 timer i ugen på ikke længere at lave pakke labels i det gamle webpack. Det tog ca. 5 min at flytte alle data over i det gamle, hvor det så ikke virkede hver gang :(
Avatar billede downloading Nybegynder
24. oktober 2010 - 14:42 #9
okay.. Det vil sige der ville ikke være nogle problemer i at lave POST'ne om således at jeg kunne kalde scriptet ved fx: webpack.php?id=brugernavn&password=####&pakkenummer=blabla&osv-osv-osv

? Nu er jeg først gået i gang med webpack her nu, men har jeg ikke ret i at det ville være smart at tjekke om pdf'en har været genereret en gang før, for at undgå at man generere to forskellige track&trace numre på pakken og dermed betaler dobbelt? Nu ved jeg ikke hvordan du generer pdf'en og hvor den gemmes? Men jeg ville nemlig gerne have den til at blive gemt på serveren med fx. navnet "#ordrenummer_webpack.pdf", så kunne scriptet nemlig først tjekke om den fil eksisterer, gør den det skal den så ikke sende til webpack igen. Altså hvis en glemmer at han én gang har lavet en pakkelabel til pakken. Kan dit script gemme filen sådan på serveren?

Det lyder rigtig rimeligt, og jeg er meget interesseret.
Avatar billede znopie Nybegynder
24. oktober 2010 - 14:47 #10
Du kan sagtens lave den fra $_POST til $_GET, det er der intet problem i.

For at undgå at den laver en dobbelt track&trace kan du koble den på en database, som husker Track&Trace nummeret ud fra dit ordrenummer/forsendelses nummer. I denne database kan du også gemme pdf koden, så du kan udskrive din label flere gange, hvis du har glemt at printe den ud første gang.

* Du betaler kun for din Track&Trace label, når dit postbud eller posthus scanner din pakke. Derudover er de gratis at lave, dog stiller Post Danmark et maximum for hvor mange du kan lave i timen. Men du betaler ikke før den er scannet i deres system.
Avatar billede downloading Nybegynder
24. oktober 2010 - 14:57 #11
okay. Perfekt. Må jeg lige spørge hvordan du laver pdf'en? er den genereret ud fra en kode via php eller modtager du bare filen fra webpack?

For hvis den er genereret via php, så er det jo meget smart jeg bare gemmer koden og laver den igen ud fra en kode hvis man smider den væk eller kommer til at lave den to gange.

Jeg går straks videre med idén om at købe dit script. Skal jeg bare skrive herinde eller skal jeg maile dig når jeg hører noget nærmere?
Avatar billede znopie Nybegynder
24. oktober 2010 - 15:03 #12
Den modtager en PDF kode fra Post Danmark, hvorefter den bliver genereret til en PDF i den kode jeg har.

Du kan kontakte mig på jonas_jacobsen [SNABEL-A] live.dk
Avatar billede downloading Nybegynder
24. oktober 2010 - 15:09 #13
Så koden til at generere pdf-en ligger også i scriptet, og denne kan jeg tage ud og bruge ved at hive dataen ud fra databasen?
Avatar billede znopie Nybegynder
24. oktober 2010 - 15:11 #14
Ja, alt hvad du skal bruge ligger i den kode. Du skal bare selv tilpasse det efter dit system :)
Avatar billede cthun Nybegynder
05. november 2010 - 09:18 #15
Hej,

Sidder med det samme og kan sagtens få response tilbage fra webpack, men hvordan generere man PDF ud fra det der kommer tilbage i label node. Har prøvet forskellige ting, men siger hver gang at PDF'en ikke er en PDF når jeg prøver at åbne.

Kan vi få et eksempel på hvordan det gøres.

Takker
<cthun>
Avatar billede bahn Nybegynder
10. november 2011 - 22:14 #16
downloading købte du scriptet og virkede det?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester