Zweck der Funktion:
Mit dieser Funktion können Sie für Ihre Website länderspezifische HTML-Eingabeformulare generieren, ohne die Länder unterschiedlich behandeln zu müssen. Außerdem ist die Formatierung (z. B. mit CSS) unter Ihrer Kontrolle. Da Sie - unterstützt durch diese Funktion - die HTML-Formulare auf Ihrem eigenen Server generieren, gibt es auch keine Probleme mit Web-Formularen, die von unterschiedlichen Servern kommen und miteinander interagieren müssen.
Das Problem mit unterschiedlichen Ländern:
Länderspezifische Formulare unterscheiden sich nicht nur in der Anzahl und Art der Felder (z. B.: nur Kontonummer für Belgien, Kontonummer + BLZ für Deutschland etc.), sondern auch in der Anzahl der Interaktionsschritte (z. B. Schweiz: Benutzer wählt erst die Bank, dann die Filiale/BC-Nummer aus einer Liste, dann gibt er die Kontonummer ein - im Gegensatz zu Deutschland: der Benutzer gibt Kontonummer und Bankleitzahl ein, und damit sind schon alle benötigten Parameter vorhanden).
Wie die Interaktion - für alle Länder gleich - funktioniert:
Sie rufen die Funktion mehrmals auf. Jedesmal sagt Ihnen die Funktion, ob ein weiterer Aufruf nötig sein wird. Wenn ja, liefert sie außerdem eine Beschreibung des von Ihnen zu generierenden Web-Formulars. Wenn kein weiterer Aufruf nötig ist, liefert sie stattdessen eine Liste der Parameter, die Sie an die SOAP-Funktion 'calculate_iban' senden müssen, um eine IBAN zu berechnen.
Eingabe:
Neben Ihrer Benutzer-ID/Passwort gibt es einen komplexen Datentyp ('Map') namens 'params' als Parameter, der Paare von Schlüsseln und zugehörigen Werten enthält. Beim ersten Aufruf können Sie mit zwei solchen Paaren die von Ihnen gewünschte Sprache für das Formular sowie das Land festlegen:
Bei Folgeaufrufen übergeben Sie in dieser Datenstruktur die Felder und zugehörigen Werte, die Sie bei dem vorigen Aufruf von der Funktion 'get_form' zurückerhalten haben und die ggf. durch Ihre Website-Benutzer editiert wurden.
Rückgabe:
Die Funktion liefert neben der Information, ob ein weiterer Aufruf von get_form notwendig sein wird, eine Liste von Feldern mit diversen Attributen zurück. Wenn kein weiterer Aufruf nötig sein wird, wird die Feldliste für die Liste der Parameter für die SOAP-Funktion calculate_iban verwendet. Sie können ihr also entnehmen, wie Sie die Funktion calculate_iban aufrufen müssen, um Ihre gewünschte IBAN zu berechnen. Sollte dagegen ein weiterer Aufruf nötig sein, gibt Ihnen diese Liste die nötigen Informationen zum Aufbau eines Web-Formulars, das Sie dann Ihrem Benutzer präsentieren können. Jedes Feld hat dabei folgende Attribute:
Als einfaches Beispiel hier der komplette Dialog für Deutschland.
Zunächst wird ein Request an die Funktion get_form geschickt, in der nach dem Formular für Deutschland und auf deutsch gefragt wird:
Dieses Stückchen Code liefert die folgende Antwort:
Diese Antwort ist wie folgt zu verstehen: "done" hat den Wert "no", wir sind also noch nicht fertig. Das heißt, die folgenden Felder sollten in einem HTML-Formular dargestellt werden und dann, wenn der Benutzer Gelegenheit hatte, ihre Werte zu editieren, in einem zweiten Aufruf noch einmal an die Funktion get_form übergeben werden.
Die Felder im einzelnen sind:
Im folgenden sehen Sie PHP-Code, der für jedes Land und jede derartig beschriebene Feldkombination ein HTML-Formular erzeugt:
Nachdem der Benutzer Gelegenheit hatte, das HTML-Formular zu bearbeiten, kann man mit dem folgenden Code, der für beliebige Länder gleich funktioniert, den neuen Aufruf der Funktion get_form durchführen. Hier werfen wir einfach alle Parameter aus dem Array $_REQUEST in die Datenstruktur "params", obwohl nicht alle nötig wären (solche, die die Funktion get_form nicht erwartet, ignoriert sie einfach):
Wenn der Benutzer beispielsweise die Kontonummer 0648479930 und die Bankleitzahl 50010517 eingegeben hat, sind wir jetzt schon fertig, "done" hat also jetzt den Wert "yes". Das unten gezeigte Programm gibt dann aus:
Das war der letzte Schritt. Jetzt können wir die Funktion calculate_iban mit folgenden Parametern aufrufen:
country = DE
bankcode = 50010517
account = 0648479930
bic =
legacy_mode =
Die Datenstruktur, die diese Informationen enthält, sieht wie folgt aus:
Das folgende kleine PHP-Programm geht für das Land und die Formularsprache, die im ersten Aufruf von get_form gewählt wird, durch alle Schritte und zeigt die jeweiligen Formulare an: