WhitePaper
XMLRPC Schnittstelle
GUTSCHEINmarketing
Version 1.0.0
- Stand 18.03.2004 -
Umfang:
© copyright 4D f/x, 2004
4D f/x Kommunikationsservice
Hauptstr.2
82229 Seefeld
Deutschland
1.2.1.Verbindungskanal öffnen/initialisieren
1.2.2.Benutzer ausweisen/authentisieren
1.2.3.Schließen des Verbindungskanals
2.2.Methoden nur mit Authentisierung
2.2.2.1.getCouponValues bei geldwertem Vorteil
2.2.2.2.getCouponValues bei Warenwert
2.2.2.3.getCouponValues bei Rabattgutschein
2.3.Methoden ohne Authentisierung
2.3.4.1.Übersetzung einer Fehlermeldung
3.3.XMLRPC-Service-Fehlermeldung
Dieses Papier beschreibt die XMLRPC-Schnittstelle von www.gutscheinmarketing.de, die zur direkten Serverkommunikation dient. Dabei werden die notwendigen Schritte zu einem Verbindungsaufbau beschrieben. Zusätzlich werden die derzeit verfügbaren Methoden erörtert.

Weitere Informationen zu XMLRPC finden sich unter http://www.xmlrpc.com.
Die Spezifikationen sind zu finden unter http://www.xmlrpc.com/spec.
Um einen schnellen Einstieg zu gewährleisten, steht eine XMLRPC-Client-Klasse unter GPL zur Verfügung. Diese ist momentan in PHP verfügbar und ist nicht Gegenstand dieses Dokumentes. Eine Übertragung nach Java stellt kein Hindernis dar und wird vorgenommen, sobald eine entsprechende Resonanz vorhanden ist.
Um eine Verbindung zum XMLRPC-Service von www.gutscheinmarketing.de aufbauen zu können, bedarf es einer Zugangskennung und eines Passwortes. Diese können nach Belieben (so weit nicht bereits vergeben) gewählt werden und müssen mit www.gutscheinmarketing.de abgestimmt werden.
Im Gegensatz zu den sonst in anderen Quellen beschriebenen Verfahren, werden Kennung und Passwort nicht für eine http-Authentisierung verwendet.
Aus Sicherheitsgründen findet eine Authentisierung mittels Zufallsschlüssel und beidseitig bekanntem Geheimnis statt.
Bei entsprechechender Resonanz (und Sponsoring) ist eine weitere Möglichkeit mittels gnuPG implementierbar.
Jeder am Service teilnehmende Server erhält eine eindeutige Kennung sowie ein nur dem Service und dem jeweiligen Server bekanntes Passwort. Dieses ist durch geeignete Schutzmassnahmen auf den Servern sicher zu hinterlegen.
In diesem Papier wird für die Beispiele folgende Serverkennung mit dem Passwort gewählt:
Definition: userid: test-server
Definition: password: supergeheim
Das Passwort sollte auf dem Server als md5-Hash-Wert hinterlegt werden und nur berechtigten Personen und dem entsprechenden Prozeß zugänglich sein. Wir verwenden im Weiteren statt des Passwortes den md5-Hash-Wert:
Definition: secret :=md5(passwort)
Um den XMLRPC-Service von www.gutscheinmarketing.de zu erreichen ist die URL
service.gutscheinmarketing.de
anzuwählen.
Um die in diesem Papier beschriebenen Methoden aufrufen zu können, muss auf die URI
/valueserver/index.php
zugegriffen werden.
Die Benutzerkennung (userid) ist eine eindeutige Adresse für www.gutscheinmarketing.de, die festlegt
welche Gutschein-Bereiche abgefragt werden können;
welche IP-Adressen für diese Abfrage autorisiert sind. Dabei können neben singulären Adressen, Adressebereiche sowie der gesamte, verfügbare Adressraum berücksichtigt werden.
Beim Passwort (password) handelt es
sich um ein Geheimnis, dass nur beiden Servern, mit den entsprechend
dazu berechtigten Personen, bekannt sein sollte. Dieses ist in der
Form auf dem Server zu hinterlegen, das nur die berechtigte Person
und der entsprechende Service darauf Zugriff haben. Es ist
empfehlenswert, statt des Passwortes in Klartext, den md5-Hash-Wert
(secret) des selbigen auf dem Server zu hinterlegen und
den Klartext an anderer Stelle geeignet zu verwahren.
Zur Authentisierung wird das beiden Seiten
bekannte Geheimnis mit einem übermittelten Zufallswert geeignet
verrechnet. Entspricht die Antwort nicht dem erwarteten Ergebnis wird
eine Verbindung abgelehnt.
Sämtliche Methoden-Aufrufe basieren auf einem
vorhandenen Client-Objekt. Das Vorgehen dazu ist abhängig von
der verwendeten Programmiersprache. Mögliche Lösungen
finden sich
unter
http://www.xmlrpc.com/directory/1568/implementations.
Um eine gültige Verbindung zum XMLRPC-Service von www.gutscheinmarketing.de aufzubauen, müssen folgenden Schritte eingehalten werden:
Verbindungskanal öffnen oder initialisieren mit Nennung des Benutzers.
Den Benutzer ausweisen oder authentisieren.
Schließen des Verbindungskanal.
Zum Öffnen des Verbindungskanals wird die Benutzerkennung (userid) an die Methode openChannel unter der URI /valueserver/index.php auf dem Server mit der URL service.gutscheinmarketing.deals string geschickt.
Ist
die Benutzerkennung bekannt, wird eine sessionid als string
zurückgeliefert.
Diese sessionid ist
Voraussetzung für jede weitere Kommunikation!
No sessionid no
communication!
Ist die Benutzerkennung nicht bekannt oder kann nicht von der vorhandenen IP-Adresse zugegriffen werden, erfolgt eine Fehlermeldung entsprechend XMLRPC-Standard.
|
Parameter |
Value |
Type |
|
Methode |
openChannel |
|
|
Werte |
userid |
string |
|
Response success |
sessionid |
string |
|
error |
errorcode |
int |
|
|
errormsg |
string |
|
URI |
/valueserver/index.php |
|
|
URL |
service.gutscheinmarketing.de |
|
Tabelle 1: openChannel(string)
Call:
<?xml version="1.0"?>
<methodCall>
<methodName>openChannel</methodName>
<params>
<param>
<value><string>userid</string></value>
</param>
</params>
</methodCall>
Response success:
<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value><string>sessionid</string></value>
</param>
</params>
</methodResponse>
Response error:
<?xml version="1.0"?>
<methodResponse>
<fault>
<value>
<struct>
<member>
<name>faultCode</name>
<value><int>errorcode</int></value>
</member>
<member>
<name>faultString</name>
<value><string>errorstring</string></value>
</member>
</struct>
</value>
</fault>
</methodResponse>
Mögliche Fehlercodes und
-meldungen finden sich unter 3. Fehlercodes. Um eine
lokalisierte Fehlermeldung zu erhalten wird die Methode getLocalMessage aufgerufen.
Für das weitere Vorgehen ist eine gültige sessionid notwendig und Voraussetzung!
Eine sessionid ist für eine Zeitdauer von 1 Stunde gültig.
Daher wird dringend empfohlen, jede nicht mehr benötigte Verbindung zum Abschluss zu beenden! (s. 1.2.3 Schließen des Verbindungskanals)
Als nächstes muss der Benutzer ausgewiesen werden. Dazu wird der md5-verrechnete Wert der String-Konkatenation aus sessionid und secret (d.h. md5(password)) zusammen mit der sessionid an die Methode authenticate unter der URI /valueserver/index.php auf dem Server mit der URL service.gutscheinmarketing.de als string geschickt.
Entspricht der übertragene Wert dem vom Server vorausberechneten, d.h. wird der Benutzer richtig ausgewiesen wird der Integerwert 1 zurückgegeben.
Kann eine gültige Authentiserung nicht durchgeführt werden, weil entweder die sessionid oder der berechnete Wert fehlen oder falsch sind, erfolgt eine entsprechende Fehlermeldung.
Definition: expected := md5(concat(sessionid,secret))
|
Parameter |
Value |
Type |
|
Methode |
authenticate |
|
|
Werte |
sessionid |
string |
|
|
expected |
string |
|
Response success |
'1' |
int |
|
error |
errorcode |
int |
|
|
errormsg |
string |
|
URI |
/valueserver/index.php |
|
|
URL |
service.gutscheinmarketing.de |
|
Tabelle 2: authenticate(string,string)
Call:
<?xml version="1.0"?>
<methodCall>
<methodName>authenticate</methodName>
<params>
<param>
<value>
<array>
<data>
<value><string>sessionid</string></value>
<value><string>expected</string></value>
</data>
</array>
</value>
</param>
</params>
</methodCall>
Response success:
<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value><int>1</int></value>
</param>
</params>
</methodResponse>
Response error:
<?xml version="1.0"?>
<methodResponse>
<fault>
<value>
<struct>
<member>
<name>faultCode</name>
<value><int>errorcode</int></value>
</member>
<member>
<name>faultString</name>
<value><string>errorstring</string></value>
</member>
</struct>
</value>
</fault>
</methodResponse>
Mögliche Fehlercodes und -meldungen finden sich unter 3. Fehlercodes. Um eine lokalisierte Fehlermeldung zu erhalten wird die
Methode getLocalMessage aufgerufen.
Bedingt durch die Gültigkeit der sessionid von einer Stunde ist es notwendig, jede nicht mehr benötigte Verbindung zu schließen. Dies entspricht auch gutem Programmierstil.
Dazu wird die Methode close unter der URI /valueserver/index.php auf dem Server mit der URL service.gutscheinmarketing.de mit der sessionid als string aufgerufen.
Kann die Verbindung beendet werden wird der Integerwert 0 zurückgegeben.
|
Parameter |
Value |
Type |
|
Methode |
close |
|
|
Werte |
sessionid |
string |
|
Response success |
'0' |
int |
|
error |
|
|
|
URI |
/valueserver/index.php |
|
|
URL |
service.gutscheinmarketing.de |
|
Tabelle 3: close(string)
Call:
<?xml version="1.0"?>
<methodCall>
<methodName>close</methodName>
<params>
<param>
<value><string>sessionid</string></value>
</param>
</params>
</methodCall>
Response success:
<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value><int>0</int></value>
</param>
</params>
</methodResponse>
Die XMLRPC-Schnittstelle von www.gutscheinmarketing.de stellt grundsätzlich Methoden zur Verfügung, für die eine Benutzer-Authentizierung (entsprechend 1. Verbindungsaufbau) notwendig ist.
Die Ausnahmen werden in 2.3 beschrieben.
Zunächst wird eine geeignetes XMLRPC-Client-Objekt erzeugt. Das Vorgehen dazu ist abhängig von der verwendeten Programmiersprache. Mögliche Lösungen finden sich unter http://www.xmlrpc.com/directory/1568/implementations.
Eine speziell optimierte PHP-Klasse für den
Zugriff stellt www.gutscheinmarketing.de unter GPL zur kostenlosen
und freien Verfügung. Weitere Angaben dazu und eine Beschreibung
finden sich unter ####.
Das Schaubild verdeutlicht die Vorgehensweise.

