====== XML-RPC: Einzel-Aufträge ======
* Namen der Services
* **hibiscus.xmlrpc.sepaueberweisung** Für den Zugriff auf SEPA-Überweisungen
* **hibiscus.xmlrpc.sepalastschrift** Für den Zugriff auf SEPA-Lastschriften
Die Funktionen für Überweisungen und Lastschriften sind identisch, lediglich die Service-Namen unterscheiden sich.
===== Schlüssel-Namen =====
^ Bezeichnung ^ Beschreibung ^
| konto | ID des Kontos |
| termin | Ausführungstermin im Format dd.mm.yyyy |
| blz | BIC des Gegenkontos |
| kontonummer | IBAN des Gegenkontos |
| name | Inhaber-Name des Gegenkontos |
| betrag | Betrag des Auftrages im Locale-spezifischen Format des Systems |
| verwendungszweck | Verwendungszweck (Array) |
| ausgefuehrt | Auftragsstatus (true/false) |
Für SEPA-Überweisungen existieren zusätzlich noch die folgenden Schlüssel-Namen:
^ Bezeichnung ^ Beschreibung ^
| endtoendid | Ende-zu-Ende Referenz |
| pmtinfid | Payment-Information ID (erscheint als KREF im Kontoauszug) |
| purposecode | SEPA Purpose Code |
Für SEPA-Lastschriften existieren zusätzlich noch die folgenden Schlüssel-Namen:
^ Bezeichnung ^ Beschreibung ^
| endtoendid | Ende-zu-Ende Referenz |
| pmtinfid | Payment-Information ID (erscheint als KREF im Kontoauszug) |
| purposecode | SEPA Purpose Code |
| mandateid | Mandats-Referenz |
| creditorid | Gläubiger-Identifikation |
| sigdate | Unterschriftsdatum des Mandats im Format dd.mm.yyyy |
| sequencetype | Sequenz-Typ (FRST,RCUR,FNAL,OOFF) |
| sepatype | Lastschrift-Art (CORE,COR1,B2B) |
| targetdate | Fälligkeitsdatum im Format dd.mm.yyyy (Vorlaufzeit beachten!) |
Generell gilt bei SEPA-Aufträgen: Nur eine Zeile Verwendungszweck mit maximal 140 Zeichen.
===== Zeichensatz =====
Es ist zu beachten, dass die Zeichenketten insbesondere Namen und Verwendungszwecke im ISO-8859-1 Zeichensatz übermittelt werden. UTF-8 Umlaute werden z.B. abgelehnt.
In PHP kann UTF-8 mittels utf8_decode umgewandelt werden.
===== Verfügbare Funktionen =====
==== Liste der Schlüsselnamen ermitteln ====
public Map createParams() throws RemoteException;
* Name der Funktion: **createParams**
* Liste der Parameter
* Rückgabe-Wert: **struct** Ein leeres Struct, welches lediglich die o.g. Schlüssel, jedoch noch keine Werte enthält. Das Struct kann als Vorlage für neue Aufträge verwendet werden
==== Liste der Aufträge ermitteln ====
public List
* Name der Funktion: **find**
* Liste der Parameter
- **String** Suchbegriff (darf leer sein)
- **String** Start-Datum des Termins im Format "dd.mm.yyyy" oder "yyyy-mm-dd" (darf leer sein)
- **String** End-Datum des Termins im Format "dd.mm.yyyy" oder "yyyy-mm-dd" (darf leer sein)
* Rückgabe-Werte: **array** (Liste mit "struct"-Elementen) \\ Liste der gefundenen Aufträge. Jedes Element der Liste enthält einen Auftrag in Form eines Struct mit den o.g. Schlüsseln
=== Code-Beispiele ===
== Java ==
String[] params = new String[]{"test",
"01.01.2009",
"31.12.2011"
};
Object[] l = (Object[]) client.execute("hibiscus.xmlrpc.sepaueberweisung.find",params);
// Object[] l = (Object[]) client.execute("hibiscus.xmlrpc.sepalastschrift.find",params);
for (Object o:l)
{
System.out.println(o);
}
== PHP ==
$params = array(new xmlrpcval("test","string"),
new xmlrpcval("01.01.2009","string"),
new xmlrpcval("31.12.2011","string"));
$msg = new xmlrpcmsg("hibiscus.xmlrpc.sepaueberweisung.find",$params);
// $msg = new xmlrpcmsg("hibiscus.xmlrpc.sepalastschrift.find",$params);
$response = $client->send($msg);
$value = $response->value();
for ($i=0;$i<$value->arraySize();$i++)
{
$job = $value->arrayMem($i);
print("ID : ".$job->structMem("id")->scalarVal()."\n");
print("Quellkonto ID : ".$job->structMem("konto")->scalarVal()."\n");
print("Termin : ".$job->structMem("termin")->scalarVal()."\n");
print("Ausgeführt : ".$job->structMem("ausgefuehrt")->scalarVal()."\n");
print("Name : ".$job->structMem("name")->scalarVal()."\n");
print("IBAN : ".$job->structMem("kontonummer")->scalarVal()."\n");
print("BIC : ".$job->structMem("blz")->scalarVal()."\n");
print("Betrag : ".$job->structMem("betrag")->scalarVal()."\n");
$zweck = $job->structMem("verwendungszweck");
for ($k=0;$k<$zweck->arraySize();$k++)
{
$line = $zweck->arrayMem($k);
print(" ".$line->scalarVal()."\n");
}
print("\n");
}
==== Liste der Aufträge ermitteln (veraltet) ====
| **deprecated** Diese Funktion existiert aus Gründen der Abwärtskompatibilität weiterhin. \\ Verwende künftig jedoch bitte die Funktion **[[develop:xmlrpc:einzelauftrag#liste_der_auftraege_ermitteln|find]]** mit dem "struct"-Parameter - die neue Funktion liefert zudem detailliertere Rückgabe-Werte. |
public String[] list() throws RemoteException;
* Name der Funktion: **list**
* Verwendung: Liefert eine Liste aller Aufträge
* Liste der Parameter:
* Rückgabe-Werte: **array** (Liste mit "String"-Elementen) \\ Liste der gefundenen Aufträge. Die Werte in jeder Zeile sind durch Doppelpunkte getrennt.\\ \\ Aufbau der Zeilen ::::::
=== Code-Beispiele ===
== Java ==
Object[] list = (Object[]) client.execute("hibiscus.xmlrpc.sepaueberweisung.list",(Object[])null);
// Object[] list = (Object[]) client.execute("hibiscus.xmlrpc.sepalastschrift.list",(Object[])null);
for (Object o:list)
{
System.out.println(o);
}
== PHP ==
$msg = new xmlrpcmsg("hibiscus.xmlrpc.sepaueberweisung.list");
// $msg = new xmlrpcmsg("hibiscus.xmlrpc.sepalastschrift.list");
$response = $client->send($msg);
$value = $response->value();
for ($i=0;$i<$value->arraySize();$i++)
{
print($value->arrayMem($i)->scalarVal()."\n");
}
==== Auftrag anlegen ====
public String create(Map auftrag) throws RemoteException;
* Name der Funktion: **create**
* Liste der Parameter
- **struct** Struct mit den Eigenschaften des Auftrages. Als Schlüssel sind die o.g. Schlüssel-Namen zu verwenden.
* Rückgabe-Wert
* bei [[develop:xmlrpc#null-support_aktivieren_deaktivieren|xmlrpc.supports.null]]=true: **OK** = return NULL, **FEHLER** = return Fehlertext
* bei [[develop:xmlrpc#null-support_aktivieren_deaktivieren|xmlrpc.supports.null]]=false: **OK** = return ID, **FEHLER** = throws Exception
Beim Anlegen einer SEPA-Überweisung wird die IBAN mit dem Schlüssel "konto" und die BIC mit dem Schlüssel "blz" übergeben.
=== Code-Beispiele ===
== Java ==
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
Map params = new HashMap();
params.put("betrag","1,50");
params.put("termin","15.01.2011");
params.put("konto","1");
params.put("name","Max Mustermann");
params.put("blz","12345678");
params.put("kontonummer","DE1234567890");
params.put("verwendungszweck","Test");
Object result = client.execute("hibiscus.xmlrpc.sepaueberweisung.create",new Object[]{params});
// Object result = client.execute("hibiscus.xmlrpc.sepalastschrift.create",new Object[]{params});
System.out.println(result);
== PHP ==
$params = new xmlrpcval(
array(
"betrag" => new xmlrpcval("1,50","string"),
"termin" => new xmlrpcval("15.01.2011","string"),
"konto" => new xmlrpcval("1","string"),
"name" => new xmlrpcval("Max Mustermann","string"),
"blz" => new xmlrpcval("12345678","string"),
"kontonummer" => new xmlrpcval("DE1234567890","string"),
"verwendungszweck" => new xmlrpcval("Test","string"),
),"struct");
$msg = new xmlrpcmsg("hibiscus.xmlrpc.sepaueberweisung.create",array($params));
// $msg = new xmlrpcmsg("hibiscus.xmlrpc.sepalastschrift.create",array($params));
$response = $client->send($msg);
print($response->value()->scalarval());
==== Auftrag anlegen (veraltet) ====
| **deprecated** Diese Funktion existiert aus Gründen der Abwärtskompatibilität weiterhin. \\ Verwende künftig jedoch bitte die Funktion **[[develop:xmlrpc:einzelauftrag#auftrag_anlegen|create]]** mit dem "struct"-Parameter - die neue Funktion bietet zudem detailliertere Parameter. |
public String create(String kontoID, String kto, String blz, String name, String zweck, String zweck2, double betrag, String termin, String type) throws RemoteException;
* Name der Funktion: **create**
* Liste der Parameter
- **String** ID des Kontos
- **String** IBAN des Gegenkontos
- **String** BIC des Gegenkontos
- **String** Inhaber-Name des Gegenkontos
- **String** Verwendungszweck (max. 140 Zeichen)
- **String** frei lassen
- **double** Betrag als Dezimalzahl(!)
- **String** Ausführungstermin im Format "dd.mm.yyyy" oder "yyyy-mm-dd"
- **String** frei lassen
* Rückgabe-Wert
* bei [[develop:xmlrpc#null-support_aktivieren_deaktivieren|xmlrpc.supports.null]]=true: **OK** = return NULL, **FEHLER** = return Fehlertext
* bei [[develop:xmlrpc#null-support_aktivieren_deaktivieren|xmlrpc.supports.null]]=false: **OK** = return ID, **FEHLER** = throws Exception
=== Code-Beispiele ===
== Java ==
Object[] params = {
"1", // ID des Kontos
"DE1234567890", // IBAN des Gegenkontos
"12345678", // BIC des Gegenkontos
"Max Mustermann", // Inhaber-Name des Gegenkontos
"Zweck", // Verwendungszweck, maximal 140 Zeichen
"", // frei lassen
1.5d, // Betrag
"15.01.2011", // Ausfuehrungstermin
"", // frei lassen
};
Object result = client.execute("hibiscus.xmlrpc.sepaueberweisung.create",params);
// Object result = client.execute("hibiscus.xmlrpc.sepalastschrift.create",params);
System.out.println(result);
== PHP ==
$params = array(
new xmlrpcval("1","string"), // ID des Kontos
new xmlrpcval("DE1234567890","string"), // IBAN des Gegenkontos
new xmlrpcval("12345678","string"), // BIC des Gegenkontos
new xmlrpcval("Max Mustermann","string"), // Inhaber-Name des Gegenkontos
new xmlrpcval("Zweck","string"), // Verwendungszweck, maximal 140 Zeichen
new xmlrpcval("","string"), // frei lassen
new xmlrpcval(1.5,"double"), // Betrag (Achtung: Punkt statt Komma, da Variable vom Typ double!)
new xmlrpcval("15.01.2011","string"), // Ausfuehrungstermin
new xmlrpcval("","string") // frei lassen
);
$msg = new xmlrpcmsg("hibiscus.xmlrpc.sepaueberweisung.create",$params);
// $msg = new xmlrpcmsg("hibiscus.xmlrpc.sepalastschrift.create",array($params));
$response = $client->send($msg);
print($response->faultString());
print($response->value()->scalarval());
==== Auftrag löschen ====
public String delete(String id) throws RemoteException;
* Name der Funktion: **delete**
* Liste der Parameter
- **String** ID des zu löschenden Auftrages
* Rückgabe-Wert
* bei [[develop:xmlrpc#null-support_aktivieren_deaktivieren|xmlrpc.supports.null]]=true: **OK** = return NULL, **FEHLER** = return Fehlertext
* bei [[develop:xmlrpc#null-support_aktivieren_deaktivieren|xmlrpc.supports.null]]=false: **OK** = return ID, **FEHLER** = throws Exception
=== Code-Beispiele ===
== Java ==
Object result = client.execute("hibiscus.xmlrpc.sepaueberweisung.delete",new Object[]{"13"});
// Object result = client.execute("hibiscus.xmlrpc.sepalastschrift.delete",new Object[]{"13"});
System.out.println(result);
== PHP ==
$msg = new xmlrpcmsg("hibiscus.xmlrpc.sepaueberweisung.delete",array(new xmlrpcval("13","string")));
// $msg = new xmlrpcmsg("hibiscus.xmlrpc.sepalastschrift.delete",array(new xmlrpcval("13","string")));
$response = $client->send($msg);
print($response->value()->scalarval());