<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Simlau.net Blog &#187; API</title>
	<atom:link href="http://blog.simlau.net/tag/api/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.simlau.net</link>
	<description>Gedanken, Impressionen und Technikkrams</description>
	<lastBuildDate>Tue, 25 Oct 2011 18:13:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>DHL-Tracking API mit PHP abrufen</title>
		<link>http://blog.simlau.net/dhl-tracking-api-php.html</link>
		<comments>http://blog.simlau.net/dhl-tracking-api-php.html#comments</comments>
		<pubDate>Sat, 15 May 2010 17:00:30 +0000</pubDate>
		<dc:creator>Simon</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[XML]]></category>

		<guid isPermaLink="false">http://blog.simlau.net/?p=1977</guid>
		<description><![CDATA[Lange habe ich schon danach gesucht und endlich bin ich doch mal fündig geworden &#8211; die Tracking-API von DHL. Tatsächlich gibt es im Netz nahezu keine offizielle Dokumentation dieser mysteriösen API. Die public API dient zum Abrufen des Status eines Pakets, mit der privaten API können Firmen sich z. B. Paketaufkleber etc. ausdrucken lassen. Die [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.simlau.net/wp-files/package.png"><img src="http://blog.simlau.net/wp-files/package.png" alt="" title="DHL Tracking API" width="120" height="120" class="alignright size-full wp-image-2130" /></a>Lange habe ich schon danach gesucht und endlich bin ich doch mal fündig geworden &#8211; die Tracking-API von DHL. Tatsächlich gibt es im Netz nahezu keine offizielle Dokumentation dieser mysteriösen API. Die public API dient zum Abrufen des Status eines Pakets, mit der privaten API können Firmen sich z. B. Paketaufkleber etc. ausdrucken lassen.</p>
<p>Die Public API reicht allerdings für die meisten Zwecke vollkommen, mit ihr kann man z. B. per Script die Sendung eines Pakets überwachen. Hier meine kleine, beispielhafte-Funktion:</p>
<pre class="brush: php;">function dhl_tracking($trackingnumber)
{
	$data  = '&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot; ?&gt;';
	$data .= '&lt;data appname=&quot;nol-public&quot; password=&quot;anfang&quot; request=&quot;get-status-for-public-user&quot; language-code=&quot;de&quot;&gt;';
	$data .= '  &lt;data piece-code=&quot;'.$trackingnumber.'&quot;&gt;&lt;/data&gt;';
	$data .= '&lt;/data&gt;';

	// 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-&gt;data-&gt;data-&gt;attributes() as $key =&gt; $value) {
		$return[$key] = (string) $value;
	}
	return $return;
}

// Aufruf der Funktion
print_r(dhl_tracking($tracking_number));
</pre>
<p>Sollte die Funktion false zurück liefern gab es einen Problem mit dem Tomcat Server und der Anfrage (etwa falscher Syntax, fehlerhaftes XML). Wenn piece-status einen anderen Wert als 0 enthält liegt ein Problem mit dem Datensatz selbst vor (z. B. keine Daten vorhanden).</p>
<p><span id="more-1977"></span><br />
Als Ergebnis erhält man dann ein Array, etwa mit folgenden Werten (hier etwas gekürzt, tatsächlich sind es einiges mehr an Infos):</p>
<pre class="brush: plain;">Array
(
    [status] =&gt; Die Sendung wurde erfolgreich zugestellt.
    [recipient-id-text] =&gt; Nachbar
    [product-name] =&gt; DHL PAKET
    [pan-recipient-name] =&gt; SIMON LAUGER
)</pre>
<p>Insbesondere für Shop-Betreiber, die ihren Kunden die Möglichkeit geben wollen in ihrem Shop den Status der Lieferung anzusehen sollte das recht interessant sein. </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.simlau.net/dhl-tracking-api-php.html/feed</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
	</channel>
</rss>

