0

DPD REST API in Ninox integrieren

Hallo Zusammen,

arbeite mich gerade in die DPD API ein. Habe mir dazu unter https://esolutions.dpd.com/entwickler/dpdwebservices.aspx

einen Entwickleraccount erstellt. Wenn man sich einloggt gibt es dort eine Sandbox welche allerdings komplett eingebettet ist.

Hier wird noch viel mit XML gearbeitet. Oldschool wenn ihr mich fragt.

Es gibt auch für jeden Dienst eine Dokumentation:

LoginService V2.0: https://esolutions.dpd.com/dokumente/LoginService_V2_0.pdf

Wenn ich es richtig verstanden habe, muss man sich hier über die getAuth()-Methode ein Token generieren lassen. Welches immer 24h gültig ist.

ShipmentService V3.2: https://esolutions.dpd.com/dokumente/ShipmentService_V3_2.pdf

Hier kann man Pakete anlegen und bekommt DPD-Label als PDF zurück.

ParcelLifeCycleService V2.0: https://esolutions.dpd.com/dokumente/ParcelLifeCycleService_V2_0.pdf

Hier kann man die Sendungsverfolgung ansprechen.

Was ich gerade nicht verstehe ist, wohin die Requests geschickt werden sollen.

In der Doku des LoginService steht auf Seite 4 und 5 je ein Beispiel für die getAuth()-Methode für SOAP und REST

Beim REST API Teil steht dort als URL: <server:port><path>/LoginService/V2_0/getAuth 

Was soll das den bedeuten? Muss ich den Request etwa an den lokalen Server der DPD PRINT Software schicken?

Ich habe in Ninox einen Button erstellt mit folgendem Code:

'Tokens Date' := text(format(now(), "DD.MM.YYYY-hh:mm:ss"));
let r := do as server
http("GET", "http://dpd.com/common/service/LoginService/2.0/getAuth", {
delisId: "becht172",
password: "2va8n",
messageLanguage: "de_DE"
}, {})
end;
if r.error then
authResponse := "Fehlermeldung: " + text(r.error)
else
authResponse := "Responsemeldung: " + text(r.result)
end

Als Rückmeldung bekomme ich dann:

Fehlermeldung: {"errno":"ECONNRESET","code":"ECONNRESET","syscall":"read"}

Damit kann ich nicht wirklich was anfangen. Denke ich sende auf die falsche URL... aber ich weiss auch nicht welche die richtige sein soll...

Ich bin im Kontakt mit der IT meines Depots aber das dauert bei denen immer bis die Antworten ;)

Falls einer von euch so eine Integration schon programmiert hat und mir hier etwas Hilfe geben kann, gerne Antworten. Ich bin froh und dankbar für jegliche Unterstützung. :)

5 Antworten

null
    • Gunther.1
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo,  so wie ich es sehe ist das Beispiel als POST-Request dargestellt, d.h. Deine Zugriffsdaten müssen als Body in einem Post-Request verbaut werden. Wenn Du weiterhin mit GET arbeiten willst, steht da etwas von request-Parameter. Der muß an die URL angehängt werden mit ..getAuth?request={...}. Dabei muß der Teil {} noch mit urlencode(...) umformatiert werden.

    Viel Erfolg

    • Benjamin_Kromer
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Hallo Zusammen,

    arbeite mich gerade in die DPD API ein. Habe mir dazu unter https://esolutions.dpd.com/entwickler/dpdwebservices.aspx

    einen Entwickleraccount erstellt. Wenn man sich einloggt gibt es dort eine Sandbox welche allerdings komplett eingebettet ist.

    Hier wird noch viel mit XML gearbeitet. Oldschool wenn ihr mich fragt.

    Es gibt auch für jeden Dienst eine Dokumentation:

    LoginService V2.0: https://esolutions.dpd.com/dokumente/LoginService_V2_0.pdf

    Wenn ich es richtig verstanden habe, muss man sich hier über die getAuth()-Methode ein Token generieren lassen. Welches immer 24h gültig ist.

    ShipmentService V3.2: https://esolutions.dpd.com/dokumente/ShipmentService_V3_2.pdf

    Hier kann man Pakete anlegen und bekommt DPD-Label als PDF zurück.

    ParcelLifeCycleService V2.0: https://esolutions.dpd.com/dokumente/ParcelLifeCycleService_V2_0.pdf

    Hier kann man die Sendungsverfolgung ansprechen.

    Was ich gerade nicht verstehe ist, wohin die Requests geschickt werden sollen.

    In der Doku des LoginService steht auf Seite 4 und 5 je ein Beispiel für die getAuth()-Methode für SOAP und REST

    Beim REST API Teil steht dort als URL: <server:port><path>/LoginService/V2_0/getAuth

    Was soll das den bedeuten? Muss ich den Request etwa an den lokalen Server der DPD PRINT Software schicken?

    Ich habe in Ninox einen Button erstellt mit folgendem Code:

    'Tokens Date' := text(format(now(), "DD.MM.YYYY-hh:mm:ss"));
    let r := do as server
    http("GET", "http://dpd.com/common/service/LoginService/2.0/getAuth", {
    delisId: "xxxxxx",
    password: "xxxxxxx",
    messageLanguage: "de_DE"
    }, {})
    end;
    if r.error then
    authResponse := "Fehlermeldung: " + text(r.error)
    else
    authResponse := "Responsemeldung: " + text(r.result)
    end

    Als Rückmeldung bekomme ich dann:

    Fehlermeldung: {"errno":"ECONNRESET","code":"ECONNRESET","syscall":"read"}

    Damit kann ich nicht wirklich was anfangen. Denke ich sende auf die falsche URL... aber ich weiss auch nicht welche die richtige sein soll...

    Ich bin im Kontakt mit der IT meines Depots aber das dauert bei denen immer bis die Antworten ;)

    Falls einer von euch so eine Integration schon programmiert hat und mir hier etwas Hilfe geben kann, gerne Antworten. Ich bin froh und dankbar für jegliche Unterstützung. :)

    • Benjamin_Kromer
    • vor 4 Jahren
    • Gemeldet - anzeigen

    So musste den Beitrag nochmal neu schreiben. Ist nicht so cool wenn man seine Zugangsdaten in Klartext postet. ;)

    Vielen Dank für deine Antwort Günther. Habe beides probiert bekomme beides mal die gleiche Rückmeldung.

    Aber ich bin mir eben auch gar nicht sicher bei der URL. Falls noch jemand was weiss immer zu posten. Sobald ich was herausfinde schreib ich es hier auch rein.

    • Benjamin_Kromer
    • vor 4 Jahren
    • Gemeldet - anzeigen

    Update: Wie ich jetzt erfahren habe kann man das Token welches jeden Tag generiert werden muss via REST API Requests abfragen den Shipment Service und alle anderen Services kann man jedoch nur via SOAP ansprechen.

    Hat schon jemand Erfahrungen mit SOAP-Requests in ninox?

    Nachfolgend WSDL-Links:

    • Jan_Hellwage
    • vor 3 Jahren
    • Gemeldet - anzeigen

    Ist das Problem gelöst? Würde mich sehr interessieren, da ich mich damit jetzt auch wieder auseinandersetzen werde.

    Liebe Grüße

    Jan

Content aside

  • vor 3 JahrenZuletzt aktiv
  • 5Antworten
  • 2004Ansichten