Delphi-PRAXiS
Seite 3 von 4     123 4      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   DHL-API mit RESTClient (https://www.delphipraxis.net/216501-dhl-api-mit-restclient.html)

shebang 8. Jan 2025 17:30

AW: DHL-API mit RESTClient
 
Wenn das hier funktioniert, dann ist wohl dein API-Key nicht korrekt:
Code:
curl https://api-eu.dhl.com/track/shipments?trackingNumber=0 -H DHL-API-Key:demo-key

hstreicher 8. Jan 2025 18:18

AW: DHL-API mit RESTClient
 
Hello,

DHL also offers its own client for generating the labels
dhl pollingclient

it periodically checks for/reads a simple csv file with the address and parcel data (sizes, weight (customs codes for foreign shipments))
and returns the file with the tracking number so it can be read into your system


regards
hannes

TUhr 8. Jan 2025 22:50

AW: DHL-API mit RESTClient
 
Hallo,

ich habe das vor einigen Jahren mal in C++ Builder realisiert über die HTTP Schnittstelle und SOAP.
Meine Anwendung erstellt allerdings nur Labels (National) und prüft Adressen.

Wenn da Interesse besteht bitte Bescheid geben.

MfG
Thorsten Uhr

Ykcim 9. Jan 2025 08:37

AW: DHL-API mit RESTClient
 
Guten Morgen zusammen,

@Thorsten, vielen Dank für das Angebot. Da hätte ich großes Interesse dran. Ich muss zwar eine internationale Schnittstelle bauen, aber ich denke, es wird sehr hilfreich sein!

dummzeuch 9. Jan 2025 11:24

AW: DHL-API mit RESTClient
 
Zitat:

Zitat von shebang (Beitrag 1544955)
Wenn das hier funktioniert, dann ist wohl dein API-Key nicht korrekt:
Code:
curl https://api-eu.dhl.com/track/shipments?trackingNumber=0 -H DHL-API-Key:demo-key

Das ist definitiv eine gute Idee:

Damit kann man auch ein Delphi-Programm füttern und testen, ob es prinzipiell funktioniert.

Ich hatte auf der Seite von DHL gar nichts zu diesem Demo-Datensatz und Demo-Key gelesen, aber ich bin auch nicht besonders tief eingestiegen, da ich aktuell keine Verwendung dafür habe.

Ykcim 9. Jan 2025 14:59

AW: DHL-API mit RESTClient
 
Das habe ich getestet - diese Möglichkeit hatte ich nicht gesehen.
Hier bekomme ich über CURL ein Ergebnis geliefert.

Ich vermute, dass mein Key nicht zu der API passt. Für die API würde ich einen housebill Code benötigen. Eine Sendungsnummer kann man darüber wohl auch ermitteln, aber das hat nicht funktioniert. Ich habe jetzt weitere API's der App hinzugefügt, die aber noch nicht alle freigeschaltet wurden.

Wenn ich schlauer bin, melde ich mich wieder!

Vielen Dank
Patrick

TUhr 9. Jan 2025 23:25

AW: DHL-API mit RESTClient
 
Hallo,

Diese Datei als Stream laden und die Platzhalter in eckigen Klammern mit Deinen Parametern ersetzen :

Code:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:cis="http://dhl.de/webservice/cisbase" xmlns:ns="http://dhl.de/webservices/businesscustomershipping/3.0">
   <soapenv:Header>
      <cis:Authentification>
         <cis:user>[Benutzername]</cis:user>
         <cis:signature>[Passwort]</cis:signature>
      </cis:Authentification>
   </soapenv:Header>
   <soapenv:Body>
      <ns:CreateShipmentOrderRequest>
         <ns:Version>
            <majorRelease>3</majorRelease>
            <minorRelease>1</minorRelease>
         </ns:Version>
         <ShipmentOrder>
            <sequenceNumber></sequenceNumber>
            <Shipment>
               <ShipmentDetails>
                  <product>V01PAK</product>
                  <cis:accountNumber>[Produkt]</cis:accountNumber>
                  <customerReference>[Sendungsreferenz]</customerReference>
                  <shipmentDate>[Sendungsdatum]</shipmentDate>
                  <costCentre></costCentre>
                  <ShipmentItem>
                     <weightInKG>[Gewicht]</weightInKG>
                  </ShipmentItem>
                  <Service>
                  </Service>
               </ShipmentDetails>
               <Shipper>
                  <Name>
                     <cis:name1>Xxxxxxx GmbH</cis:name1>
                     <cis:name2></cis:name2>
                     <cis:name3></cis:name3>
                  </Name>
                  <Address>
                     <cis:streetName>Xxxxxxstrasse</cis:streetName>
                     <cis:streetNumber>4</cis:streetNumber>
                     <cis:zip>53225</cis:zip>
                     <cis:city>Bonn</cis:city>
                     <cis:Origin>
                        <cis:country></cis:country>
                        <cis:countryISOCode>DE</cis:countryISOCode>
                     </cis:Origin>
                  </Address>
                  <Communication>
                     <!--Optional:-->
                     <cis:phone>+49228xxxxxx</cis:phone>
                     <cis:email>info@xxxxxx.de</cis:email>
                     <!--Optional:-->
                     <cis:contactPerson>Kontaktperson Absender</cis:contactPerson>
                  </Communication>
               </Shipper>
               <Receiver>
                  <cis:name1>[EmpfaengerName1]</cis:name1>
                  <Address>
                     <cis:name2>[EmpfaengerName2]</cis:name2>
                     <cis:name3>[EmpfaengerName3]</cis:name3>
                     <cis:streetName>[EmpfaengerStrasse]</cis:streetName>
                     <cis:streetNumber>[EmpfaengerHausnummer]</cis:streetNumber>
                     <cis:zip>[EmpfaengerPLZ]</cis:zip>
                     <cis:city>[EmpfaengerOrt]</cis:city>
                     <cis:Origin>
                        <cis:country></cis:country>
                        <cis:countryISOCode>DE</cis:countryISOCode>
                     </cis:Origin>
                  </Address>
               </Receiver>
            </Shipment>
            <PrintOnlyIfCodeable active="1"/>
         </ShipmentOrder>
         <labelResponseType>URL</labelResponseType>
         <groupProfileName></groupProfileName>
         <labelFormat>910-300-610</labelFormat>
         <labelFormatRetoure></labelFormatRetoure>
         <combinedPrinting>0</combinedPrinting>
      </ns:CreateShipmentOrderRequest>
   </soapenv:Body>
</soapenv:Envelope>
Der folgende Code ist zwar in C++, aber ich denke den kannst Du einfach in Delphi übersetzen :

Code:
IdHTTP1->Request->BasicAuthentication=true;
IdHTTP1->Request->Username=ApplicationsIDEdit->Text;
IdHTTP1->Request->Password=ApplicationsTokenEdit->Text;
IdHTTP1->Request->CustomHeaders->Clear();
IdHTTP1->Request->CustomHeaders->Add("SOAPAction: \"urn:createShipmentOrder\"");
Ergebnis=IdHTTP1->Post("https://cig.dhl.de/services/production/soap",StreamData);
Als Ergebnis erhälst Du die Paketnummer und einen Downloadurl des Labels.

MfG
Thorsten Uhr

Ykcim 10. Jan 2025 09:58

AW: DHL-API mit RESTClient
 
Hallo Thorsten,
klasse! Vielen Dank!

Ykcim 10. Jan 2025 10:00

AW: DHL-API mit RESTClient
 
Hallo Zusammen,

ich habe soeben die API Shipment Tracking - Unified freigeschaltet bekommen. Mit folgendem Aufruf in der cmd-Konsole bekomme ich damit jetzt das richtige Ergebnis:
Delphi-Quellcode:
curl https://api-eu.dhl.com/track/shipments?trackingNumber=00341434296527125347 -H DHL-API-Key:xxXXXxxXXXXXxxXX
Die xxXXXxxXXXXXxxXX gegen den API-Key tauschen.

Vielen Dank für Eure Unterstützung
Patrick

Rollo62 10. Jan 2025 10:21

AW: DHL-API mit RESTClient
 
Zitat:

Zitat von Ykcim (Beitrag 1545000)
ich habe soeben die API Shipment Tracking - Unified freigeschaltet bekommen.

Sorry wenn ich so blöd nachfrage, was war denn jetzt die Lösung?
- Fehlende Freischaltung im Dashboard?
- Die richtige curl URI?
- Das Demo was TUhr zuletzt für Delphi gepostet hat?


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:30 Uhr.
Seite 3 von 4     123 4      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz