2013-02-15 3 views
6

Ich arbeite derzeit an einem Projekt, wo ich den Status eines Pakets (gesendet mit DHL) zu erhalten. Ich habe über die DHL API gelesen, die ein XML zurückgibt, aber irgendwie gibt es keine guten Beispiele dafür. Ich habe einige Code-Snippets gefunden, aber ich habe keine Ahnung, wo ich mich für API-Schlüssel registrieren kann.DHL Tracking-Api und PHP

Habe einige Links jemand oder Beispiele für mich?

Mit freundlichen Grüßen, Lukas

+0

Hast du überall mit diesem bekommen, wie ich ein ähnliches Problem haben: http://stackoverflow.com/questions/16860991/dhl-trackshipmentrequest-wdsl-php-soap –

+0

Nein, wirklich nicht. Ich habe das Projekt gestoppt, da es zu intensiv war, da es dort keine guten/echten APIs gibt. –

Antwort

3

Es gibt auch diese PHP-Client, der verwendet werden kann, die DHL XML API zu konsumieren. Es kann alle verschiedenen von DHL offenbarten Dienste handhaben.

https://github.com/alfallouji/DHL-API

Dieser Client verlässt sich nicht oder sind abhängig von jedem Rahmen, und es sollte ziemlich einfach sein, mit Ihrem eigenen Code zu integrieren. Sie können den Beispielordner zum Beispiel überprüfen, wie er verwendet wird.

1

https://github.com/jklz/DHL-API-Tracking-PHP

Es wird verwendet, in DHL zu verbinden, um das XML-PI mit Sendungen zu verfolgen, den Air Way Bill verwenden. es kann eine einzelne Tracking-Nummer oder so viele, wie Sie in es einspeisen (wurde mit 250 getestet und andere, dann dauerte ein wenig Zeit zu laufen hatte keine Probleme). nimmt automatisch die Gruppierung der Verfolgungsnummern in Stücke und sendet sie dann an DHL, wobei sichergestellt wird, dass die maximale Anzahl, die pro Anforderung verfolgt werden kann, nicht überschritten wird, und die Ergebnisse als Array zurückgegeben werden.

+0

Hallo, danke für deine Antwort. Ich habe das schon gefunden, aber es funktioniert nicht richtig, da es Bugs enthält und sich mit einem Benutzernamen und Passwort authentifizieren muss. Weißt du, wo du diese bekommst? –

0

Es gibt einen schönen Blog darüber. Es ist leider auf Deutsch, aber der Code, der dort angezeigt wird, sollte für Sie noch sinnvoll sein.

Quelle: https://blog.simlau.net/dhl-tracking-api-php.html

Auszug:

function dhl_tracking($trackingnumber) 
{ 
    $data = '<?xml version="1.0" encoding="ISO-8859-1" ?>'; 
    $data .= '<data appname="nol-public" password="anfang" request="get-status-for-public-user" language-code="de">'; 
    $data .= ' <data piece-code="'.$trackingnumber.'"></data>'; 
    $data .= '</data>'; 

    // URL bauen und File hohlen 
    $xml = simplexml_load_file(sprintf(
     'http://nolp.dhl.de/nextt-online-public/direct/nexttjlibpublicservlet?xml=%s', $data 
    )); 

    // FALSE, wenn Syntax oder HTTP Error 
    if ($xml === false) return false; 

    // Wandelt das SimpleXML Objekt in ein Array um 
    foreach ($xml->data->data->attributes() as $key => $value) { 
     $return[$key] = (string) $value; 
    } 
    return $return; 
} 

// Aufruf der Funktion 
print_r(dhl_tracking($tracking_number)); 

Diese Funktion gibt einen Array zurück geben, das einige Tracking-Informationen enthalten:

Array 
(
    [status] => Die Sendung wurde erfolgreich zugestellt. 
    [recipient-id-text] => Nachbar 
    [product-name] => DHL PAKET 
    [pan-recipient-name] => SIMON LAUGER 
) 

(In der Tat gibt WAY mehr Daten dort.)

ich hoffe das Sie in som helfen der Weg.

+0

Ändern Sie den Sprachcode in "en" (oder was immer Ihnen passt, sofern DHL dies unterstützt) und Ihr Code gibt die Daten in Englisch zurück. Ich habe noch keine Liste der zur Verfügung gestellten Sprachen gefunden. –

+0

Welche Änderungen muss ich vornehmen, damit dies funktioniert? – piguy