Mit dem erzeugtem XMLRPC-Client wird eine Verbindung zum XMLRPC-Service von www.gutscheinmarketing.de mit der URL service.gutscheinmarketing.de und der URI /valueserver/index.php aufgebaut. Die Beschreibung dazu findet sich unter 1.2.1 Verbindungskanal öffnen.
Als Ergebnis eines erfolgreichen Verbindungsaufbaues wird eine Sessionkennung (sessionid) zurückgegeben. Diese Sessionkennung ist Voraussetzung für jede weitere Kommunikation.
No sessionid no
communication!
Nach erfolgreichem Verbindungsaufbau muss der Benutzer authentisiert werden. Dazu wird ein beidseitiges Geheimnis mit einem Zufallswert verechnet und zusammen mit der Sessionkennung an den XMLRPC-Service gesendet. Die Beschreibung dazu findet sich unter 1.2.2 Benutzer ausweisen.
Eine erfolgreiche Anmeldung ist Voraussetzung um
die weiteren Methoden aufrufen zu können.
Ist die Anmeldung erfolgreich durchgeführt, können Methoden in beliebiger Anzahl und Reihenfolge aufgerufen werden. Diese Methoden liefern entweder ein gültiges Ergebnis oder eine Fehlermeldung.
Mögliche Fehlercodes und -meldungen finden sich unter 3. Fehlercodes. Um eine lokalisierte Fehlermeldung zu erhalten wird die
Methode getLocalMessage aufgerufen.
Wird eine Verbindung nicht mehr benötigt, sollte diese immer geschlossen werden. Die Beschreibung dazu findet sich unter 1.2.3 Schließen des Verbindungskanals.
Im folgenden werden Methoden beschrieben, die nur
nach einer erfolgreichen Authentisierung aufgerufen werden können.
Die Methode liefert den Booleschen Wert von true, wenn der zusammen jeweils als string mit der Sessionkennung (sessionid) übermittelte Gutscheincode couponid gültig ist. Ein Gutscheincode wird als gültig ausgewiesen, wenn
der Gutschein aktiviert wurde, d.h. persönliche Angaben wurden ergänzt oder bestätigt und der Gutschein wurde an den Empfänger per Email versendet;
der aktivierte Gutschein noch nicht anderweitig eingelöst wurde.
das für den Gutschein definierte Verfallsdatum noch nicht überschritten ist.
Ansonsten erfolgt eine Fehlermeldung.
|
Parameter |
Value |
Type |
|
Methode |
isValidCoupon |
|
|
Werte |
sessionid |
string |
|
|
couponid |
string |
|
Response success |
True |
boolean |
|
error |
errorcode |
int |
|
|
errormsg |
string |
|
URI |
/valueserver/index.php |
|
|
URL |
service.gutscheinmarketing.de |
|
Tabelle 4: isValidCoupon(string,string)
Call:
<?xml version="1.0"?>
<methodCall>
<methodName>isValidCoupon</methodName>
<params>
<param>
<value>
<array>
<data>
<value><string>sessionid</string></value>
<value><string>couponid</string></value>
</data>
</array>
</value>
</param>
</params>
</methodCall>
Response success:
<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value><boolean>1</boolean></value>
</param>
</params>
</methodResponse>
Response error:
<?xml version="1.0"?>
<methodResponse>
<fault>
<value>
<struct>
<member>
<name>faultCode</name>
<value><int>errorcode</int></value>
</member>
<member>
<name>faultString</name>
<value><string>errorstring</string></value>
</member>
</struct>
</value>
</fault>
</methodResponse>
Mögliche Fehlercodes und -meldungen finden sich unter 3. Fehlercodes. Um eine lokalisierte Fehlermeldung zu erhalten wird die
Methode getLocalMessage aufgerufen.
Die Methode liefert als XMLRPC-Struktur die Werte für einen gültigen Gutschein mit der Gutscheinnummer couponid zurück. Dazu muss jeweils die Sessionkennung sessionid und die Gutscheinnummer couponid als string an die Methode gesendet werden.
Die Struktur der Antwort ist bei vorhandenem und gültigen Gutscheincode abhängig vom Gutschein.
Ist ein Gutscheincode nicht gültig wird eine Fehlermeldung zurückgegeben.
|
Parameter |
Value |
Type |
|
Methode |
isValidCoupon |
|
|
Werte |
sessionid |
string |
|
|
couponid |
string |
|
Response success |
Siehe nächste Kapitel |
|
|
error |
errorcode |
int |
|
|
errormsg |
string |
|
URI |
/valueserver/index.php |
|
|
URL |
service.gutscheinmarketing.de |
|
Tabelle 5: getCouponValues(string,string)
Call:
<?xml version="1.0"?>
<methodCall>
<methodName>isValidCoupon</methodName>
<params>
<param>
<value>
<array>
<data>
<value><string>sessionid</string></value>
<value><string>couponid</string></value>
</data>
</array>
</value>
</param>
</params>
</methodCall>
Response error:
<?xml version="1.0"?>
<methodResponse>
<fault>
<value>
<struct>
<member>
<name>faultCode</name>
<value><int>errorcode</int></value>
</member>
<member>
<name>faultString</name>
<value><string>errorstring</string></value>
</member>
</struct>
</value>
</fault>
</methodResponse>
Mögliche Fehlercodes und -meldungen finden sich unter 3. Fehlercodes. Um eine lokalisierte Fehlermeldung zu erhalten wird die
Methode getLocalMessage aufgerufen.
Diese Antwort wird gegeben, wenn der übertragene Gutscheincode einem Geldwertgutschein zugeordnet ist.
|
Key |
Value |
Type |
|
type |
money |
string |
|
price |
[cdata] |
double |
|
currency |
[cdata] |
string |
|
invoicetext |
[cdata] |
string |
|
minimumorder |
[cdata] |
double |
|
validuntil |
[cdata] |
dateTime.iso8601 |
Response success:
<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value><struct>
<member>
<name>type</name>
<value><string>money</string></value>
</member>
<member>
<name>price</name>
<value><double>[cdata]</double></value>
</member>
<member>
<name>currency</name>
<value><string>[cdata]</string></value>
</member>
<member>
<name>invoicetext</name>
<value><string>[cdata]</string></value>
</member>
<member>
<name>minimumorder</name>
<value><double>[cdata]</double></value>
</member>
<member>
<name>validuntil</name>
<value><dateTime.iso8601>[cdata]</dateTime.iso8601></value>
</member>
</struct></value>
</param>
</params>
</methodResponse>
Diese Antwort wird gegeben, wenn der übertragene Gutscheincode einem Warenwertgutschein zugeordnet ist.
|
Key |
Value |
Type |
|
type |
goods |
string |
|
quantity |
[cdata] |
double |
|
article |
[cdata] |
string |
|
invoicetext |
[cdata] |
string |
|
minimumorder |
[cdata] |
double |
|
validuntil |
[cdata] |
dateTime.iso8601 |
Response success:
<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value><struct>
<member>
<name>type</name>
<value><string>goods</string></value>
</member>
<member>
<name>quantity</name>
<value><double>[cdata]</double></value>
</member>
<member>
<name>article</name>
<value><string>[cdata]</string></value>
</member>
<member>
<name>invoicetext</name>
<value><string>[cdata]</string></value>
</member>
<member>
<name>minimumorder</name>
<value><double>[cdata]</double></value>
</member>
<member>
<name>validuntil</name>
<value><dateTime.iso8601>[cdata]</dateTime.iso8601></value>
</member>
</struct></value>
</param>
</params>
</methodResponse>
Diese Antwort wird gegeben, wenn der übertragene Gutscheincode einem Rabattgutschein zugeordnet ist.
|
Key |
Value |
Type |
|
type |
percent |
string |
|
percent |
[cdata] |
double |
|
invoicetext |
[cdata] |
string |
|
minimumorder |
[cdata] |
double |
|
validuntil |
[cdata] |
dateTime.iso8601 |
Response success:
<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value><struct>
<member>
<name>type</name>
<value><string>percent</string></value>
</member>
<member>
<name>percent</name>
<value><double>[cdata]</double></value>
</member>
<member>
<name>invoicetext</name>
<value><string>[cdata]</string></value>
</member>
<member>
<name>minimumorder</name>
<value><double>[cdata]</double></value>
</member>
<member>
<name>validuntil</name>
<value><dateTime.iso8601>[cdata]</dateTime.iso8601></value>
</member>
</struct></value>
</param>
</params>
</methodResponse>
Diese Methode sperrt einen Gutschein, wenn die Einlösung erfolgreich war, z.B. wenn ein Bestellvorgang durch Zahlung abgeschlossen werden soll. Dazu wird an die Methode die Sessionkennung sessionid und der gültige Gutscheincode couponid jeweils als string gesendet.
Kann der Gutschein erfolgreich gesperrt werden wird eine Kennung zurückgegeben. Diese Kennung kann dazu verwendet werden, um den Gutschein gegebenenfalls wieder zu entsperren, falls der Kunde z.B. die Bestellung storniert oder den Zahlvorgang abbricht (!).
Optional kann ein eigener Kommentar (z.B. eine OrderId oder eine Kundennummer) als string der Methode mit übermittelt werden. Dieser Wert ist momentan ohne besondere Bedeutung, könnte aber in Zukunft z.B. für eine Suchfunktionalität herangezogen werden.
Kann ein Gutschein nicht gesperrt werden, so liegt dies daran, dass parallel der Gutschein durch einen anderen Vorgang gesperrt wurde. In diesem Fall wird eine Fehlermeldung zurückgegeben. Etwaige Rechnungskorrekturen sind geeignet vorzunehmen.
|
Parameter |
Value |
Type |
|
Methode |
lockCoupon |
|
|
Werte |
sessionid |
string |
|
|
couponid |
string |
|
|
comment (optional) |
string |
|
Response success |
trackid |
string |
|
error |
errorcode |
int |
|
|
errormsg |
string |
|
URI |
/valueserver/index.php |
|
|
URL |
service.gutscheinmarketing.de |
|
Tabelle 6: lockCoupon(string,string) oder lockCoupon(string,string,string)
Call ohne Kommentar:
<?xml version="1.0"?>
<methodCall>
<methodName>isValidCoupon</methodName>
<params>
<param>
<value>
<array>
<data>
<value><string>sessionid</string></value>
<value><string>couponid</string></value>
</data>
</array>
</value>
</param>
</params>
</methodCall>
Call mit Kommentar:
<?xml version="1.0"?>
<methodCall>
<methodName>isValidCoupon</methodName>
<params>
<param>
<value>
<array>
<data>
<value><string>sessionid</string></value>
<value><string>couponid</string></value>
<value><string>comment</string></value>
</data>
</array>
</value>
</param>
</params>
</methodCall>
Response success:
<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value><string>[cdata]</string></value>
</param>
</params>
</methodResponse>
Response error:
<?xml version="1.0"?>
<methodResponse>
<fault>
<value>
<struct>
<member>
<name>faultCode</name>
<value><int>errorcode</int></value>
</member>
<member>
<name>faultString</name>
<value><string>errorstring</string></value>
</member>
</struct>
</value>
</fault>
</methodResponse>
Mögliche Fehlercodes und -meldungen finden sich unter 3. Fehlercodes. Um eine lokalisierte Fehlermeldung zu erhalten wird die
Methode getLocalMessage aufgerufen.
Diese Methode gibt einen gesperrten Gutschein wieder frei. Dazu muss der Methode jeweils als string die Sessionkennung sessionid, der Gutscheincode couponid und der Transaktionscode der Sperrung trackid übergeben werden.
Kann der Gutschein entsperrt werden und damit für eine erneute Einlösung freigegeben werden, wird ein Transaktionscode für diesen Vorgang als string zurückgegeben.
Optional kann ein eigener Kommentar (z.B. eine OrderId oder eine Kundennummer) als string der Methode mit übermittelt werden. Dieser Wert ist momentan ohne besondere Bedeutung, könnte aber in Zukunft z.B. für eine Suchfunktionalität herangezogen werden.
Kann ein Gutschein nicht freigegeben werden, wird eine Fehlermeldung zurückgegeben. Dafür kann es unterschiedliche Ursachen geben:
die Transaktionskennung fehlt oder ist falsch;
der Gutscheincode entspricht nicht dem bei der Sperrung oder fehlt. Aus Sicherheitsgründen wird auf eine gesonderte Meldung dafür verzichtet.
|
Parameter |
Value |
Type |
|
Methode |
unlockCoupon |
|
|
Werte |
sessionid |
string |
|
|
couponid |
string |
|
|
trackid |
string |
|
|
comment (optional) |
string |
|
Response success |
trackid |
string |
|
error |
errorcode |
int |
|
|
errormsg |
string |
|
URI |
/valueserver/index.php |
|
|
URL |
service.gutscheinmarketing.de |
|
Tabelle 7: unlockCoupon(string,string,string) oder lockCoupon(string,string,string,string)
Call ohne Kommentar:
<?xml version="1.0"?>
<methodCall>
<methodName>isValidCoupon</methodName>
<params>
<param>
<value>
<array>
<data>
<value><string>sessionid</string></value>
<value><string>couponid</string></value>
<value><string>trackid</string></value>
</data>
</array>
</value>
</param>
</params>
</methodCall>
Call mit Kommentar:
<?xml version="1.0"?>
<methodCall>
<methodName>isValidCoupon</methodName>
<params>
<param>
<value>
<array>
<data>
<value><string>sessionid</string></value>
<value><string>couponid</string></value>
<value><string>trackid</string></value>
<value><string>comment</string></value>
</data>
</array>
</value>
</param>
</params>
</methodCall>
Response success:
<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value><string>[cdata]</string></value>
</param>
</params>
</methodResponse>
Response error:
<?xml version="1.0"?>
<methodResponse>
<fault>
<value>
<struct>
<member>
<name>faultCode</name>
<value><int>errorcode</int></value>
</member>
<member>
<name>faultString</name>
<value><string>errorstring</string></value>
</member>
</struct>
</value>
</fault>
</methodResponse>
Mögliche Fehlercodes und -meldungen finden sich unter 3. Fehlercodes. Um eine lokalisierte Fehlermeldung zu erhalten wird die
Methode getLocalMessage aufgerufen.
Diese Methodenaufrufe sind Gutscheinunabhängig
und liefern Informationen zu den Methoden oder lokalisierte
Fehlermeldungen.
Diese Methode ohne weitere Parameter aufgerufen liefert eine Liste aller vom XMLRPC-Service angebotenen Methoden.
|
Parameter |
Value |
Type |
|
Methode |
system.listMethods |
|
|
Werte |
|
|
|
Response success |
alle verfügbaren Methoden |
string[] |
|
URI |
/valueserver/index.php |
|
|
URL |
service.gutscheinmarketing.de |
|
Tabelle 8: system.listMethods()
Call:
<?xml version="1.0"?>
<methodCall>
<methodName>system.listMethods</methodName>
<params>
</params>
</methodCall>
Response:
<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value>
<array><data>
<value><string>openChannel</string></value>
<value><string>authenticate</string></value>
<value><string>close</string></value>
.
.
.
<value><string>system.listMethods</string></value>
<value><string>system.methodHelp</string></value>
<value><string>system.methodSignature</string></value>
</data></array>
</value>
</param>
</params>
</methodResponse>
Diese Methode liefert den zu einer mittels string übermittelten Methode methode vorhandenen Erklärungstext helptext in englisch.
Wird die Methode nicht gefunden, wird eine Fehlermeldung zurückgegeben.
|
Parameter |
Value |
Type |
|
Methode |
system.methodHelp |
|
|
Werte |
methode |
string |
|
Response success |
helptext |
string |
|
error |
errorcode |
int |
|
|
errormsg |
string |
|
URI |
/valueserver/index.php |
|
|
URL |
service.gutscheinmarketing.de |
|
Tabelle 9: system.methodHelp(string)
Call:
<?xml version="1.0"?>
<methodCall>
<methodName>system.methodHelp</methodName>
<params>
<param>
<value><string>methode</string></value>
</param>
</params>
</methodCall>
Response success:
<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value><string>[cdata]</string></value>
</param>
</params>
</methodResponse>
Response error:
<?xml version="1.0"?>
<methodResponse>
<fault>
<value>
<struct>
<member>
<name>faultCode</name>
<value><int>errorcode</int></value>
</member>
<member>
<name>faultString</name>
<value><string>errorstring</string></value>
</member>
</struct>
</value>
</fault>
</methodResponse>
Mögliche Fehlercodes und -meldungen finden sich unter 3. Fehlercodes. Um eine lokalisierte Fehlermeldung zu erhalten wird die
Methode getLocalMessage aufgerufen.
Diese Methode liefert die zu einer mittels string übermittelten Methode methode vorhandenen Signaturen als Array.
Wird die Methode nicht gefunden, wird eine Fehlermeldung zurückgegeben.
|
Parameter |
Value |
Type |
|
Methode |
system.methodSignature |
|
|
Werte |
methode |
string |
|
Response success |
signatures |
string[] |
|
error |
errorcode |
int |
|
|
errormsg |
string |
|
URI |
/valueserver/index.php |
|
|
URL |
service.gutscheinmarketing.de |
|
Tabelle 10: system.methodSignature(string)
Call:
<?xml version="1.0"?>
<methodCall>
<methodName>system.methodSignature</methodName>
<params>
<param>
<value><string>methode</string></value>
</param>
</params>
</methodCall>
Response success:
<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value><array>
<data>
<value><array>
<data>
<value><string>[cdata]</string></value>
.
.
.
</data>
</array></value>
[<value><array> ... </array></value>]
.
.
.
[<value><array> ... </array></value>]
</data>
</array></value>
</param>
</params>
</methodResponse>
Response error:
<?xml version="1.0"?>
<methodResponse>
<fault>
<value>
<struct>
<member>
<name>faultCode</name>
<value><int>errorcode</int></value>
</member>
<member>
<name>faultString</name>
<value><string>errorstring</string></value>
</member>
</struct>
</value>
</fault>
</methodResponse>
Mögliche Fehlercodes und -meldungen finden sich unter 3. Fehlercodes Um eine lokalisierte Fehlermeldung zu erhalten wird die Methode
getLocalMessage aufgerufen.
Diese Methode liefert den zu einer Meldung mit der Kennung id vom Typ type entsprechend der Landeskennung locale vorhandenen Text oder eine Fehlermeldung, wenn eine entsprechende Übersetzung nicht vorhanden ist.
Derzeit werden deutsch (de_DE) und englisch (en_US) unterstützt. Eine Übersetzung in andere Sprachen, kann bei Anforderung jederzeit erfolgen.
|
Parameter |
Value |
Type |
|
Methode |
getLocalMessage |
|
|
Werte |
type |
string |
|
|
id |
int |
|
|
locale |
string |
|
Response success |
signatures |
string[] |
|
error |
errorcode |
int |
|
|
errormsg |
string |
|
URI |
/valueserver/index.php |
|
|
URL |
service.gutscheinmarketing.de |
|
Tabelle 11: getLocalMessage(string,int,string)
Call:
<?xml version="1.0"?>
<methodCall>
<methodName>getLocalMessage</methodName>
<params>
<param>
<value><string>type</string></value>
<value><int>id</int></value>
<value><string>locale</string></value>
</param>
</params>
</methodCall>
Response success:
<?xml version="1.0"?>
<methodResponse>
<params>
<param>
<value><string>[cdata]</string></value>
</param>
</params>
</methodResponse>
Um eine Fehlermeldung in einer entsprechend anderen Landessprache zu erhalten (soweit Übersetzung vorliegt) wird die Methode getLocalMessage mit dem Typ
type := error
und dem entsprechenden Fehllercode errorcode und der Landeskennung entsprechend ISO aufgerufen.
|
Bereich |
Fehlerursache |
|
<199 |
allgemeine XMLRPC-Fehler |
|
201-799 |
allgemeine XML-Fehler |
|
801-999 |
XMLRPC-Service-Fehlermeldung von www.gutscheinmarketing.de |
|
>1001 |
Fehlermeldung des XMLRPC-Client |
|
Fehlerwert |
Beschreibung |
|
1 |
Unbekannte Methode |
|
2 |
Ungültiger Rückgabewert: schalten Sie in den Debug-Modus ("?debug=1") um die Rückgabewerte zu kontollieren |
|
3 |
Ungültige Parameter an Methode übergeben |
|
4 |
Kann nicht prüfen: Methode unbekannt |
|
5 |
Kein 200 OK vom Server empfangen |
t.b.d
|
Fehlerwert |
Beschreibung |
|
801 |
Benutzer unbekannt |
|
802 |
Keine gültige Anmeldung |
|
803 |
Keine gültige Verbindung |
|
804 |
Kein gültiger Gutschein |
|
805 |
Gutschein bereits eingelöst durch anderen Server |
|
806 |
Keinen Gutschein zum Freigeben gefunden oder Gutschein bereits freigegeben |
|
Fehlerwert |
Beschreibung |
|
1001 |
Kein Benutzer angegeben |
|
1002 |
Kein Geheimnis angeben |
|
1003 |
Keine Gutscheinnummer oder Gutscheinnummer ist leer oder NULL |
|
1004 |
Kein gültiger Gutschein |
|
1005 |
Keine gültige Session oder Session nicht initialisiert |
Tabellenverzeichnis
Tabelle 1: openChannel(string)
Tabelle 2: authenticate(string,string) 10
Tabelle 4: isValidCoupon(string,string)
Tabelle 5: getCouponValues(string,string)
Tabelle 6: lockCoupon(string,string) oder lockCoupon(string,string,string)
Tabelle 7: unlockCoupon(string,string,string) oder lockCoupon(string,string,string,string)
Tabelle 8: system.listMethods() 23
Tabelle 9: system.methodHelp(string)