2013-02-15 24 views
6

Obecnie pracuję nad projektem, w którym muszę uzyskać status pakietu (wysłany z DHL). Czytałem o API DHL, które zwraca XML, ale jakoś tam nie ma dobrych przykładów. Znalazłem kilka fragmentów kodu, ale nie mam pojęcia, gdzie zarejestrować klucz API.DHL Śledzenie Api i PHP

Czy ktoś ma jakieś linki lub przykłady dla mnie?

poważaniem, Lukas

+0

dostałeś gdziekolwiek z tego, ponieważ mam podobny problem: http://stackoverflow.com/questions/16860991/dhl-trackshipmentrequest-wdsl-php-soap –

+0

Nie, raczej nie. Zatrzymałem projekt, ponieważ było intensywne, ponieważ nie ma tam dobrych/prawdziwych API. –

Odpowiedz

3

Istnieje również ten klient PHP, który może być używany do korzystania z API DHL XML. Może obsłużyć wszystkie usługi oferowane przez DHL.

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

Ten klient nie korzysta lub zależeć od ram i powinno być dość łatwe do zintegrowania z własnym kodem. Możesz sprawdzić folder próbek, na przykład, jak z niego korzystać.

1

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

To służy do podłączenia do DHL za pomocą XML-PI do śledzenia przesyłek za pomocą Air Way Bill. może obsłużyć pojedynczy numer śledzenia lub tyle, ile się do niego dodaje (zostało przetestowane przy użyciu 250, a inne, a następnie trochę czasu, aby uruchomić bez żadnych problemów). automatycznie pobiera i dzieli tablicę numerów śledzenia na porcje, a następnie wysyła żądanie do DHL, upewniając się, że nie przekazuje maksymalnej liczby, która może być śledzona na żądanie, a następnie zwraca wyniki jako tablicę.

+0

Cześć, dziękuję za odpowiedź. Już to znalazłem, ale nie działa poprawnie, ponieważ zawiera błędy i musi uwierzytelnić się przy użyciu nazwy użytkownika i hasła. Czy wiesz, gdzie je zdobyć? –

0

Jest ładny blog o tym. Jest to niestety w języku niemieckim, ale kod, który jest tam wyświetlany, powinien mieć dla ciebie sens.

Źródło: https://blog.simlau.net/dhl-tracking-api-php.html

Fragment:

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)); 

Ta funkcja będzie oddać tablicę, która będzie zawierać informacje śledzenia:

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

(W rzeczywistości nie jest bardziej dane tam.)

Mam nadzieję, że to ci pomoże w som e sposób.

+0

Zmień kod języka na "en" (lub cokolwiek, co ci odpowiada, pod warunkiem, że obsługuje go DHL), a Twój kod zwróci dane w języku angielskim. Nie znalazłem jeszcze listy dostępnych języków. –

+0

Jakie zmiany należy wprowadzić, aby to zadziałało? – piguy