Allgemein: PHP und HBCI - Teil 1
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.
Inhaltsverzeichnis
- 1 Vorwort
- 1.1 Übersicht Tutorial
- 1.2 Geeignete Bibliotheken
- 1.2.1 Hibiscus
- 1.2.2 AqBanking
- 1.3 Entscheidungsphase
- 1.4 Aufsetzen der virtuellen Maschine
- 1.4.1 Download der VM
- 1.4.2 Absichern der VM
- 1.4.2.1 Entfernen nicht benötiger Software
- 1.4.2.1.1 Apache
- 1.4.2.1.2 MySQL
- 1.4.2.1.3 FTP
- 1.4.2.1.4 eMail
- 1.4.2.1.5 Abschluss
- 1.4.2.2 Ändern der Zugangsdaten
- 1.4.3 Installation AqBanking
- 1.4.4 Installation X
- 2 Teil 2
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
- Teil - 1 Vorwort / Einrichtung VM
- Teil - 2 Einrichtung der Banking-Zugänge
- Teil - 3 PHP-Klasse zur Abfrage der Daten und Steuerung des Webservices
- Teil - 4 Put together - Shopware und HBCI
- Teil - 5 Erweiterungsmöglichkeiten
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]
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.
Artikel bewerten
Artikel kommentieren
Weitere interessante Artikel:
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]
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]
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
Preise inkl. gesetzlicher
MwSt. zzgl. Versandkosten*
Preise inkl. gesetzlicher
MwSt. +
Versandkosten*
Kommentare: (0)
Dieser Artikel wurde noch nicht kommentiert!