Benutzer-Werkzeuge

Webseiten-Werkzeuge


develop:xmlrpc

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
develop:xmlrpc [d.m.Y H:i] willuhndevelop:xmlrpc [d.m.Y H:i] willuhn
Zeile 14: Zeile 14:
 ==== Java ==== ==== Java ====
  
-Wir benötigen [[http://www.java.com/de/|SUN Java]] in Version 6 (oft auch "1.6" bezeichnet) oder höher. Die Verwendung von Java-Versionen anderer Hersteller (z.Bsp. IBM Java, GNU GCJ/Classpath, OpenJDK, usw.) wird nicht empfohlen, da auf diesen Plattformen keine Tests durchgeführt wurden.+Du benötigst [[http://www.java.com/de/|Java]] in Version 6 (oft auch "1.6" bezeichnet) oder höher von Oracle oder OpenJDK. Die Verwendung von Java-Versionen anderer Hersteller (z.Bsp. IBM Java, GNU GCJ/Classpath usw.) wird nicht empfohlen, da auf diesen Plattformen keine Tests durchgeführt wurden.
  
  
 ==== Jameica und Plugins ==== ==== Jameica und Plugins ====
  
-Wir benötigen folgende Komponenten:+Folgende Komponenten werden benötigt:
  
-^ Name             ^ Version ^ Download ^ +^ Name             ^ Download ^ 
-| jameica          | 1.10 oder höher | [[http://www.willuhn.de/projects/jameica/download.php]] | +| jameica          | [[http://www.willuhn.de/products/jameica/download.php]] | 
-| jameica.webadmin | 1.2 oder höher  | [[http://www.willuhn.de/projects/jameica/download_ext.php]] | +| jameica.webadmin | [[http://www.willuhn.de/products/jameica/download_ext.php]] | 
-| jameica.xmprpc   | 1.1 oder höher  | [[http://www.willuhn.de/projects/jameica/download_ext.php]] | +| jameica.xmlrpc   | [[http://www.willuhn.de/products/jameica/download_ext.php]] | 
-| hibiscus         | 1.12 oder höher | [[http://www.willuhn.de/projects/hibiscus/download.php]] | +| hibiscus         | [[http://www.willuhn.de/products/hibiscus/download.php]] | 
-| hibiscus.xmlrpc  | 1.1 oder höher  | [[http://www.willuhn.de/projects/hibiscus/download_ext.php]] |+| hibiscus.xmlrpc  | [[http://www.willuhn.de/products/hibiscus/download_ext.php]] |
  
 Das Plugin "jameica.webadmin" erweitert Jameica um Webfunktionalität mithilfe eines embedded Webservers ([[http://jetty.mortbay.org/jetty/index.html|Jetty]]). "jameica.xmlrpc" setzt auf diesen Webserver auf und erweitert ihn um XML-RPC-Fähigkeiten. Neben Hibiscus selbst wird nun noch "hibiscus.xmlrpc" benötigt, welches die Hibiscus-Daten via XML-RPC bereitstellt. Das Plugin "jameica.webadmin" erweitert Jameica um Webfunktionalität mithilfe eines embedded Webservers ([[http://jetty.mortbay.org/jetty/index.html|Jetty]]). "jameica.xmlrpc" setzt auf diesen Webserver auf und erweitert ihn um XML-RPC-Fähigkeiten. Neben Hibiscus selbst wird nun noch "hibiscus.xmlrpc" benötigt, welches die Hibiscus-Daten via XML-RPC bereitstellt.
  
 +**Hinweis** Der [[http://willuhn.de/products/hibiscus-server|Hibiscus Payment-Server]] enthält bereits alle benötigten Komponenten. Beachte hier jedoch, dass das eine reine Server-Anwendung ist, die nicht über die grafische Benutzer-Oberfläche bedient werden kann sondern nur über das Webfrontend unter [[https://<server>:8080/hibiscus]]. Alle folgenden Hinweise, die sich auf die grafische Benutzer-Oberfläche von Hibiscus/Jameica beziehen, gelten für den Payment-Server nicht. Hier werden alle Aktionen stattdessen über das genannte Web-Frontend ausgeführt.
  
 ===== Installation ===== ===== Installation =====
  
-Jameica und Hibiscus können wie gehabt [[support:install|installiert]] werden. Die zusätzlichen Plugins "jameica.webadmin", "jameica.xmlrpc" und "hibiscus.xmlrpc" entpacken wir nun ebenfalls (wie Hibiscus auch) im Verzeichnis "plugins". Fertig. +Jameica und Hibiscus können wie gehabt [[handbuch:sonstiges:install|installiert]] werden. Entpacke die zusätzlichen Plugins "jameica.webadmin", "jameica.xmlrpc" und "hibiscus.xmlrpc" anschließend ebenfalls (wie Hibiscus auch) im Verzeichnis "plugins". Fertig.
- +
  
 ===== Erster Start ===== ===== Erster Start =====
Zeile 42: Zeile 40:
 Jameica wird wie gewohnt gestartet (mit jameica.sh, jameica-win32.exe, etc.) . Sollten hierbei bereits Fehler auftreten, ist die häufigste Ursache ein Versionskonflikt zwischen den verwendeten Plugins. Bitte beachte die oben angegebenen Versionsnummern. Jameica wird wie gewohnt gestartet (mit jameica.sh, jameica-win32.exe, etc.) . Sollten hierbei bereits Fehler auftreten, ist die häufigste Ursache ein Versionskonflikt zwischen den verwendeten Plugins. Bitte beachte die oben angegebenen Versionsnummern.
  
-Richten Sie nun wie gewohnt ein Sicherheitsmedium (Chipkarte, PIN/TAN oder Schlüsseldiskette) ein und legen Sie Ihre Konten an.  Folgen Sie hierbei der [[support:install#erste_schritte_konfiguration|Installations-Anleitung]] (Schritt "Erste Schritte / Konfiguration").+Richte nun wie gewohnt ein Sicherheitsmedium (Chipkarte, PIN/TAN oder Schlüsseldiskette) ein und lege die Konten an.
  
 ===== XML-RPC-Services aktivieren ===== ===== XML-RPC-Services aktivieren =====
  
-Wir klicken oben im Menu auf "Datei>Einstellungen". Hier werden nun zwei zusätzliche Reiter ("Tabs") angezeigt.+Klicke oben im Menu auf "Datei>Einstellungen". Hier werden nun zwei zusätzliche Reiter ("Tabs") angezeigt.
  
-Auf dem Reiter "HTTP" können wir den TCP-Port einstellen, über den wir anschließend auf den XML-RPC-Service zugreifen. Weiterhin kann der Zugriff mittels SSL (also HTTPS) verschlüsselt und durch Authentifizierung mittels Master-Passwort geschützt werden.+Auf dem Reiter "HTTP" kann ein abweichender TCP-Port eingestellt werden, über den anschließend auf den XML-RPC-Service zugegriffen werden kann. Weiterhin kann der Zugriff mittels SSL (also HTTPS) verschlüsselt und durch Authentifizierung mittels Master-Passwort geschützt werden.
  
 <code>Sicherheitshinweis: HTTPS und Authentifizierung mittels Master-Passwort sollte nur zum Testen deaktiviert werden!</code> <code>Sicherheitshinweis: HTTPS und Authentifizierung mittels Master-Passwort sollte nur zum Testen deaktiviert werden!</code>
  
-Wir öffnen nun den Reiter "XML-RPC". Lediglich die folgenden Services müssen aktiviert werden, um Zugriff via XML-RPC zu erhalten.+Öffnen den Reiter "XML-RPC". Lediglich die folgenden Services müssen aktiviert werden, um Zugriff via XML-RPC zu erhalten. 
 + 
 +^ Plugin          ^ Service                ^ Beschreibung ^ 
 +| hibiscus.xmlrpc | address                | Abfragen, Anlegen und Löschen von Adressen im Adressbuch | 
 +| hibiscus.xmlrpc | konto                  | Zugriff auf die Liste der Konten und Salden | 
 +| hibiscus.xmlrpc | umsatz                 | Abfragen der Kontoauszüge | 
 +| hibiscus.xmlrpc | sepaueberweisung       | Abrufen, Erstellen und Löschen von SEPA-Überweisungen | 
 +| hibiscus.xmlrpc | sepalastschrift        | Abrufen, Erstellen und Löschen von SEPA-Lastschriften | 
 +| hibiscus.xmlrpc | sepasammelueberweisung | Abrufen, Erstellen und Löschen von SEPA-Sammel-Überweisungen | 
 +| hibiscus.xmlrpc | sepasammellastschrift  | Abrufen, Erstellen und Löschen von SEPA-Sammel-Lastschriften |
  
-^ Plugin          ^ Service      ^ Beschreibung ^ 
-| hibiscus.xmlrpc | address            | Abfragen, Anlegen und Löschen von Adressen im Adressbuch | 
-| hibiscus.xmlrpc | konto              | Zugriff auf die Liste der Konten und Salden | 
-| hibiscus.xmlrpc | umsatz             | Abfragen der Kontoauszüge | 
-| hibiscus.xmlrpc | ueberweisung       | Abrufen, Erstellen und Löschen von Überweisungen | 
-| hibiscus.xmlrpc | lastschrift        | Abrufen, Erstellen und Löschen von Lastschriften | 
-| hibiscus.xmlrpc | sammelueberweisung | Abrufen, Erstellen und Löschen von Sammel-Überweisungen | 
-| hibiscus.xmlrpc | sammellastschrift  | Ermöglicht das Abrufen und Erstellen von Sammel-Lastschriften | 
  
 Alternativ können die XML-RPC-Services auch manuell in der Konfigurations-Datei cfg/de.willuhn.jameica.xmlrpc.Plugin.properties (im [[support:backup#benutzerverzeichnis|Benutzerverzeichnis]]) durch Hinzufügen folgender Zeilen aktiviert werden: Alternativ können die XML-RPC-Services auch manuell in der Konfigurations-Datei cfg/de.willuhn.jameica.xmlrpc.Plugin.properties (im [[support:backup#benutzerverzeichnis|Benutzerverzeichnis]]) durch Hinzufügen folgender Zeilen aktiviert werden:
Zeile 68: Zeile 67:
   hibiscus.xmlrpc.konto.shared=true   hibiscus.xmlrpc.konto.shared=true
   hibiscus.xmlrpc.umsatz.shared=true   hibiscus.xmlrpc.umsatz.shared=true
-  hibiscus.xmlrpc.ueberweisung.shared=true +  hibiscus.xmlrpc.sepaueberweisung.shared=true 
-  hibiscus.xmlrpc.lastschrift.shared=true +  hibiscus.xmlrpc.sepalastschrift.shared=true 
-  hibiscus.xmlrpc.sammellastschrift.shared=true +  hibiscus.xmlrpc.sepasammelueberweisung.shared=true 
-  hibiscus.xmlrpc.sammelueberweisung.shared=true+  hibiscus.xmlrpc.sepasammellastschrift.shared=true
  
 ===== Konfiguration prüfen ===== ===== Konfiguration prüfen =====
  
-Wir beenden Hibiscus und starten die Anwendung nun neu. In der Log-Datei "jameica.log" im [[support:backup#benutzerverzeichnis|Benutzerverzeichnis]] werden nun die URLs der aktivierten Services angezeigt. Beispiel:+Beende Hibiscus und starte die Anwendung nun neu. In der Log-Datei "jameica.log" im [[support:backup#benutzerverzeichnis|Benutzerverzeichnis]] werden nun die URLs der aktivierten Services angezeigt. Beispiel:
  
   [...Datum/Zeit...][INFO][de.....ServiceNotify.handleMessage] XML-RPC-Services   [...Datum/Zeit...][INFO][de.....ServiceNotify.handleMessage] XML-RPC-Services
Zeile 81: Zeile 80:
   [...Datum/Zeit...][INFO][de.....ServiceNotify.handleMessage]    * https://<hostname>:8080/xmlrpc/hibiscus.xmlrpc.konto   [...Datum/Zeit...][INFO][de.....ServiceNotify.handleMessage]    * https://<hostname>:8080/xmlrpc/hibiscus.xmlrpc.konto
   [...Datum/Zeit...][INFO][de.....ServiceNotify.handleMessage]    * https://<hostname>:8080/xmlrpc/hibiscus.xmlrpc.umsatz   [...Datum/Zeit...][INFO][de.....ServiceNotify.handleMessage]    * https://<hostname>:8080/xmlrpc/hibiscus.xmlrpc.umsatz
-  [...Datum/Zeit...][INFO][de.....ServiceNotify.handleMessage]    * https://<hostname>:8080/xmlrpc/hibiscus.xmlrpc.ueberweisung +  [...Datum/Zeit...][INFO][de.....ServiceNotify.handleMessage]    * https://<hostname>:8080/xmlrpc/hibiscus.xmlrpc.sepaueberweisung 
-  [...Datum/Zeit...][INFO][de.....ServiceNotify.handleMessage]    * https://<hostname>:8080/xmlrpc/hibiscus.xmlrpc.lastschrift +  [...Datum/Zeit...][INFO][de.....ServiceNotify.handleMessage]    * https://<hostname>:8080/xmlrpc/hibiscus.xmlrpc.sepalastschrift 
-  [...Datum/Zeit...][INFO][de.....ServiceNotify.handleMessage]    * https://<hostname>:8080/xmlrpc/hibiscus.xmlrpc.sammellastschrift +  [...Datum/Zeit...][INFO][de.....ServiceNotify.handleMessage]    * https://<hostname>:8080/xmlrpc/hibiscus.xmlrpc.sepasammelueberweisung 
-  [...Datum/Zeit...][INFO][de.....ServiceNotify.handleMessage]    * https://<hostname>:8080/xmlrpc/hibiscus.xmlrpc.sammelueberweisung+  [...Datum/Zeit...][INFO][de.....ServiceNotify.handleMessage]    * https://<hostname>:8080/xmlrpc/hibiscus.xmlrpc.sepasammellastschrift
  
  
Zeile 90: Zeile 89:
 ===== (optional) Hibiscus ohne GUI starten ===== ===== (optional) Hibiscus ohne GUI starten =====
  
-Wenn Sie Hibiscus auf einem Server verwenden wollen und keine grafische Benutzeroberfläche benötigenkönnen Sie das Jameica-Startscript mit den Parametern "-d" (um die GUI nicht zu starten) und "-p <Master-Passwort" (um das Master-Passwort bereits beim Start zu übergeben) ausführen. Alle Log-Ausgaben erscheinen zusätzlich auf der Konsole. Öffnen Sie hierzu eine Shell (Linux), ein Terminal (MacOS) oder eine DOS-Eingabeaufforderung (Windows), wechseln Sie in das Programmverzeichnis von Jameica und geben starten Sie Hibiscus wie folgt:+Wenn du Hibiscus auf einem Server verwenden willst und keine grafische Benutzeroberfläche benötigstkannst Du das Jameica-Startscript mit den Parametern "-d" (um die GUI nicht zu starten) und "-p <Master-Passwort" (um das Master-Passwort bereits beim Start zu übergeben) ausführen. Alle Log-Ausgaben erscheinen zusätzlich auf der Konsole. Öffne hierzu eine Shell (Linux), ein Terminal (MacOS) oder eine DOS-Eingabeaufforderung (Windows), wechsle in das Programmverzeichnis von Jameica und starte Hibiscus wie folgt:
  
-^ Betriebssystem        ^ Kommando                                   +^ Betriebssystem        ^ Kommando                                                                                        
-| Windows               | jameica-win32.exe -d -p <Master-Passwort>  +| Windows               | jameica-win32.exe -d -p <Master-Passwort> (beim Payment-Server stattdessen "jameicaserver.exe"
-| Linux                 | ./jameica.sh -d -p <Master-Passwort>       +| Linux                 | ./jameica.sh -d -p <Master-Passwort>  (beim Payment-Server stattdessen "jameicaserver.sh"     
-| MacOS                 | ./jameica-macos.sh -d                      |+| MacOS                 | ./jameica-macos.sh -d                                                                           |
  
 Hinweise: Hinweise:
  
   * Das Übergeben des Master-Passwortes wird für MacOS nicht unterstützt.   * Das Übergeben des Master-Passwortes wird für MacOS nicht unterstützt.
-  * Für Linux können Sie auch das Init-Script "rcjameica" zum Starten und Beenden verwenden. Es ist für OpenSuSE Linux vorbereitet, kann von Ihnen jedoch auch leicht an Ihre Distribution angepasst werden. +  * Für Linux kann auch das Init-Script "rcjameica" zum Starten und Beenden verwendet werden. Es ist zwar für OpenSuSE Linux vorbereitet, kann jedoch auch an andere Distributionen angepasst werden.
- +
-Alternativ können Sie Hibiscus natürlich auch wie gewohnt mit Benutzeroberfläche starten. Der Zugriff auf die XML-RPC-Services funktioniert auch in diesem Betriebsmodus. +
  
  
 ===== XML-RPC-Aufrufe im Detail ===== ===== XML-RPC-Aufrufe im Detail =====
  
-Die folgenden Tabellen erläutern die nun verfügbaren XML-RPC-Funktionen im Detail+Die folgenden Seiten erläutern die verfügbaren XML-RPC-Funktionen im Detail inclusive Code-Beispielen:
-==== hibiscus.xmlrpc.konto ==== +
- +
-| Name der Funktion | //list// | +
-| Verwendung        | Abrufen der eingerichteten Konten | +
-| Aufruf-Parameter  | <keine>+
-| Rückgabe-Wert     | //String[]// (String-Array)\\ Jede Zeile des Arrays enthält die Daten zu einem Konto. Die Werte in jeder Zeile sind durch Doppelpunkte getrennt.\\ \\ Aufbau der Zeilen <code><ID des Kontos>:<Kontonummer>:<BLZ>:<Bezeichnung>:<Kundennummer>: +
-<Kontoinhaber>:<Saldo im Format "0,00">:<Saldo-Datum im Format "dd.mm.yyyy"></code>+
- +
-| Name der Funktion | //checkAccountCRC//+
-| Verwendung        | Prüfung einer Kontonummer-/BLZ-Kombination auf Plausibilität; Prüfsummen-Check der Kontonummer | +
-| Aufruf-Parameter  | **1** //String// BLZ\\ **2** //String// Kontonummer | +
-| Rückgabe-Wert     | //boolean//. //TRUE//, wenn die Konto-/BLZ-Kombination korrekt ist, sonst //FALSE// | +
- +
-| Name der Funktion | //getBankname//+
-| Verwendung        | Ermitteln des Namens des Kreditinstituts zu einer BLZ | +
-| Aufruf-Parameter  | **1** //String// BLZ | +
-| Rückgabe-Wert     | //String// Name des Kreditinstituts oder ein Leer-String, wenn zu dieser BLZ kein Kreditinstitut gefunden wurde | +
- +
-==== hibiscus.xmlrpc.umsatz ==== +
- +
-| Name der Funktion | //list// | +
-| Verwendung        | Abrufen von Umsätzen (Kontoauszügen) aus der Hibiscus-Datenbank | +
-| Aufruf-Parameter  | **1** //String// Suchbegriff\\ **2** //String// Start-Datum im Format "dd.mm.yyyy"\\ **3** //String// End-Datum im Format "dd.mm.yyyy"\\ \\ Alle drei Parameter sind optional. Falls bei der Suche keine Einschränkungen vorgenommen werden sollen, können auch Leer-Strings oder //NULL//-Werte übergeben werden. In jedem Fall jedoch müssen 3 Parameter (wenn auch leere) angegeben sein. | +
-| Rückgabe-Wert     | //String[]// (String-Array)\\ Jede Zeile des Arrays enthält die Daten zu einem Umsatz. Die Werte in jeder Zeile sind durch Doppelpunkte getrennt.\\ \\ Aufbau der Zeilen <code><ID des Kontos>:<Kontonummer Gegenkonto>:<BLZ Gegenkonto>:<Inhaber Gegenkonto>:<Betrag im Format "0,00">: +
-<Valuta-Datum im Format "dd.mm.yyyy">:<Buchungsdatum-Datum im Format "dd.mm.yyyy">:<Verwendungszweck 1>: +
-<Verwendungszweck 2>:<Saldo zu diesem Zeitpunkt im Format "0,00">:<Primanota>:<Kundenreferenz>: +
-<Umsatz-Kategorie>:<Kommentar></code>+
- +
- +
-| Name der Funktion | //list// | +
-| Verwendung        | Abrufen von Umsätzen (Kontoauszügen) aus der Hibiscus-Datenbank | +
-| Aufruf-Parameter  | **1** //Map// (struct) Suchparameter\\ Die Map kann folgende Schlüssel enthalten:\\ konto_id (ID des Kontos)\\ art\\ empfaenger_name\\ empfaenger_konto\\ empfaenger_blz\\ id\\ id:min\\ id:max\\ saldo\\ saldo:min\\ saldo:max\\ valuta (im Format "YYYY-MM-DD")\\ valuta:min (im Format "YYYY-MM-DD")\\ valuta:max (im Format "YYYY-MM-DD")\\ datum (im Format "YYYY-MM-DD")\\ datum:min (im Format "YYYY-MM-DD")\\ datum:max (im Format "YYYY-MM-DD")\\ betrag\\ betrag:min\\ betrag:max\\ primanota\\ customer_ref\\ umsatz_typ\\ Endet der Schlüssel auf ":min" oder ":max" werden nur Datensätze geliefert, bei denen das zugehörige Attribut (also "id", "saldo", "valuta", "datum", "betrag") größer oder gleich bzw kleiner oder gleich als das übergebene Value in der Map ist. Alle Parameter sind optional. Sind keine angegeben, werden ALLE Umsätze aus Hibiscus geliefert. | +
-| Rückgabe-Wert     | //List<Map>// (Liste mit Elementen vom Typ Map bzw. struct)\\ Jedes Element der zurückgelieferten Liste ist eine Map (struct) mit folgenden Schlüsseln:\\ id\\ konto_id\\ empfaenger_name\\ empfaenger_konto\\ empfaenger_blz\\ saldo\\ valuta\\ datum\\ betrag\\ primanota\\ customer_ref\\ umsatz_typ\\ zweck\\ kommentar | +
- +
- +
-==== hibiscus.xmlrpc.ueberweisung ==== +
- +
-| Name der Funktion | //list// | +
-| Verwendung        | Abrufen der bisher angelegten Überweisungen aus der Hibiscus-Datenbank | +
-| Aufruf-Parameter  | <keine>+
-| Rückgabe-Wert     | //String[]// (String-Array)\\ Jede Zeile des Arrays enthält die Daten zu einer Überweisung. Die Werte in jeder Zeile sind durch Doppelpunkte getrennt.\\ \\ Aufbau der Zeilen <code><ID des Kontos>:<Kontonummer Gegenkonto>:<BLZ Gegenkonto>:<Inhaber Gegenkonto>: +
-<Verwendungszweck 1>:<Verwendungszweck 2>:<Betrag im Format "0,00">:</code>+
- +
-| Name der Funktion | //create// | +
-| Verwendung        | Anlegen einer neuen Überweisung | +
-| Aufruf-Parameter  | **1** //String// ID des Kontos (siehe "hibiscus.xmlrpc.konto.list")\\ **2** //String// Kontonummer des Gegenkontos\\ **3** //String// BLZ des Gegenkontos\\ **4** //String// Inhaber des Gegenkontos\\ **5** //String// Verwendungszweck 1\\ **6** //String// Verwendungszweck 2\\ **7** //double// Betrag\\ **8** //String// Termin im Format "dd.mm.yyyy"\\ Die Parameter 6 und 8 können leer gelassen werden. | +
-| Rückgabe-Wert     | //[[http://de.wikipedia.org/wiki/Nullwert|NULL]]// wenn die Erstellung der Überweisung erfolgreich verlief. Andernfalls ein //String// mit der Fehlermeldung | +
- +
- +
- +
-==== hibiscus.xmlrpc.lastschrift ==== +
- +
-| Name der Funktion | //list// | +
-| Verwendung        | Abrufen der bisher angelegten Lastschriften aus der Hibiscus-Datenbank | +
-| Aufruf-Parameter  | <keine>+
-| Rückgabe-Wert     | //String[]// (String-Array)\\ Jede Zeile des Arrays enthält die Daten zu einer Lastschrift. Die Werte in jeder Zeile sind durch Doppelpunkte getrennt.\\ \\ Aufbau der Zeilen <code><ID des Kontos>:<Kontonummer Gegenkonto>:<BLZ Gegenkonto>:<Inhaber Gegenkonto>: +
-<Verwendungszweck 1>:<Verwendungszweck 2>:<Betrag im Format "0,00">:</code>+
- +
-| Name der Funktion | //create// | +
-| Verwendung        | Anlegen einer neuen Lastschrift | +
-| Aufruf-Parameter  | **1** //String// ID des Kontos (siehe "hibiscus.xmlrpc.konto.list")\\ **2** //String// Kontonummer des Gegenkontos\\ **3** //String// BLZ des Gegenkontos\\ **4** //String// Inhaber des Gegenkontos\\ **5** //String// Verwendungszweck 1\\ **6** //String// Verwendungszweck 2\\ **7** //double// Betrag\\ **8** //String// Termin im Format "dd.mm.yyyy"\\ (**9** //String// Textschlüssel)\\  "04"=Abbuchung, "05"=Einzugsermächtigung\\ Die Parameter 6 und 8 können leer gelassen werden. Parameter 9 kann weggelassen werden. In dem Fall wird der Textschlüssel "05" verwendet. | +
-| Rückgabe-Wert     | //[[http://de.wikipedia.org/wiki/Nullwert|NULL]]// wenn die Erstellung der Lastschrift erfolgreich verlief. Andernfalls ein //String// mit der Fehlermeldung | +
-   +
- +
-==== Beispiel-Code Java ==== +
- +
-Das folgende Beispiel ermittelt die Liste der Konten aus Hibiscus. Sie benötigen hierzu das Modul [[http://ws.apache.org/xmlrpc/|Apache XML-RPC]]. Ersetzen Sie die Werte in spitzen Klammern (z.Bsp. “<Master-Passwort>”) gegen die von Ihnen genutzten Werte. +
- +
-<code java> +
-import java.net.URL; +
-import java.security.SecureRandom; +
-import java.security.cert.X509Certificate; +
- +
-import javax.net.ssl.HostnameVerifier; +
-import javax.net.ssl.HttpsURLConnection; +
-import javax.net.ssl.SSLContext; +
-import javax.net.ssl.SSLSession; +
-import javax.net.ssl.TrustManager; +
-import javax.net.ssl.X509TrustManager; +
- +
-import org.apache.xmlrpc.client.XmlRpcClient; +
-import org.apache.xmlrpc.client.XmlRpcClientConfigImpl; +
- +
- +
-public class Test +
-+
-  public static void main(String[] args) throws Exception +
-  { +
-    String url = "https://<Servername>:8080/xmlrpc/"; +
- +
-    // Client-Config erzeugen +
-    XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl(); +
-    config.setBasicPassword(<Master-Passwort>); +
-    config.setBasicUserName("admin"); +
-    config.setServerURL(new URL(url)); +
- +
-    if (url.startsWith("https")) +
-      disableCertCheck(); +
-     +
-    XmlRpcClient client = new XmlRpcClient(); +
-    client.setConfig(config); +
- +
-    Object[] lines = (Object[]) client.execute("hibiscus.xmlrpc.konto.list",null); +
-    if (lines == null) +
-      return; // Kein Ergebnis erhalten +
- +
-    for (int i=0;i<lines.length;++i) +
-    { +
-      System.out.println(lines[i]); +
-    } +
-  } +
- +
-  /** +
-   * Falls HTTPS aktiviert ist, muessen Sie entweder Java das Jameica-Zertifikat +
-   * (Datei->Einstellungen->Zertifikate) bekannt machen. Sie können es mit dem +
-   * bei SUN Java mitgelieferten Programm [[http://java.sun.com/j2se/1.4.2/docs/tooldocs/windows/keytool.html|keytool]] +
-   * importieren oder (NUR ZU TESTZWECKEN!) die Zertifikats-Prüfung abschalten. +
-   * Die folgende Funktion tut dies. +
-   * @throws Exception +
-   */ +
-  private static void disableCertCheck() throws Exception +
-  { +
-    TrustManager dummy = new X509TrustManager() +
-    { +
-      public java.security.cert.X509Certificate[] getAcceptedIssuers(){return null;} +
-      public void checkClientTrusted (X509Certificate[] certs, String authType) {} +
-      public void checkServerTrusted(X509Certificate[] certs, String authType) {} +
-    }; +
-     +
-    SSLContext sc = SSLContext.getInstance("SSL"); +
-    sc.init(null, new TrustManager[]{dummy}, new SecureRandom()); +
-    HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory()); +
-    HostnameVerifier dummy2 = new HostnameVerifier() { +
-      public boolean verify(String host, SSLSession session) {return true;} +
-    }; +
-    HttpsURLConnection.setDefaultHostnameVerifier(dummy2);  +
-  } +
-+
-</code> +
- +
-==== Beispiel-Code Perl ==== +
- +
-Das folgende Beispiel ermittelt die Liste der Konten aus Hibiscus. Sie benötigen hierzu das CPAN-Modul [[http://search.cpan.org/dist/RPC-XML/|RPC::XML]]. Ersetzen Sie die Werte in spitzen Klammern (z.Bsp. "<Master-Passwort>") gegen die von Ihnen genutzten Werte. +
- +
-<code perl> +
-#!/usr/bin/perl +
- +
-use strict; +
-use RPC::XML; +
-use RPC::XML::Client; +
- +
-my $cli = RPC::XML::Client->new('https://<servername>:8080/xmlrpc/'); +
-$cli->credentials("XML-RPC","admin","<Master-Passwort>"); +
- +
-my $resp = $cli->send_request('hibiscus.xmlrpc.konto.list');+
  
-die("Keine Antwort vom Server erhalten") unless ($resp); +  * [[develop:xmlrpc:init|XML-RPC-Verbindungsaufbau]]
-die("Fehler".$resp) unless (ref($resp)); # kein korrektes Response-Objekt+
  
-my $konten = $resp->value; +  * [[develop:xmlrpc:address|Adressbuch]] 
-for(@{$konten}) +  * [[develop:xmlrpc:konto|Konten]] 
-{ +  * [[develop:xmlrpc:umsatz|Umsätze]] 
-  print $_."\n"; +  * [[develop:xmlrpc:einzelauftrag|Überweisungen und Lastschriften]] 
-+  * [[develop:xmlrpc:sammelauftrag|Sammel-Überweisungen und -Lastschriften]]
-</code>+
  
-Achtung''$resp->value'' liefert nicht das Array selbst sondern eine Referenz darauf.+**Tipp**Für PHP gibt es unter https://github.com/willuhn/hibiscus.php bereits "gebrauchsfertigen" Code.\\ 
 +**Tipp**: Ein Java-Beispiel findet sich unter http://www.zephyrsoft.org/hibiscus-watcher (Maven-Projekt). 
 +===== Verhalten der Services anpassen =====
  
 +==== Quoting aktivieren/deaktivieren ====
  
-Dieses Beispiel erstellt eine neue Lastschrift:+  * Konfigurationsdatei[[support:backup#benutzerverzeichnis|.jameica]]/cfg/de.willuhn.jameica.hbci.xmlrpc.Plugin.properties 
 +  * Name des Parameters: quoting.char=<Wert> 
 +  * Default-Wert: <keiner>
  
-<code perl> +Einige XML-RPC-Funktionen liefern Listen als Rückgabe-Werte, deren Zeilen durch Doppelpunkt getrennte Spalten enthalten (z.Bsp: [[develop:xmlrpc:umsatz#liste_der_umsaetze_ermitteln_veraltet|Liste der Umsätze (veraltet)]], [[develop:xmlrpc:konto#liste_der_konten_ermitteln_veraltet|Liste der Konten (veraltet)]] oder [[develop:xmlrpc:einzelauftrag#liste_der_auftraege_ermitteln_veraltet|Liste der Aufträge (veraltet)]]). Die einzelnen Werte der Spalten können optional mit einem beliebigen Quoting-Zeichen - z.Bsp <"umschlossen werden - für den Fall, dass Werte existieren, die Doppelpunkte enthalten (welcher ja bereits als Spaltentrenner verwendet wird.
-#!/usr/bin/perl+
  
-use strict; +Beispiel:
-use RPC::XML; +
-use RPC::XML::Client;+
  
-my $cli RPC::XML::Client->new('https://<servername>:8080/xmlrpc/'); +  quoting.char="
-$cli->credentials("XML-RPC","admin","<Master-Passwort>");+
  
  
-my @params +==== Ergebnisliste einschränken ====
-  RPC::XML::string->new("1"),              # ID des Kontos +
-  RPC::XML::string->new("1234567890"),     # Kontonummer Gegenkonto +
-  RPC::XML::string->new("12345678"),       # BLZ des Gegenkontos +
-  RPC::XML::string->new("Max Mustermann"), # Inhaber Gegenkonto +
-  RPC::XML::string->new("Test"),           # Verwendungszweck 1 +
-  RPC::XML::string->new(""),               # Verwendungszweck 2 (optional) +
-  RPC::XML::double->new(100.99),           # Betrag (Achtung - Punkt statt Komma!) +
-  RPC::XML::string->new(""),               # Termin im Format dd.mm.yyyy (optional) +
-  RPC::XML::string->new("05"             # Einzugsermaechtigung +
-); +
-my $resp $cli->send_request('hibiscus.xmlrpc.lastschrift.create',@params);+
  
-die("Keine Antwort vom Server erhalten") unless ($resp);+  * Konfigurationsdatei: [[support:backup#benutzerverzeichnis|.jameica]]/cfg/de.willuhn.jameica.hbci.xmlrpc.Plugin.properties 
 +  * Name des Parameters: xmlrpc.result.limit=<Wert> 
 +  * Default-Wert: 10000
  
-if ($resp =~ /ex:nil/i) +Einige XML-RPC-Funktionen liefern Rückgabe-Werte in Listenform (z.Bsp. [[develop:xmlrpc:umsatz#liste_der_umsaetze_ermitteln|Liste der Umsätze]][[develop:xmlrpc:konto#liste_der_konten_ermitteln|Liste der Konten]] oder [[develop:xmlrpc:einzelauftrag#liste_der_auftraege_ermitteln|Liste der Aufträge]]). Abhängig von der Anzahl der Zeilen können diese Listen bei der Erstellung sehr viel Speicher verbrauchen. Mit dem Parameter kann die maximale Anzahl von zurückzuliefernden Zeilen beschränkt werden.
-+
-  Auftrag erfolgreich angelegtwenn NULL (= "ex:nil" in XML-RPC) +
-  zurueckgeliefert wurde. +
-  print "Auftrag erfolgreich angelegt\n"; +
-+
-else { +
-  print ref($resp)."\n"; +
-  die($resp->value); +
-+
-</code> +
-==== Beispiel-Code PHP ====+
  
-Das folgende Beispiel ermittelt die Liste der Konten aus Hibiscus. Sie benötigen hierzu das PHP-Modul [[http://phpxmlrpc.sourceforge.net/|XML-RPC]]. Ersetzen Sie die Werte in spitzen Klammern (z.Bsp. “<Master-Passwort>”) gegen die von Ihnen genutzten Werte. 
  
-<code php> +==== NULL-Support aktivieren/deaktivieren ====
-include("lib/xmlrpc.inc"); +
-$client new xmlrpc_client("https://admin:<Master-Passwort>@<Servername>:8080/xmlrpc/"); +
-$client->setDebug(0); // alternativ auch "1" oder "2"+
  
-// Wenn im folgenden Parameter "1" steht, müssen Sie vorher das SSL-Zertifikat aus +  * Konfigurationsdatei: [[support:backup#benutzerverzeichnis|.jameica]]/cfg/de.willuhn.jameica.hbci.xmlrpc.Plugin.properties 
-// Jameica exportieren (Datei->Einstellungen->Zertifikate), es anschliessend mit +  * Name des Parameters: xmlrpc.supports.null=<true|false> 
-// "openssl x509 -inform DES -in <datei>.crt -out outcert.pem -text" konvertieren und dann +  * Default-Wert: true
-// an "/usr/share/curl/curl-ca-bundle.crt" anhängen (Curl wird von PHP intern für +
-// HTTP-Kommunikation verwendet) +
-// Verwenden Sie "0", wenn der Hostname des Server-Zertifikats (Common-Name, CN) nicht geprüft werden soll+
-$client->setSSLVerifyHost(1);+
  
-// Aktiviert/deaktiviert die Prüfung des Server-Zertifikates. +Der XML-RPC-Standard unterstützt eigentlich keinen [[http://de.wikipedia.org/wiki/XML-RPC#Null-Datentyp|NULL-Datentyp]]. Es existiert jedoch eine [[http://ontosys.com/xml-rpc/extensions.php|Protokoll-Erweiterung]], die NULL-Werte in Form des Elementes "<nil/>" bzw. "<ex:nil/>" zulässt. Die [[http://ws.apache.org/xmlrpc/types.html|Apache-Implementierung]] unterstützt dies beispielsweiseDa NULL-/NUL- bzw. NIL-Werte in verschiedenen Programmiersprachen jedoch Probleme verursachen können, kann das Verhalten des Plugins "hibiscus.xmlrpc" mit diesem Parameter beeinflusst werden. 
-$client->setSSLVerifyPeer(1);+
  
-$msg = new xmlrpcmsg("hibiscus.xmlrpc.konto.list"); +Einige Funktionen des Plugins (insbFunktionen zum Erstellen neuer Adressen oder Aufträge) liefern per Default im Erfolgsfall NULL zurück und im Fehlerfall einen String mit dem FehlertextFalls jedoch die ID des erstellten Datensatzes benötigt wird oder die verwendete Programmiersprache auf Client-Seite keine NULL-Werte unterstützt, kann in die o.g. Datei eine Zeile "xmlrpc.supports.null=false" eingetragen werden. Die betreffenden Funktionen ändern dabei ihr Verhalten. Im Erfolgsfall liefern Sie die ID des erstellten/geänderten/gelöschten Datensatzes zurück. Im Fehlerfall werfen sie eine Exception (Fault).
-$response $client->send($msg);+
  
-if (!response) +^ Parameter-Wert             ^ Verhalten im Erfolgsfall ^ Verhalten im Fehlerfall ^ 
-+| xmlrpc.supports.null=true  | return NULL              | return Fehlertext       | 
-  print("Keine Antwort vom Server erhalten\n"); +| xmlrpc.supports.null=false | return ID                | throws Exception        |
-  exit(1); +
-+
-if ($response->faultCode()) +
-+
-  print("FehlerCode: ".$response->faultCode()." ".$response->faultString()."\n"); +
-  exit(1); +
-}+
  
-$value = $response->value(); 
-$konten = $value->scalarval(); 
  
-while ($konto = current($konten)) 
-{ 
-  print($konto->scalarval()."\n"); 
-  next($konten); 
-} 
-</code> 


Impressum | Datenschutz
develop/xmlrpc.txt · Zuletzt geändert: d.m.Y H:i von mathisdt