Moin, On Donnerstag, 7. August 2008, Stefan Schimanski wrote: [...] > PIN/TAN-Verfahren brav 3 solche an der Zahl: SmartTan, iTan und > mobileTAN, um dann beim Abruf der Buchungen zu melden, dass das > selektierte Verfahren SmartTan nicht erlaubt ist. Vielleicht sollten > Banken nur Kunden mit hellseherischen Fähigkeiten akzeptieren. Dann > klappt das auch mit dem HBCI :-/ [...]
Es wuerde ja schon reichen, wenn sich die Server auf allgemein verwendete Fehlercodes einigen koennten. Manche Bankserver antworten entweder gar nicht, wenn denen das eingestellte Verfahren nicht passt, manche antworten mit Fehlercodes, die eigentlich auch fuer andere Dinge verwendet werden. Man stelle sich mal folgendes, nicht wirklich realitaetsferne Scenario vor: Einrichtung Pin/TAN ============ Hierfuer sind ca 2 Dinge relevant: 1) die unterstuetzte HBCI/FinTS-Protokollversion (2.20 oder 3.00) 2) die fuer den Benutzer zugelassenen Zweischrittverfahren. Schon 1) ist gar nicht so einfach; es gibt keine allgemein gueltigen Codes fuer den Fall, dass die vom Programm gewaehlte Version nicht vom Server unterstuetzt wird. Jeder Server gibt hier etwas anderes zurueck. Zwar gibt es spezielle BPD, in denen die Bank die unterstuetzten Versionen zurueckliefert, aber die bekomme ich ja erst, wenn ich mich erfolgreich mit der Bank verbunden habe ->erstes Ei-Henne-Problem 2) Die Banken melden eigentlich als Code 3920 zurueck, wenn man sich verbindet. Als Parameter sind hier die Zweischritt-Verfahren enthalten, die fuer den Benutzer zugelassen sind. Da man beim ersten Verbinden ja noch gar nicht wissen kann, *welche* Verfahren die Bank unterstuetzt, muss man im Zweifel erst einmal mit dem Einschritt-Verfahren testen. Wenn die Bank das nicht erlaubt, gibt es einen Dialog-Abbruch, aber ich bekomme vielleicht wenigstens noch das 3920. Nun muss man aber sicherstellen, dass der Grund fuer den Dialog-Abbruch auch wirklich im eingestellten Verfahren zu suchen ist, und nicht beispielsweise in einer falschen Pin. Bei einer falschen Pin gibt es naemlich auch etliche Codes, die die Server so zurueckgeben (obwohl eigentlich auch dafuer Codes vorgesehen sind, aber die verwendet kaum ein Server). Insgesamt: Man muss hier fuer die erste Verbindung viel ausprobieren, d.h. einige Dialog-Versuche unternehmen, und aus den Antworten versuchen herauszufinden, was die Bank meint. Wenn also ein Abbruch kommt, kann das mehrere Gruende haben: 1) die HBCI-Version ist falsch 2) das Ein-/Zweischrittverfahren ist falsch 3) die Pin ist falsch 4) die Benutzerkennung ist falsch Ausgerechnet also bei diesem komplizierten Pin/Tan-Verfahren kommt uns der Bankserver ueberhaupt nicht entgegen; zwar liefern die meisten Server menschen-lesbare Fehlermeldungen, aus denen ein erfahrener User oft sogar den Grund des Abbruches ersehen kann, aber die Anwendung kann hier nicht sicher sein, dass die Ursache eben nicht die falsche Pin oder Benutzerkennung ist. Die Unterschiede sind sehr entscheidend: Wenn die Ursache eine falsche HBCI-Version ist, koennen wir einfach den gleichen Request mit einer anderen Version probieren. Auch so beim falschen Zweischritt-Verfahren. Wenn aber die Pin falsch ist, muessen die wilden Versuche abgebrochen werden und der Benutzer noch einmal darueber nachdenken, was er eingegeben hat. Das macht halt gerade die Pin-Tan-Einrichtung so schwierig, und nicht immer maschinell automatisch moeglich. Bei den echten HBCI-Verfahren ist es hingegen einfach: Hier gibt es keine X verschiedenen Tausendschritt-Verfahren; hier kann ich gefahrlos mehrere HBCI-Versionen durchtesten, bis ich eine gefunden habe, die der Server versteht. Und auch wenn die Pin falsch ist: Die Rueckmeldung bekomme ich schon lokal und praezise, d.h. die Anwendung *weiss*, dass es an der Pin liegt. Gruss Martin -- "Things are only impossible until they're not" Martin Preuss - http://www.aquamaniac.de/ AqBanking - http://www.aqbanking.de/ LibChipcard - http://www.libchipcard.de/ ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Aqbanking-devel mailing list Aqbanking-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/aqbanking-devel