Es handelt sich um eine standard SOAP-Schnittstelle, ein WSDL-Dokument liegt auch vor.
Da ich mich bisher noch nie mit sowas beschäftigt habe, erst mal Googlen...
So, die Funktionsweise habe ich nun begriffen, nur zur GEPIR-Schnittstelle fehlt jedliche Dokumentation und Beispiele finde ich auch keine, kann doch nicht sein, dass das noch niemand gemacht hat...
Nagut, probieren geht über studieren, bauen wir uns doch mal ein bisschen Code zusammen. Heute mal nicht in Java, meine Eclipse zickt seit dem Update auf die neue Ubuntu-Distribution etwas rum, und das geht mir auf den Keks. Heute machen wir das ganze mal in PHP, da gibts wenigestens auch schon eine SOAP-Implementation.
Nach langem Probieren und Verständnis, wie die SOAP-Klassen zu nutzen sind, stellte sich langsam der Erfolg ein. Folgender Code startet eine Abfrage auf den EAN-Code des Arsch-Wassers, und liefert die passende Firma zurück, also genau das was ich wollte (Funktioniert übrigens auch mit anderen EAN-Codes, nicht nur mit diesem
Die Error-Codes entnimmt man der "GEPIR-Dokumentation", welche hier zu finden ist.
<?php
class SearchEAN {
var $ean="";
}
$wdslDocument="http://www.gepir.de/Service1.asmx?WSDL";
try {
$sc=new SoapClient($wdslDocument, array("encoding"=>"ISO-8859-1"));
$ean="4026800026916";
$search=new SearchEAN();
$search->ean=$ean;
$res=$sc->SearchEAN($search);
header("Content-Type: text/xml; charset=ISO-8859-1");
echo $res->SearchEANResult;
} catch (Exception $e){
header("Content-Type: text/html; charset=ISO-8859-1");
echo $e;
}
?>
class SearchEAN {
var $ean="";
}
$wdslDocument="http://www.gepir.de/Service1.asmx?WSDL";
try {
$sc=new SoapClient($wdslDocument, array("encoding"=>"ISO-8859-1"));
$ean="4026800026916";
$search=new SearchEAN();
$search->ean=$ean;
$res=$sc->SearchEAN($search);
header("Content-Type: text/xml; charset=ISO-8859-1");
echo $res->SearchEANResult;
} catch (Exception $e){
header("Content-Type: text/html; charset=ISO-8859-1");
echo $e;
}
?>
Funktioniert bisher leider nur mit 13stelligen Codes, mal gucken, wie das mit den 8stelligen geht. Und irgendwie habe ich hier EAN-Codes, die garnicht in der GEPIR Datenbank enthalten sind... misteriös...
So, jetzt gibts dazu wenigstens mal ein Beispiel im Netz. Übrigens hat es am längsten gedauert herauszufinden, wo das WSDL-Dokument zu finden ist. Das stand nirgends! (OK, ich lüge es stand auf einer russichen Seite mit kyrillischen Zeichen, wenigstens war die URL lesbar..).
Weiterhin viel Spaß beim Coden.

Kommentare