Onlinebanking mit PHP
11. März 2007 von Tom
Bankvorgänge in seine Programme zu integrieren kann viele verschiedene Gründe haben und ist bei vielen Vorgängen sicherlich sinnvoll. Tom Klingenberg zeigt in seinem Vortrag am praktischen Beispiel, wie dies mit Freier Software für Desktop und Serveranwendungen gelöst werden kann.
Slides und Code
Beachten Sie bitte das Datum der Veröffentlichung. Der Beispielcode ist veraltet und es kann zu Fehlermeldungen führen, wenn man ihn mit einer aktuellen Hibiscus Version benutzt. Eine Erläuterung befindet sich hier.
Hibiscus & XML-RPC to the Rescue
Da PHP weder von Haus aus, noch durch eine Erweiterung oder ein PEAR Paket, das für die Kommunikation mit Bankservern nötige HBCI unterstützt musste ein anderer Lösungsansatz her. Dank dem freien Softwareprojekt Jameica/Hibisucs entwickelt von Olaf Willuhn und dem darin, zum Einsatz kommenden hbci4java von Stefan Palme, haben Entwicklerinnen die Möglichkeit auf HBCI Funktionalität zurückzugreifen ohne sich tiefgehend in den Standard einzuarbeiten.
Dies geschieht mittels XML-RPC (Extensible Markup Language Remote Procedure Call) das Hibiscus in den aktuellen nightly Builds experimentel unterstützt. Auf der anderen Seite wird XML-RPC von vielen Programmiersprachen unterstützt, alleine für PHP gibt es mehrere Bibliotheken zur Auswahl. In dem beim Vortrag mitgelieferten Quellcode kommt XML-RPC for PHP zum Einsatz, es kann natürlich auch die Implementierung der Wahl benutzt werden und dies soll auch keine Empfehlung für das eine oder andere Modul sein. Das populäre PEAR-Paket XML_RPC zum Beispiel, die Homepage von XML-RPC for PHP gibt hier noch weitere Quellen und Entscheidungshilfen (in englischer Sprache) an.
Checkliste zum Loslegen
Bevor allerdings XML-RPC im eigenen Code zum Einsatz kommen kann, muss die Gegenstelle bereitgestellt werden. Hierfür wird Jamaica installiert, dann mit dem Hibiscus Plugin ausgestattet und für das Online Banking eingerichtet. Im Anschluss wird jeweils ein XML-RPC Plugin für Jameica und Hibiscus nachgerüstet:
- Download der Komponenten:
- Jameica 1.5 in der nightly Build
- Hibiscus 1.7 in der nightly Build
- XML-RPC für Jameica (aus diesem Blogeintrag)
- XML-RPC für Hibiscus (Adresse wie 1.2.)
Anmerkung: Die Adressen können sich noch ändern da der XML-RPC Teil noch experimentel/beta ist.
- Installation von Jameica
- Installation vom Hibiscus Plugin (Deckt sich z.T. mit 2.)
- Einrichtung der Software inkl. Bankkonten (Selbsterklärend, falls nicht Blick ins Homebanking Forum werfen oder mit genauer HBCI Fehlermeldungen eigene Bank kontaktieren.)
- Installation XML-RPC Plugin Jameica (vergleichbar mit Hibiscus Plugin)
- Installation XML-RPC Plugin Hibiscus (s.o.)
- Einrichtung von XML-RPC innerhalb der Einstellungen von Jameica (siehe Präsentation)
- Fertig!
Hibiscus XML-RPC Funktionen
Die Implementierung in Hibiscus ist aktuell noch experimentel (= gut zum Experimentieren). In einigen Szenarien kann es allerdings vorkommen, das bestimmte Funktionen noch nicht per XML-RPC zur Verfügung stehen. Hier entscheidet sicherlich die Diskussion was nachgerüstet wird, auch freut sich der Autor über Spenden die seine Arbeit für die Allgemeinheit unterstützen.
-
jameica.xmlrpc.echo.echo( string message )*
Gibt den Text wieder zurück (einfache Testfunktion).
-
hibiscus.xmlrpc.konto.create( versch. )
Legt ein neues Konto an.
-
hibiscus.xmlrpc.konto.list( )*
Liefert eine Liste der Konten.
-
hibiscus.xmlrpc.lastschrift.create( versch. )
Legt einen neue Lastschrift an.
-
hibiscus.xmlrpc.lastschrift.list( versch. )
Liefert eine Liste der Lastschriften.
-
hibiscus.xmlrpc.ueberweisung.create( string kontoID, string kto, string blz, string name, string zweck, double betrag)*
Legt einen neue Überweisung an.
-
hibiscus.xmlrpc.ueberweisung.list( )*
Liefert eine Liste der Überweisungen.
Mit * markierte Funktionen finden im Beispiel Hibiscus Onlinebank Anwendung.
PHP Usergroup Frankfurt am Main (PHPUGFFM)

Am 16. März 2007 um 10:45 Uhr
[...] Slot 1) Tom: Onlinebanking mit PHP [...]
Am 23. April 2007 um 02:47 Uhr
Na das schaut ja schon ganz gut aus.
Auf dem Barcamp sagte mir aber jemand das die Banken das HBCI Protokoll unterschiedlich interpretieren? Zumindest in Nuancen.
Am 24. April 2007 um 11:00 Uhr
Ich habe mit HBCI in Hibiscus bisher keinerlei Probleme gehabt. Nutze das seit über einem Jahr und auch für mehrere Banken. Wenn eine Bank ihren Server umstellt und dabei einen Fehler macht (wie die eine oder andere letzthin, haben wohl den gleichen Softwarehersteller
) dann ist es von den Banken zu korrigieren und das wird dann auch gemacht. Das Onlinebanking Forum ist in solchen Fällen ein guter Ort für aktuellste Informationen. Generell macht es ja auch wenig Sinn erst ein Protokoll zu erschaffen und sich dann nicht daran zu halten.
Es soll wohl noch Erweiterungen auf HBCI geben mit denen Du dann noch dein Depot verwalten kannst und da könnte ich mir vorstellen das es dort einige Nuancen gibt. Aber das ist für das normale Onlinebanking weniger von Bedeutung. Vielleicht meinte diese Person das.
Am 6. Dezember 2008 um 21:13 Uhr
Danke für den Artikel .. nach einiger Zeit hab ich jetzt auch diesen Link aufs Hibiscus-Wiki gefunden, der für Einige vielleicht sehr hilfreich ist.
Tutorial: Auf Hibiscus via XML-RPC zugreifen
http://hibiscus.berlios.de/doku.php?id=develop:xmlrpc