Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Beispiel-Code Java
Das folgende Beispiel ermittelt die Liste der Konten aus Hibiscus. Sie benötigen hierzu das Modul Apache XML-RPC. Ersetzen Sie die Werte in spitzen Klammern (z.Bsp. “<Master-Passwort>”) gegen die von Ihnen genutzten Werte.
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); } }
Beispiel-Code Perl
Das folgende Beispiel ermittelt die Liste der Konten aus Hibiscus. Sie benötigen hierzu das CPAN-Modul RPC::XML. Ersetzen Sie die Werte in spitzen Klammern (z.Bsp. „<Master-Passwort>“) gegen die von Ihnen genutzten Werte.
#!/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); die("Fehler: ".$resp) unless (ref($resp)); # kein korrektes Response-Objekt my $konten = $resp->value; for(@{$konten}) { print $_."\n"; }
Achtung: $resp→value
liefert nicht das Array selbst sondern eine Referenz darauf.
Dieses Beispiel erstellt eine neue Lastschrift:
#!/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 @params = ( 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); if ($resp =~ /ex:nil/i) { # Auftrag erfolgreich angelegt, wenn NULL (= "ex:nil" in XML-RPC) # zurueckgeliefert wurde. print "Auftrag erfolgreich angelegt\n"; } else { print ref($resp)."\n"; die($resp->value); }
Beispiel-Code PHP
Das folgende Beispiel ermittelt die Liste der Konten aus Hibiscus. Sie benötigen hierzu das PHP-Modul XML-RPC. Ersetzen Sie die Werte in spitzen Klammern (z.Bsp. “<Master-Passwort>”) gegen die von Ihnen genutzten Werte.
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 // Jameica exportieren (Datei->Einstellungen->Zertifikate), es anschliessend mit // "openssl x509 -inform DES -in <datei>.crt -out outcert.pem -text" konvertieren und dann // 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. $client->setSSLVerifyPeer(1); $msg = new xmlrpcmsg("hibiscus.xmlrpc.konto.list"); $response = $client->send($msg); if (!response) { print("Keine Antwort vom Server erhalten\n"); exit(1); } if ($response->faultCode()) { print("Fehler. Code: ".$response->faultCode()." ".$response->faultString()."\n"); exit(1); } $value = $response->value(); $konten = $value->scalarval(); while ($konto = current($konten)) { print($konto->scalarval()."\n"); next($konten); }
Impressum | Datenschutz