Allgemein: PHP und HBCI - Teil 1

Shopware Labs

Der Bereich Shopware Labs ist die Plattform für alle Entwickler. Hier findet man technische Dokumentationen und zahlreiche Tipps und Tricks rund um das Thema Programmieren. In dieser Rubrik stellen außerdem die Entwickler der shopware AG neue und experimentelle Lösungsansätze vor. Neue Funktionen, die in dieser Rubrik bereitgestellt werden, sind teilweise auch für zukünftige Releases geplant. Die Funktionen können dann ohne Programmierkenntnisse zukünftig direkt im Shopware Backend konfiguriert werden oder werden über Plugins bereitgestellt. Informationen über neue, geplante Funktionen finden Sie in unserer Roadmap.

Bitte beachten Sie, dass die hier bereitgestellten Lösungsansätze nicht offiziell supportet werden und nur eingebaut werden sollten, sofern Sie über das entsprechende, technische Wissen verfügen.

0 Kommentare

Vorwort

In unserem letzten Scrum-Planungstreffen ging es unter anderem um die Optimierung unserer Zahlungsabwicklung. Bislang werden zum Beispiel eingehende Zahlungen manuell erfasst, genauso wie jede Überweisung, Lastschrift etc. per "Proficash" und entsprechenden HBCI-Zugängen durchgeführt wird. Aktuelle Kontostände holt sich der Vorstand ebenfalls aus Proficash. Unser Ziel war nun, die Bankkonten besser in unsere Workflows zu integrieren bzw. mit unserer bestehenden ERP-Software (Eigenentwicklung) zu verknüpfen - so sollte es zum Beispiel möglich sein, Zahlungseingänge automatisch den entsprechenden Rechnungsbelegen zuzuordnen und dem Vorstand über das so genannte "Dashboard" jederzeit einen Überblick über die Liqudität des Unternehmens zu geben.

Da unsere gesamte Unternehmenssoftware auf PHP basiert, musste also eine Schnittstelle zwischen unseren Bankkonten und unserer Auftragsverwaltung geschaffen werden.

Da die Kontobewegungen und Umsätze sicher übertragen werden müssen, mussten wir uns entsprechend am HBCI-Standard orientieren. Ein Abgreifen der Daten via CURL und direktem Zugriff auf die Online-Banking-Seiten der Banken war also keine Option.

Zusammenfassend haben wir folgende "Features" für die Aufgabe definiert:

  • Sichere Übertragung aller Daten via HBCI
  • Abfragen von Kontoständen und Transaktionen
  • Verwendung der bestehenden HBCI-Zugänge
  • Prozesse auf dedizierte virtuelle Maschine in unserem ESX-Cluster auslagern
  • Absichern der VM - keine eingehenden Protokolle - kein direkter Zugriff
  • Die Daten sollen stündlich abgerufen und via Webservice in unser ERP übertragen werden
  • Im ERP sollen alle relevanten Daten verschlüsselt gespeichert werden, so dass beispielsweise nur dazu befugte Personen Kontostände einsehen können
  • Perspektivisch sollen auch Überweisungen und Lastschrift-Einzügen automatisiert über die HBCI-VM durchgeführt werden
  • Authentifizierung über das Pin/Tan Verfahren

Übersicht Tutorial

Geeignete Bibliotheken

Es gibt im wesentlichen 2 Open-Source Bibliotheken, die sich dem Thema HBCI widmen. Zum einen gibt es die freie Java-Implementierung Hibiscus, zum anderen "AqBanking", dass direkt in C implementiert ist und bei vielen Linux Online-Banking Programmen zum Einsatz kommt (z.B. GnuCash).

Beide haben Vor- und Nachteile, werden kontinuirlich weiterentwickelt und eignen sich gut für die Implementierung eigener HBCI-Lösungen.

Hier ein Überblick der beiden Bibliotheken:

Hibiscus

http://www.willuhn.de/products/hibiscus/

Überblick:

  • + XML/RPC Schnittstelle verfügbar
  • + Einfache Konfiguration
  • - Da Java-Lösung umfangreichere Installation, die mehr Speicherplatz und RAM benötigt

AqBanking

http://www.aquamaniac.de/sites/aqbanking/index.php

Überblick:

  • + Performant und schmales Installationspackage da in Native C implementiert
  • + Steuerung via Shell möglich (CLI)
  • + Einfachere Absicherung der Installation möglich
  • - Konfiguration eher umständlich

Entscheidungsphase

Im Grunde sind beide Lösungen GUT und bieten ein ähnliches Feature-Set. Vorteile bei Hibiscus sind insbesondere die XML/RPC Schnittstelle und die Speicherung der Daten in einer MySQL-Datenbank - so kann schnell eine Interoperabilität zu PHP hergestellt werden. Da wir die Daten aber aus Sicherheitsgründen nicht direkt aus der VM abrufen wollen und die Maschine keine eingehenden Verbindungen erlaubt - haben wir uns für Aqbanking entschieden. Hier gibt es mit "Aqbanking-Cli" ein leistungsfähiges Kommandozeilen-Tool, welches wir mit PHP bedienen können.

