AqBanking: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
Zeile 189: | Zeile 189: | ||
== Anleitung zum Nachvollziehen des Projektes == | == Anleitung zum Nachvollziehen des Projektes == | ||
* gwen | * gwen-Lib installieren | ||
tar xzfz gwenhywfar-3.1.1.tar.gz | tar xzfz gwenhywfar-3.1.1.tar.gz | ||
Zeile 197: | Zeile 197: | ||
make install | make install | ||
* aqbanking | * aqbanking-Lib installieren | ||
tar xzfz aqbanking-3.2.1.tar.gz | tar xzfz aqbanking-3.2.1.tar.gz | ||
cd aqbanking-3.2.1 | cd aqbanking-3.2.1 | ||
Im Moment müssen noch 2 Dateien ersetzt werden: | Im Moment müssen noch 2 Dateien ersetzt werden: | ||
Zeile 210: | Zeile 206: | ||
src/plugins/backends/aqhbci/plugin/joblayer/jobqueue.c http://orgamon.de/aqbanking/jobqueue.c<br> | src/plugins/backends/aqhbci/plugin/joblayer/jobqueue.c http://orgamon.de/aqbanking/jobqueue.c<br> | ||
src/plugins/parsers/swift/swift940.c http://orgamon.de/aqbanking/swift940.c<br> | src/plugins/parsers/swift/swift940.c http://orgamon.de/aqbanking/swift940.c<br> | ||
./configure --disable-tutorials --disable-chipcard-client --with-frontends="" --with-backends="aqhbci" | |||
make | |||
make install | |||
== Konto-Deklaration == | == Konto-Deklaration == |
Version vom 12. März 2008, 23:44 Uhr
dieses Tool basiert auf der Funktionalität der Bibliothek "AqBanking" 3.2.2 von Martin Preuss http://www.aquamaniac.de/ die vor Verwendung installiert sein muss.
aqbc ist ein für Linux verfügbares Commando-Zeilen-Tool, das es ermöglicht ...
- Umsätze und Salden eines Kontos via HBCI auszulesen. Als Ausgabe erzeugt aqbc CSV-Dateien, die leicht weiterverarbeitet werden können.
- Laschriften, die als CSV-Datei vorliegen, via HBCI an die Bank zu übertragen und durchzuführen.
aqbc liegt im C-Quelltext [1] (GPL 3.0 Lizenz) vor.
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. Die Kommunikation mit der Aussenwelt erledigt der Dämon über das Dateisystem. Ein PHP-Script legt Konto-Anfragen in Mini "Job"-Dateien im Verzeichnis /srv/aqbanking ab.
Meilensteine
Erreichte
- 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 ("~kto~.~blz~") : double (aufgegeben, wir können das ergebnis nicht parsen)
- AH_Job_GetTransactions ("~kto~.~blz~","20.02.2008") : (Erfolg: 28.02.2008)
- AH_Job_MultiDebitNode_new (Achtung schwierig: "Multi-Job" + "TAN" notwendig + DTAUS Importer verwenden!) (07.03.2008)
- Erfolgreiche erzeugung eines DebitNote-Auftrags aus Kommandozeilenparametern und csv-Datei (07.03.2008)
- Erfolgreiche auftragsübertragung bis zur TAN-Abfrage über den Passwort-Callback!!(05.03.2008)
- Erfolgreiche Lastschriften mit einer einzelnen, sowie mit 2 Lastschriften in einer Sammellastchrift. (07.03.2008)
Offen
- Umlaute eingangsseitig / Ausgangsseitig testen
- aqbd nun als richtiges / eigentständiges Linux Projekt beginnen und Know-How aus abtest übernehmen (Info: http://www.openismus.com/documents/linux/automake/automake.shtml)
- den d-bus Server-Code in aqbd übernehmen
- REST-Server in PHP verwirklichen, ruft das cmd-tool "dbus-send"
- 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
Projektstatus
Das Projekt befinder sich noch in der Entwicklungsphase
- Erfolgreches Abrufen der Kontostände und ablegen in eine csv-Datei
- Der Programmteil Umsatzabfrage ist im Beta-Stadium fertiggestellt!!
Bedienung: -U oder -u für umsatzabfrage Danach kommen die Parameter BLZ KTO PIN [Datum] ohne - oder / oder ähnliches, nur durch whitespace getrennt
- Erfolgreiche Lastschriften
- Lastschriftverfahren für ein- oder mehrere Datensätze erfolgreich getestet!
- Der Programmteil Lastschrift ist im Beta-Stadium fertiggestellt!!
Bedienung -L oder -l für Lastschrift Danach kommen die Paramter BLZ KTO PIN "Pfad der CSV-Datei" ebenfalls ohne sonderzeichen, nur durch whitespace getrennt
- Erfolgreches Abrufen der Salden und ablegen in eine csv-Datei
- Der Programmteil Saldo ist im Beta-Stadium fertiggestellt!!
Bedienung: -S oder -s für Saldo Danach kommen die Parameter BLZ KTO PIN ohne - oder / oder ähnliches, nur durch whitespace getrennt
- Programm Komplett im Alpha-Stadium
- "Verpacken" in ein eigenes Projekt und abschluss der Entwicklungsphase
- Ausgedehntere Tests
Von DBUS auf eigene implementierung umgestiegen, schlicht und einfach wegen der enormen, und für unsere zwecke zu hohen, komplexizität der DBUS-Bibliothek. Jetzt werden zwischen den Verschiedenen Programmebenen Daten ausgetauscht, indem files auf der Festplatte abgelegt werden.
Job-Files Wird abtest mit -d als Parameter gestartet befindet sich die Anwendung im "Deamon-Mode". Aufträge werden mit in sogenannten JobFiles in das jobs-verzeichnis geschrieben, und von abtest gelesen. Der Inhalt der Files ist identisch mit den in der Kommandozeile zu übergebenden Parameter. Sind die Jobs Abgearbeitet werden sie je nach erfolg zusammen mit den Ergebnisdaten im csv- Format in den results ordner, oder in den error-ordner verschoben. Uber jede Aktion werden log-Dateien geschrieben.
Tan-Übergabe Die Tan wird ab Sommer 2008 im iTan-verfahren abgefragt, und ist damit nichtmehr frei wählbar. Die Aufforderung lautet dann in etwa: "Bitte die 17.TAN eingeben: ". Damit muss während eines Lastschriftverfahrens die Gegenseite gerufen werden. Dafür wird die Anforderung der Bank in einem File Gespeichert, und muss innerhalb von 20sec mit einem tanFile "beantwortet" werden.
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
- Homepage: http://www.aquamaniac.de/sites/aqbanking/index.php
- Developement-Snapshot-aqbanking: http://devel.aqbanking.de/viewsvn/aqbanking
- Mailing-List: http://sourceforge.net/mailarchive/forum.php?forum_name=aqbanking-devel
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.
REST-Implementierung
Umsatz
Anfrage:
./UMSATZ/~BLZ~/~KONTO#~/2008-02-28?f=text
Antwort:
- Mapping csv<->Aqbanking
// Zuordnungen gefunden Buchungsdatum<->date Typ<->transactionKey (Beispiel: "NSTO","NMSC","NCHK") vonBLZ<->remoteBankCode vonKonto<->remoteAccountNumber vonName1..2<->remoteName ValutaDatum<->valutaDate Betrag<->value.value Waehrung<->value.currency VorgangID<->textKey VorgangText<->transactionText Primanota<->primanota Verwendungszweck1..7<->purpose
Sammellastschrift
Anfrage:
POST ./LASTSCHRIFT/~BLZ~/~Konto~
mit einem http-Upload der DTA-Datei!
Antwort:
- die Antwort ist aus Ablaufgründen ein html-Formular:
Nun bitte die 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
- gwen-Lib installieren
tar xzfz gwenhywfar-3.1.1.tar.gz cd gwenhywfar-3.1.1 ./configure make make install
- aqbanking-Lib installieren
tar xzfz aqbanking-3.2.1.tar.gz cd aqbanking-3.2.1
Im Moment müssen noch 2 Dateien ersetzt werden:
src/plugins/backends/aqhbci/plugin/joblayer/jobqueue.c http://orgamon.de/aqbanking/jobqueue.c
src/plugins/parsers/swift/swift940.c http://orgamon.de/aqbanking/swift940.c
./configure --disable-tutorials --disable-chipcard-client --with-frontends="" --with-backends="aqhbci" make make install
Konto-Deklaration
Einmalig muss ein Kontozugang eingerichtet werden:
Ermittlung des HBCI Servers
Zu der gegebenen BLZ muss die Internet-Adresse eines HBCI-Servers ermittelt werden: Die kann online erfolgen über:
http://www.hbci-zka.de/institute/institut_auswahl.htm
Anlage des Kontos
# BLZ=$1 KONTO=$2
aq
settings.conf anpassen
das Flag "PreferSingleDebiNotes" rausmachen
prefersingletransfer 0x00000001 : Einzelüberwisung bevorzugt, für uns unwichtig
prefersingledebitnote 0x00000002 : Ist default, wird einfach aus der settings.conf entfernt, SingleDebinote gibt es nicht bei VoBa!
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