AqBanking: Unterschied zwischen den Versionen

Aus OrgaMon Wiki
Zur Navigation springen Zur Suche springen
Keine Bearbeitungszusammenfassung
Zeile 18: Zeile 18:
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.  
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.  


[[Bild:Aqbanking.1.001.png]]
[[Bild:Aqbanking3.png]]


'''notwendige Implementierungen'''
'''notwendige Implementierungen'''

Version vom 10. März 2008, 10:23 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.

  1. Umsätze abrufen (./UMSATZ)
  2. Sammel-Lastschriften durchführen (./LASTSCHRIFT)
  3. 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 dbus-Interface. Ein PHP-Script kann über den Befehl dbus-send Informationen mit dem Dämon austauschen.

mehr Infos zu DBUS

Meilensteine

Erreichte

  1. Linux-Anwendungsebene: QBankingManager installieren (Erfolg: 21.02.2008)
    1. ein Giro-Konto abfragen um zu sehen, ob das Teil funktioniert (Erfolg: 21.02.2008)
    2. Transaktion "Konto-Umsatz-Abfrage" ausprobieren! (Erfolg: 21.02.2008)
    3. Transaktion "Sammel-Lastschrift" (DTA) ausprobieren! (Geht nicht! Nur Einzeln)
  2. Linux-Programmierebene: "aqbanking 3" versuchen zu compilieren (Erfolg: 19.02.2008)
  3. Mini-Programm Konsolen-Programm erstellen das z.B. die Kontenliste auf den Schirm bringt (Erfolg: 22.02.2008)
  4. AH_Job_GetBalance ("~kto~.~blz~") : double (aufgegeben, wir können das ergebnis nicht parsen)
  5. AH_Job_GetTransactions ("~kto~.~blz~","20.02.2008") : (Erfolg: 28.02.2008)
  6. AH_Job_MultiDebitNode_new (Achtung schwierig: "Multi-Job" + "TAN" notwendig + DTAUS Importer verwenden!) (07.03.2008)
  7. Erfolgreiche erzeugung eines DebitNote-Auftrags aus Kommandozeilenparametern und csv-Datei (07.03.2008)
  8. Erfolgreiche auftragsübertragung bis zur TAN-Abfrage über den Passwort-Callback!!(05.03.2008)
  9. Erfolgreiche Lastschriften mit einer einzelnen, sowie mit 2 Lastschriften in einer Sammellastchrift. (07.03.2008)

Offen

  1. Umlaute eingangsseitig / Ausgangsseitig testen
  2. 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)
  3. den d-bus Server-Code in aqbd übernehmen
  4. REST-Server in PHP verwirklichen, ruft das cmd-tool "dbus-send"
  5. REST - Mappings definieren auf ein nun fertiges "aqbc"-Programm das in C programmiert ist.
  6. Integration in den OrgaMon
  7. 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

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.

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

todo: Versionsnummern nich anpassen!

tar xfz gwenhywfar-2.3.1.tar.gz
cd gwenhywfar-2.3.1
./configure
make
make install


tar xfz aqbanking-2.2.0.tar.gz
cd aqbanking-2.2.0
./configure --with-backends="aqhbci" --with-frontends="cbanking"
make
make install


aqbanking compilieren

  1. gwen dingens ...
  2. aqbanking dingens ...

./configure --disable-chipcard-client --with-frontends=""


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