Ein weiterer Vorteil von AqBanking ist die native Implementierung in C. So muss auf dem Server kein Java installiert werden und das Installationspackage als solches ist deutlich kleiner, als bei Hibiscus. Da die HBCI-VM nur eine "Minimal-Installation" von Linux und möglichst wenig zusätzliche Softwarre beeinhalten soll, haben wir uns für AqBanking entschieden.

Aufsetzen der virtuellen Maschine

Wir verwalten unsere Maschinen in einem ESX-Cluster - für den Hausgebrauch reicht aber auch der VMWare-Player oder eine andere, kostenlose Virtualisierungslösung.

Als Betriebssystem verwenden wir die aktuelle Version von Debian Squeezy (Zu diesem Zeitpunkt noch nicht final), alternativ können Sie aber auch ein Debian-Lenny oder Ubuntu verwenden. Viele Schritte sind gleich oder sogar identisch.

Als Ausgangsbasis für dieses Tutorial verwenden wir das Shopware 3.5.3 VMWare Image, welches man in unserem Download-Bereich kostenlos herunterladen kann.

Diese ist allerdings nur für Test- und Evaluierungszwecke geeignet - falls Sie einen Produktiveinsatz der HBCI-Schnittstelle planen, sollten Sie besser eine manuelle Minimal-Installation Ihrer Linux-Distribution durchführen.

Download der VM

Laden Sie das aktuelle Image der Shopware VM unter http://wiki.shopware.de/Shopware-3.5-VMware-Image_detail_562.html herunter.

Installieren Sie den VMWare-Player oder eine andere geeignete Software um die VM auszuführen.

Absichern der VM

Hinweis: Das ist nur als "Abriss" der Absicherung zu verstehen - natürlich muss man bei Produktivumgebungen noch mehr Komponenten berücksichtigen und das Image weitergehend konfigurieren

Entfernen nicht benötiger Software

Apache

 
apt-get update [Enter]
apt-get remove apache2 [Enter]
apt-get remove apache2-mpm-prefork [Enter]
apt-get remove apache2-common [Enter]
apt-get remove apache2-utils [Enter]
apt-get autoremove [Enter]
 

MySQL

 
apt-get remove --purge mysql-server* [Enter]
apt-get remove --purge mysql-client* [Enter]
 

FTP

 
apt-get remove proftpd [Enter]
 

eMail

 
apt-get remove sendmail [Enter]
 

Abschluss

 
apt-get autoremove [Enter]
apt-get upgrade [Enter]
 

Diese Maßnahmen dienen nur der Basis-Absicherung - verwenden Sie für alle realen Testzwecke eine eigene Minimal-Installation, die Sie zusätzlich absichern

Ändern der Zugangsdaten

Zunächst ändern wir die Zugangsdaten für den Benutzer "root".

 
passwd [Enter]
 

Geben Sie hier ihr neues Passwort ein.

Anschließend ändern wir das Passwort für den Systembenutzer "notroot".

 
passwd notroot [Enter]
 

Installation AqBanking

 
apt-get install aqbanking-tools [Enter]
 

Installation X

Zur Konfiguration installieren wir temporär eine grafische Oberfläche in der VM. Diese können und sollten wir später wieder deinstallieren.

Die Konfiguration als solches kann man auch direkt auf der Shell durchführen.

 
apt-get install xorg [Enter]
apt-get install gnome [Enter]
 

Teil 2

Nachdem wir nun die Basis-Installation der benötigten Software-Komponenten durchgeführt haben, werden wir uns im zweiten Teil dieser Tutorial-Reihe der Konfiguration von AqBanking widmen.

Weiter zu Teil 2

Artikel bewerten

Waren diese Informationen hilfreich? Ja Nein


Kommentare: (0)

Dieser Artikel wurde noch nicht kommentiert!

Artikel kommentieren


Die mit einem * markierten Felder sind Pflichtfelder.

Weitere interessante Artikel:

Icon Übersicht Backend

Allgemein Hier eine Übersicht der im Shopware Backend verfügbaren Icons. Diese Icons können für eigene Plugins etc. verwendet werden! Ordner: img/default/icons ''' CSS-File: icons.css ''' [img|0|5] Ordner:... [weiterlesen]

Shopware Kickstarter Plugin

Allgemein Mit dem Shopware Kickstarter Plugin erstellen Sie das Grundgerüst für Ihre Plugins in wenigen Minuten und komplett über eine komfortable Oberfläche. Alle Plugin-Komponenten können über die Oberfläche definiert... [weiterlesen]

 

Minor-Update 3.5.1 auf 3.5.2

Veraltet Verwenden Sie das aktuelle Update-Script auf Version '''3.5.3''' Link: http://wiki.shopware.de/Update-3.5.x-auf-3.5.3_detail_579_477.html Vorab '''Release-Datum: 29.10.2010 17:30 Uhr'''... [weiterlesen]

Bestell-Nr.: SW1515

Lieferzeit ca. 5 Tage

€ 1,00

Preise inkl. gesetzlicher
MwSt. zzgl. Versandkosten*

€ 1,00

Preise inkl. gesetzlicher
MwSt. + Versandkosten*