Ich versuche seit einiger Zeit für den Abruf eines Versandetiketts mit dem DPD-Cloudservice zu kommunizieren, was nur zum Teil funktioniert. Im Prinzip läuft das folgendermaßen ab:
man holt sich mit Username und Passwort von DPD ein “AuthToken”
man verwendet das Token, um eine Order abzusetzen
man erhält von DPD einen langen Base64-String, mit dem PDF für ein Versandetikett.
Mein Problem ist nun, dass Schritt 2 permanent mit “auth fail” beantwortet wird, anstatt das Etikett herauszurücken. Der Support von DPD hat sich die von mir produzierten XML angesehen und behauptet, diese wären ok und würden “durchlaufen” - was sie aber in meiner Xojo-App nicht tun.
Ich vermute nun (wenn also das XML ok ist), dass es irgendwas mit der Art zu tun hat, mit der ich versende, aber: Wieso funktioniert dann der Auth-Prozess, aber nicht das Ordern. Einziger Unterschied ist die Länge …
Ich packe hier mal ein Testprojekt rein, die Test-Zugangsdaten sind nicht persönlich, bei jedem User die gleichen. Ich weiss das Problem ist umfangreich und quasi eine Zumutung fürs Forum. Vielleich hat doch jemand Lust und findet aber jemand die Ursache ganz schnell. Danke!
Im Projekt ist in der Funktion dpd_order() der Großteil des XML-Codes auskommentiert, nur die Authentifikation aktiv, kann man aber ändern. Der Fehler ist im Bereich “order response” im Info-Fenster zu sehen, kurz vor Ende. Danke.
For i=1 To 128
If Not con Then
hsock = New HTTPSecureSocket
hsock.Secure=True
hsock.ConnectionType = SSLSocket.TLSv12
hsock.SetRequestContent(data,"soap/xml")
rbuf=hsock.Post(url,10)
con=(rbuf<>"")
wait 100
End If
Next
Soweit ich sehen kann, versucht da die Socke(t) 128 mal zu verbinden. Das mußt Du nur einmal machen.
Hallo Frank,
ich versuche mich auch gerade an der DPD-API. Hast du mittlerweile eine Lösung? Der Link deines Beispielcodes funktioniert leider (nicht) mehr…
Ich wäre sehr daran interessiert mehr Infos zu bekommen.
Vielen Dank!