2013-02-15 3 views
6

현재 DHL과 함께 보낸 패킷의 상태를 가져야하는 프로젝트를 진행하고 있습니다. XML을 반환하는 DHL API에 대해 읽었지만 어쨌든 좋은 예는 없습니다. 일부 코드 스 니펫을 발견했지만 API 키를 등록 할 수있는 방법이 없습니다.DHL 추적 API 및 PHP

누군가에게 나를위한 링크 또는 예제가 있습니까?

안부, 루카스

+0

나는 비슷한 문제를 가지고 당신이 어디에서나 얻을 않았다 http://stackoverflow.com/questions/16860991/dhl-trackshipmentrequest-wdsl-php-soap –

+0

아니, 정말. 주변에 좋은/실제 API가 없으므로 집중적으로 작업하기 때문에 프로젝트를 중단했습니다. –

답변

3

DHL XML API를 사용하는 데 사용할 수있는 PHP 클라이언트가 있습니다. DHL이 제공하는 다양한 서비스를 모두 처리 할 수 ​​있습니다.

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

이 클라이언트는 의지 또는 프레임 워크에 의존하며 자신의 코드와 통합하기 매우 쉽게해야하지 않습니다. 샘플 폴더를 사용하는 방법에 대한 예를 확인할 수 있습니다.

1

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

에어 길 빌을 사용하여 선적을 추적하기 위해 XML-PI를 사용하여 DHL로 연결하는 데 사용됩니다. 그것은 하나의 추적 번호를 처리 할 수 ​​있습니다 또는 당신이 그것에 먹이를 (250 테스트를 거친 다음 다른 시간을내어 아무런 문제가 없었다). 자동으로 추적 번호 배열을 청크로 가져온 다음 DHL로 요청을 전송하여 요청 당 추적 할 수있는 최대 번호를 전달하지 않도록하고 결과를 배열로 반환합니다.

+0

안녕하세요, 답변 해 주셔서 감사합니다. 이미 하나 발견했지만 버그가 포함되어있어 사용자 이름과 비밀번호로 인증해야하므로 제대로 작동하지 않습니다. 이걸 어디에서 구할 수 있는지 알고 있습니까? –

0

좋은 블로그가 있습니다. 불행히도 독일어로되어 있지만 표시되는 코드는 여전히 의미가 있습니다. https://blog.simlau.net/dhl-tracking-api-php.html

발췌 : 일부 추적 정보를 포함하는 배열을 돌려 줄 것입니다이 기능은

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

:

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

(사실, WAY 더 많은 데이터가 소스

거기에.)

나는 이것이 som에서 당신을 도울 것이기를 바란다. 전자 방법.

+0

언어 코드를 "en"(또는 DHL에서 지원하는 경우)으로 변경하면 코드가 영어로 데이터를 반환합니다. 아직 제공된 언어 목록을 찾지 못했습니다. –

+0

이 작업을하려면 어떤 변화가 필요합니까? – piguy