« Review Meeting März 2007 Agenda April 2007 »

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:

  1. Download der Komponenten:
    1. Jameica 1.5 in der nightly Build
    2. Hibiscus 1.7 in der nightly Build
    3. XML-RPC für Jameica (aus diesem Blogeintrag)
    4. 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.

  2. Installation von Jameica
  3. Installation vom Hibiscus Plugin (Deckt sich z.T. mit 2.)
  4. Einrichtung der Software inkl. Bankkonten (Selbsterklärend, falls nicht Blick ins Homebanking Forum werfen oder mit genauer HBCI Fehlermeldungen eigene Bank kontaktieren.)
  5. Installation XML-RPC Plugin Jameica (vergleichbar mit Hibiscus Plugin)
  6. Installation XML-RPC Plugin Hibiscus (s.o.)
  7. Einrichtung von XML-RPC innerhalb der Einstellungen von Jameica (siehe Präsentation)
  8. 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.

Weiterführende Links

4 Reaktionen zu “Onlinebanking mit PHP”

  1. PHPUGFFM » Blog Archiv » Review Meeting März 2007

    [...] Slot 1) Tom: Onlinebanking mit PHP [...]

  2. MP:Schorsch

    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.

  3. Tom

    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.

  4. Tutorial: Auf Hibiscus via XML-RPC zugreifen

    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

Einen Kommentar schreiben

5.0 Jahre Badge