AqBanking
Ziel
Linux-basierter REST-Server-Dienst. Wrapper für grundlegende "AqBanking Rev. 3.x" Funktionen.
- Umsätze abrufen (./UMSATZ)
- Sammel-Lastschriften durchführen (./LASTSCHRIFT)
- OPTIONAL: (Termin-)Überweisungen durchführen (./UEBERWEISUNG)
Die Buchführung des OrgaMon kann "externe" Konten via Webserices (vorzugsweise REST) integrieren. Dadurch werden Giro-Konto-Buchungen direkt im OrgaMon sichtbar. Systematischer Aufbau des Server-Dienstes.
notwendige Implementierungen
- aqbd - der aqbanking dämon. Muss notwendigerweise als Dämon programmiert werden da z.B. das Mehrstufige TAN Verfahren mehrere REST-Zyklen benötigt und die Verbindung zur bank dazwischen nicht unterbrochen werden darf, insbesondere beim iTAN Verfahren.
- aqbc - das aqbanking command line interface. Kommuniziert mit aqbd via DBUS. aqbc reicht nur Anfragen zu neuen oder laufenden Jobs an den dämon weiter.
- ./aqbanking/ - der RESTful webservice. wird in PHP programmiert und ruf im Wesentlichen das Programm aqbc.
DBUS
http://www.ibm.com/developerworks/linux/library/l-dbus.html
Meilensteine
- Linux-Anwendungsebene: QBankingManager installieren (Erfolg: 21.02.2008)
- ein Giro-Konto abfragen um zu sehen, ob das Teil funktioniert (Erfolg: 21.02.2008)
- Transaktion "Konto-Umsatz-Abfrage" ausprobieren! (Erfolg: 21.02.2008)
- Transaktion "Sammel-Lastschrift" (DTA) ausprobieren! (Geht nicht! Nur Einzeln)
- Linux-Programmierebene: "aqbanking 3" versuchen zu compilieren (Erfolg: 19.02.2008)
- Mini-Programm Konsolen-Programm erstellen das z.B. die Kontenliste auf den Schirm bringt (Erfolg: 22.02.2008)
- AH_Job_GetBalance ("10504104.66061724") : double (aufgegeben, wir können das ergebnis nicht parsen)
- AH_Job_GetTransactions ("10504104.66061724","20.02.2008") : (Erfolg: 28.02.2008)
- AH_Job_MultiDebitNode_new (Achtung schwierig: "Multi-Job" + "TAN" notwendig + DTAUS Importer verwenden!)
AH_BANK_FLAGS_PREFER_SINGLE_TRANSFER 0x00000001 : Bedeutung unklar!
AH_BANK_FLAGS_PREFER_SINGLE_DEBITNOTE 0x00000002 : Ist default, müssen wir aber ausmachen, SingleDebinote gibt es nicht bei VoBa! - Re-Enginierung der techniken zu 2+3 anhand der Quelltexte "QBankingManager" oder altes "aqbanking-tool"
- REST-Server in PHP verwirklichen, ruft das neue cmd-tool
- REST - Mappings definieren auf ein nun fertiges "aqbc"-Programm das in C programmiert ist.
- Integration in den OrgaMon
- Grosse Kick-Off-Party für DDBAC
Verwendung von DDBAC, DataDesign
funktioniert seit 2002, wird aber wegen der Lizenzbestimmungen von DataDesign nur in der Entwicklerversion als Machbarkeitsdemonstration verwendet.
Verwendung von Aqbanking 3
bisherige Implementierungen
leider basiert die Implementierung auf "aqbanking 2" das nicht weiterentwickelt wird. In "aqbanking 3" das wir verwenden wollen ist das Kommandozeilen-Tool "aqbanking-tool" nicht mehr vorhanden.
aktuelle Implementierung
- aqbanking.3.2.1
- gwen.3.1.1
WARNING: pre pre Alpha (Hardcoded PIN for ex.)
http://orgamon.org/abtest.c.txt
REST-Implementierung
Umsatz
Anfrage:
./UMSATZ/66061724/10504104/2008-02-28?f=text
Antwort:
- Mapping csv<->Aqbanking
// Zuordnungen, die in kommender aqbanking-Version beinhaltet sind ?? -> date (BuchungsDatum ) ?? -> transactionType (Beispiel: "NSTO","NMSC","NCHK") NSTO Überweisung NMSC Einzug NCHK Scheck ?? -> valutaDateRaw (Beispiel: 200208, also 20.02.2008) // Zuordnungen gefunden remoteBankCode remoteAccountNumber remoteName valutaDate.date value.value value.currency textKey transactionText primanota purpose
Sammellastschrift
Anfrage:
./LASTSCHRIFT/~BLZ~/~Konto~
Antwort:
- die Antwort ist aus Ablaufgründen ein html-Formular:
DTA-Datei [___________________________] (Browse)
34. TAN [______]
(Ausführen)
- iTAN: Ist das iTAN Verfahren gewählt, so muss vom Server vor Anzeige der Antwort zunächst die Index-Nummer der iTAN abgefragt werden
- DTA: Dem Dienst muss die Sammel-Lastschrift Datei übertragen werden. Dabei wird auf das bewährte DTA-Format gesetzt
- "POST" (=Button "Ausführen") schickt die Daten nun zum Server, dann erst erfolgt die eigentliche Arbeit
Termin-Überweisung
-- noch kein Bedarf --
Nebenprojekt von Andreas
Versuch mit aqbanking 2.3
http://ftp.gwdg.de/pub/linux/packman/suse/10.3/i586/
Anleitung zum Nachvollziehen des Projektes
aqbanking compilieren
- gwen dingens ...
- aqbanking dingens ...
./configure --disable-chipcard-client --with-frontends=""
Vermischtes
Kleine Anleitung für entwickler entdeckt, leider offensichtlich nicht ganz aktuell
http://www.aquamaniac.de/apidoc/aqbanking/G_APP_INTRO.html
Sieht fast so aus, ls sei die Funktion AB_Banking_EnqueueJob() in der neuen Version nichtmehr vorhanden!! Anscheinen wurde sie von der JobList2 Verdrängt (??) http://www.aquamaniac.de/apidoc/aqbanking/listdoc_8h.html#afb08a006da8e45b8aaec3d1b8379ca9