nemiah / phpFinTS

PHP library to communicate with FinTS/HBCI servers
MIT License
132 stars 42 forks source link

Deutsche Bank: Request Failed: Nicht belegt. (9160); Dialoginitialisierung abgebrochen. (9800) #20

Closed Xardas166 closed 5 years ago

Xardas166 commented 5 years ago

Bei der Deutschen Bank bekomme ich folgende Fehlermeldung:

Request Failed: Nicht belegt. (9160); Dialoginitialisierung abgebrochen. (9800)

dieser tritt auf wenn:

$fints->getSEPAAccounts();

ausgeführt wird. Entsprechend der Kompatibilitätsliste sollte die Deutsche Bank unterstützt werden und es da funktionieren.

Es wird das Sample Skript verwendet mit diesen Bankdaten: define('FHP_BANK_URL', 'https://fints.deutsche-bank.de/'); define('FHP_BANK_PORT', 443); define('FHP_BANK_CODE', '61370024');

Jemand eine Idee? Schon einmal vielen lieben Dank für die Hilfe.

nemiah commented 5 years ago

Bei meinen Banken kommt die TAN-Abfrage beim Umsätze abholen nur, wenn ich die Umsätze von mehr als den letzten 90 Tagen abhole. Dann aber jedes Mal. Ich denke aber, das ist je nach Bank unterschiedlich.

1manfactory commented 5 years ago

Oh, Mann.

Ich habe jetzt erstmal eine FinTS-Registrierungsnummer beantragt, damit ich meine Software nutzen kann (wenn ich sie denn mal zum Laufen bekomme). Oder benötigt man die nur bei kommerzieller Nutzung durch Dritte (was ich nicht vorhabe)?

Ich möchte jetzt auch nicht massiv auf mein Konto (falsch) zugreifen, denn das Letzte, was ich jetzt gebrauchen könnte, ist ein Lock auf mein Konto.

Mit _statement_ofaccount.php aus den Samples bekomme ich für die Postbank:

Request Failed: Dialog bereits geschlossen. (9999); Dialog ungueltig/unbekannt. (9800); Teilweise fehlerhaft. (9050)

URL: https://hbci.postbank.de/banking/hbci.do Port: 443

Sollte ich jetzt besser aufhören, bis ich eine FinTS-Registrierungsnummer habe?

timrasche commented 5 years ago

@1manfactory

Genau, also ohne die Nummer läuft eh gar nichts. Die ist mittlerweile Pflicht. Wie die Sperrfristen usw. sind kann ich nicht sagen, aber auch hier, lieber vor- als Nachsicht ;)

nemiah commented 5 years ago

Also ich teste seit Tagen mit meinen drei Konten rum und keines wurde bisher gesperrt :smile:

1manfactory commented 5 years ago

Ja, besser ist das.

Gibt es eine HBCI-Sandbox?

Am Di., 17. Sept. 2019 um 16:12 Uhr schrieb Tim Rasche < notifications@github.com>:

@1manfactory https://github.com/1manfactory

Genau, also ohne die Nummer läuft eh gar nichts. Die ist mittlerweile Pflicht. Wie die Sperrfristen usw. sind kann ich nicht sagen, aber auch hier, lieber vor- als Nachsicht ;)

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/nemiah/phpFinTS/issues/20?email_source=notifications&email_token=AABYZYSEHTY53HZH3VIRE5LQKDQTVA5CNFSM4IKTUGIKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD64VHKY#issuecomment-532239275, or mute the thread https://github.com/notifications/unsubscribe-auth/AABYZYSV2GXDEV2HI6QS2ZLQKDQTVANCNFSM4IKTUGIA .

-- Jürgen Schulze 1manfactory@gmail.com

timrasche commented 5 years ago

@1manfactory

Meines Wissens nach nicht. Die hatte ich auch schon ewig gesucht. Daher immer Try/Error@Live tests :-/

1manfactory commented 5 years ago

Huch, meine FinTS-Registrierungsnummer ist schon da.

WOW!

Am Di., 17. Sept. 2019 um 16:27 Uhr schrieb Tim Rasche < notifications@github.com>:

@1manfactory https://github.com/1manfactory

Meines Wissens nach nicht. Die hatte ich auch schon ewig gesucht. Daher immer Try/Error@Live tests :-/

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/nemiah/phpFinTS/issues/20?email_source=notifications&email_token=AABYZYV5NI3NWYADJCM46W3QKDSOBA5CNFSM4IKTUGIKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD64W4JQ#issuecomment-532246054, or mute the thread https://github.com/notifications/unsubscribe-auth/AABYZYTSZBT6MWZ6ZPIJN5LQKDSOBANCNFSM4IKTUGIA .

-- Jürgen Schulze 1manfactory@gmail.com

nemiah commented 5 years ago

Ich habe auch schon überlegt, einen FinTS-Server für die Tests zu schreiben :smile:

sirozzy commented 5 years ago

Huch, meine FinTS-Registrierungsnummer ist schon da. WOW! Am Di., 17. Sept. 2019 um 16:27 Uhr schrieb Tim Rasche < notifications@github.com>: @1manfactory https://github.com/1manfactory Meines Wissens nach nicht. Die hatte ich auch schon ewig gesucht. Daher immer Try/Error@Live tests :-/ — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub <#20?email_source=notifications&email_token=AABYZYV5NI3NWYADJCM46W3QKDSOBA5CNFSM4IKTUGIKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD64W4JQ#issuecomment-532246054>, or mute the thread https://github.com/notifications/unsubscribe-auth/AABYZYTSZBT6MWZ6ZPIJN5LQKDSOBANCNFSM4IKTUGIA . -- Jürgen Schulze 1manfactory@gmail.com

Den Erhalt der FinTS Nummer geht immer relativ zügig, allerdings wird für das Update bei den Banken noch mit Rauchzeichen-Übertragung gearbeitet. Wir warten hier schon 2 Wochen auf ein Update. :(

PKeidel commented 5 years ago

Hi, ich habe nun von mschindler83/fints-hbci-php auf nemiah/phpFinTS umgestellt und möchte mich erstmal für eure Arbeit und die investierte Zeit bedanken, wirklich super das das Projekt weiter geht!

Seit gestern habe ich nun meine Registrierungsnummer und nun warte ich auf die "Rauchzeichen-Übertragung" :see_no_evil:

Ich habe mal ohne eingetragene Registrierungsnummer rum probiert und es kommt folgender Fehler:

Request Failed: Die Nachricht enthält Fehler. (9050); Starke Kundenauthentifizierung notwendig. (9075); Dialog abgebrochen (9800); Auftrag abgelehnt. (9340)

Nach dem Vergleichen des Logs mit dem von Hibiscus habe ich weiter rum probiert und in Message.php::__construct() die Zeilen auskommentiert:

if (isset($options[static::OPT_PINTAN_MECH])) {
    if (!in_array('999', $this->options[static::OPT_PINTAN_MECH])) {
        $this->profileVersion = SecurityProfile::PROFILE_VERSION_2;
        $this->securityFunction = $this->options[static::OPT_PINTAN_MECH][0];
    }
}

Damit komme ich bis zur Fehlermeldung: Software nicht als FinTS-Produkt registriert. Bitte an Hersteller wenden.

Es scheint also, als würde das Überschreiben von profileVersion (vorher 1, danach 2) und securityFunction (vorher 999, danach 942) etwas zu zerstören.

Laut getVariables() ist bei mir 942 => "mobile TAN", also scheint das schonmal korrekt zu sein.

Was genau ist Profile Version 2? Muss dies vllt auf 1 bleiben? Wie kann ich herausfinden was meine Bank benötigt? Oder ist das alles nur über try-error möglich?

nemiah commented 5 years ago

Hallo @PKeidel!

Du kannst mal probieren, was passiert, wenn du setTANMechanism nicht vorher ausführst. Dann sollte nicht umgeschalten werden.

PKeidel commented 5 years ago

Danke für die Antwort @nemiah. In Dialog::initDialog() werden options mit AbstractMessage::OPT_PINTAN_MECH an den Konstruktor übergeben, ganz egal ob setTANMechanism() vorher aufgerufen wird oder nicht.

Ich werde warten bis meine Registrierung durch ist und es dann weiter versuchen.

nemiah commented 5 years ago

@PKeidel Ich versuche es zumindest, gerade ist sehr viel los :astonished: Die Meldung Starke Kundenauthentifizierung notwendig. heißt für mich eigentlich schon, dass setTANMechanism benötigt wird. Warte mal auf die Nummer, ja.

visioncode commented 5 years ago

Worauf lässt diese Meldung schließen (VR Bank Mönchengladbach)?

Message: Request Failed: Zugelassene Ein- und Zwei-Schritt-Verfahren für den Benutzer. (3920); Die Nachricht enthält Fehler. (9050); Dialog abgebrochen (9800); Auftrag abgelehnt. (9340)

Mein Testcode mit dem aktuellen master branch commit:

$this->fints = new FinTs(
            FHP_BANK_URL,
            FHP_BANK_PORT,
            FHP_BANK_CODE,
            FHP_ONLINE_BANKING_USERNAME,
            FHP_ONLINE_BANKING_PIN,
            null,
            FHP_REGISTRATION_NO,
            FHP_SOFTWARE_VERSION
        );

        $this->fints->setTANMechanism(TAN_MODE);

$test = $this->fints->getSEPAAccounts();

$this->fints->end();

In dem sample ist das Beispiel ja genau so hinterlegt?

nemiah commented 5 years ago

@visioncode Bitte vergleiche mal das Log mit dem Log von Hibiscus (https://www.willuhn.de/products/hibiscus/) gibt es einen Unterschied?

visioncode commented 5 years ago

@visioncode Bitte vergleiche mal das Log mit dem Log von Hibiscus (https://www.willuhn.de/products/hibiscus/) gibt es einen Unterschied?

[19.09.2019 14:55:03] Führe Dialog-Initialisierung aus [19.09.2019 14:55:03] Verbinde mit https://hbci-pintan.gad.de:443/cgi-bin/hbciservlet und prüfe Zertifikat [19.09.2019 14:55:03] Warte auf Antwortdaten [19.09.2019 14:55:03] Verarbeite Aufträge [19.09.2019 14:55:03] Warte auf Antwortdaten [19.09.2019 14:55:03] Warte auf Antwortdaten [19.09.2019 14:55:04] Führe Dialog-Ende aus [19.09.2019 14:55:04] Warte auf Antwortdaten [19.09.2019 14:55:04] Aufträge ausgeführt [19.09.2019 14:55:04]
[19.09.2019 14:55:04] 3920: Zugelassene TAN-Verfahren für den Benutzer [19.09.2019 14:55:04]
[19.09.2019 14:55:04] Synchronisierung via FinTS/HBCI erfolgreich beendet

Über Hibiscus erhalte ich die Umsätze ... über phpFinTS wirft er nur:

Type: Fhp\Dialog\Exception\FailedRequestException

Message: Request Failed: Zugelassene Ein- und Zwei-Schritt-Verfahren für den Benutzer. (3920); Die Nachricht enthält Fehler. (9050); Dialog abgebrochen (9800); Auftrag abgelehnt. (9340)
visioncode commented 5 years ago

Vielleicht hilfreicher, hier ein Ausschnitt aus der RAW Response:

'HIRMG:3:2+9050::Die Nachricht enthält Fehler.+9800::Dialog abgebrochen+9340::Auftrag abgelehnt.'HIRMS:4:2:4+3920::Zugelassene Ein- und Zwei-Schritt-Verfahren für den Benutzer.:944:962:972:982'HNSHA:5:2+10296'

Wenn mich nicht alles täuscht, dürften die Ziffern 944,962,972,982 die zulässigen TAN Modes sein. Hiervon setze ich jedoch bereits die 944 vorab (SecureGO). Dennoch der Fehler. Eine Idee?

nemiah commented 5 years ago

Hmm, welchen Befehl schickt Hibiscus? Du kannst das Log unter "Hibiscus" -> "Erweitert" -> "HBCI-Protokoll speichern" ausgeben lassen.

visioncode commented 5 years ago

20.09.2019 11:22 Synchronisiere Konto: VR Bank MG, IBAN DEXXX [Volksbank M...engladbach] HNHBK:1:3+000000000479+300+0+1'HNVSK:998:3+PIN:2+998+1+1::1pj8iS/ARG0BAACsjGyJnLBCCgQA+1:20190920:112236+2:2:13:@8@:5:1+280:31060517:benutzernameXXX:V:0:0+0'HNVSD:999:1+@291@HNSHK:2:4+PIN:2+944+379710270+1+1+1::1pj8iS/ARG0BAACsjGyJnLBCCgQA+1+1:20190920:112233+1:999:1+6:10:16+280:31060517:benutzernameXXX:S:0:0'HKIDN:3:2+280:31060517+benutzernameXXX+1pj8iS/ARG0BAACsjGyJnLBCCgQA+1'HKVVB:4:3+2+119+1+A44C2953982351617D475443E+2.8'HKTAN:5:6+4+HKIDN++++N'HNSHA:6:2+379710270++12345''HNHBS:7:1+1' HNHBK:1:3+000000000677+300+P49092011223671+1+P49092011223671:1'HNSHK:2:4+PIN:2+944+379710270+1+1+2::1pj8iS/ARG0BAACsjGyJnLBCCgQA+1+1:20190920:112236+1:999:1+6:10:16+280:31060517:hennes78:S:0:0'HIRMG:3:2+3060::Bitte beachten Sie die enthaltenen Warnungen/Hinweise.'HIRMS:4:2:4+3920::Zugelassene TAN-Verfahren für den Benutzer:944:962:972:982+0901::PIN gültig.+0020::Dialoginitialisierung erfolgreich'HIRMS:5:2:5+3076::Starke Kundenauthentifizierung nicht notwendig.'HITAN:6:6:5+4++noref+nochallenge'HNSHA:7:2+379710270'HNHBS:8:1+1' HNHBK:1:3+000000000401+300+P49092011223671+2'HNVSK:998:3+PIN:2+998+1+1::1pj8iS/ARG0BAACsjGyJnLBCCgQA+1:20190920:112236+2:2:13:@8@:5:1+280:31060517:hennes78:V:0:0+0'HNVSD:999:1+@199@HNSHK:2:4+PIN:2+944+1572729317+1+1+1::1pj8iS/ARG0BAACsjGyJnLBCCgQA+1+1:20190920:112236+1:999:1+6:10:16+280:31060517:hennes78:S:0:0'HKSAL:3:4+3112400019:280:31060517+N+EUR'HNSHA:4:2+1572729317++12345''HNHBS:5:1+2' HNHBK:1:3+000000000660+300+P49092011223671+2+P49092011223671:2'HNSHK:2:4+PIN:2+944+1572729317+1+1+2::1pj8iS/ARG0BAACsjGyJnLBCCgQA+1+1:20190920:112237+1:999:1+6:10:16+280:31060517:hennes78:S:0:0'HIRMG:3:2+3060::Bitte beachten Sie die enthaltenen Warnungen/Hinweise.'HIRMS:4:2:3+0020::Abfrage der Kontosalden erfolgreich.+0901::PIN gültig.+3920::Zugelassene TAN-Verfahren für den Benutzer:944:962:972:982'HISAL:5:4:3+3112400019:280:31060517+Kontokorrent+EUR+C:11327,18:EUR:20190920'HNSHA:6:2+1572729317'HNHBS:7:1+2'

nemiah commented 5 years ago

ok, und was schickt phpFinTS? :smile:

visioncode commented 5 years ago

Also das hier ist die rawResponse ...

HNHBK:1:3+000000012767+300+P49092011352016+1+P49092011352016:1'HNVSK:998:3+PIN:2+998+1+2::0+1:20190920:113521+2:2:13:@8@00000000:5:1+280:31060517:benutzernameXXX:V:0:0+0'HNVSD:999:1+@12571@HNSHK:2:4+PIN:2+944+9194882+1+1+2::0+1+1:20190920:113521+1:999:1+6:10:16+280:31060517:benutzernameXXX:S:0:0'HIRMG:3:2+3060::Bitte beachten Sie die enthaltenen Warnungen/Hinweise.'HIRMS:4:2:6+0020::Auftrag ausgef�hrt.'HIRMS:5:2:4+3050::BPD nicht mehr aktuell, aktuelle Version enthalten.+3920::Zugelassene TAN-Verfahren f�r den Benutzer:944:962:972:982+0901::*PIN g�ltig.+3078::Software nicht als FinTS-Produkt registriert. Bitte an Hersteller wenden.:05B2FA0F3B4AB72E42AD6AAD1+0020::*Dialoginitialisierung erfolgreich'HIRMS:6:2:5+3076::Starke Kundenauthentifizierung nicht notwendig.'HIBPA:7:3:4+2+280:31060517+Volksbank M�nchengladbach eG+1+1+300+500'HIKOM:8:4:4+280:31060517+1+3:https?://hbci-pintan.gad.de/cgi-bin/hbciservlet+2:hbci.gad.de'HISHV:9:3:4+J+RDH:7+PIN:1+RDH:9+RDH:10'HIEKAS:10:5:4+1+1+1+J:J:N:3'HIKAZS:11:4:4+1+1+90:J'HIKAZS:12:5:4+1+1+90:J:N'HIKAZS:13:6:4+1+1+1+90:J:N'HIKAZS:14:7:4+1+1+1+90:J:N'HIPAES:15:1:4+1+1+1'HIPSPS:16:1:4+1+1+1'HIQTGS:17:1:4+1+1+1'HISALS:18:4:4+1+1'HISALS:19:7:4+1+1+1'HICSAS:20:1:4+1+1+1+1:400'HICSBS:21:1:4+1+1+1+N:N'HICSLS:22:1:4+1+1+1+J'HICSES:23:1:4+1+1+1+1:400'HICCSS:24:1:4+1+1+1'HISPAS:25:1:4+1+1+1+J:J:N:sepade?:xsd?:pain.001.001.02.xsd:sepade?:xsd?:pain.001.002.03.xsd:sepade?:xsd?:pain.001.003.03.xsd:sepade?:xsd?:pain.008.002.02.xsd:sepade?:xsd?:pain.008.003.02.xsd:sepade?:xsd?:pain.008.001.02.xsd:sepade?:xsd?:pain.001.001.03.xsd:sepade?:xsd?:pain.001.001.03_GBIC_2.xsd:sepade?:xsd?:pain.008.001.02_GBIC_2.xsd'HICCMS:26:1:4+1+1+1+500:J:N'HIDSES:27:1:4+1+1+1+2:360:2:360'HIBSES:28:1:4+1+1+1+2:360:2:360'HIDMES:29:1:4+1+1+1+2:360:2:360:500:N:N'HIBMES:30:1:4+1+1+1+2:360:2:360:500:N:N'HICDBS:31:1:4+1+1+1+N'HICDLS:32:1:4+1+1+1+0:0:N:J'HIPPDS:33:2:4+1+1+1+1:Telekom:prepaid:N:::15;30;50:2:Vodafone:prepaid:N:::15;25;50:3:E-plus:prepaid:N:::15;20;30:4:O2:prepaid:N:::15;20;30:5:Congstar:prepaid:N:::15;30;50:6:Blau:prepaid:N:::15;20;30'HICDNS:34:1:4+1+1+1+0:1:3650:J:J:J:J:N:J:J:J:J:0102030612:01020304050607080910111213141516171819202122232425262728293099'HIDSBS:35:1:4+1+1+1+N:N:9999'HICUBS:36:1:4+1+1+1+N'HICUMS:37:1:4+1+1+1+OTHR'HICDES:38:1:4+1+1+1+4:1:3650:0102030612:01020304050607080910111213141516171819202122232425262728293099:01:12345'HIDSWS:39:1:4+1+1+1+J'HIDMCS:40:1:4+1+1+1+500:N:N:2:45:2:45::sepade?:xsd?:pain.008.003.02.xsd'HIDSCS:41:1:4+1+1+1+2:45:2:45::sepade?:xsd?:pain.008.003.02.xsd'HIECAS:42:1:4+1+1+1+J:N:N:urn?:iso?:std?:iso?:20022?:tech?:xsd?:camt.053.001.02'GIVPUS:43:1:4+1+1+1+N'GIVPDS:44:1:4+1+1+1+1'HIAUBS:45:6:4+1+1+1+500'HIBBSS:46:1:4+1+1+1+N:N'HIBMBS:47:1:4+1+1+1+N:N'HIDBSS:48:1:4+1+1+1+N:N'HIDMBS:49:1:4+1+1+1+N:N'HICMBS:50:1:4+1+1+1+N:N'HICMES:51:1:4+1+1+1+1:400:500:J:N'HICMLS:52:1:4+1+1+1'HIWDUS:53:5:4+1+1+1+365'HIWPDS:54:6:4+1+1+1+N:N:N'HIBMES:55:2:4+1+1+1+0;1;110000:0;360:500:N:N'HIBSES:56:2:4+1+1+1+0;1;110000:0;360'HIDMES:57:2:4+1+1+1+0;0;1;130000:0;0;360:500:N:N'HIDSES:58:2:4+1+1+1+0;0;1;130000:0;0;360'HIKAUS:59:2:4+1+1+1'HIKIFS:60:7:4+1+1+1+N:N'HICAZS:61:1:4+1+1+1+90:N:N:urn?:iso?:std?:iso?:20022?:tech?:xsd?:camt.052.001.02'HIBAZS:62:1:4+1+1+1+N:N:N'HIZDFS:63:1:4+1+1+1+99'HIDDBS:64:1:4+1+1+1+N:sepade?:xsd?:pain.008.003.02.xsd:sepade?:xsd?:pain.008.001.02.xsd:sepade?:xsd?:pain.008.001.02_GBIC_2.xsd'HIDDES:65:1:4+1+1+1+CORE:3:360:0102030612:01020304050607080910111213141516171819202122232425262728293099:01:12345::sepade?:xsd?:pain.008.003.02.xsd:sepade?:xsd?:pain.008.001.02.xsd:sepade?:xsd?:pain.008.001.02_GBIC_2.xsd'HIDDLS:66:1:4+1+1+1+0:3650:N:J:sepade?:xsd?:pain.008.003.02.xsd:sepade?:xsd?:pain.008.001.02.xsd:sepade?:xsd?:pain.008.001.02_GBIC_2.xsd'HIDDNS:67:1:4+1+1+1+1:3:3650:J:J:J:J:N:J:J:J:N:0102030612:01020304050607080910111213141516171819202122232425262728293099:01:12345::sepade?:xsd?:pain.008.003.02.xsd:sepade?:xsd?:pain.008.001.02.xsd:sepade?:xsd?:pain.008.001.02_GBIC_2.xsd'HIDVKS:68:2:4+1+1+1+N:J'HIKAAS:69:1:4+1+1+1+N:J:J:J:4;PDF;1'HIPOFS:70:1:4+1+1+1+J:N:100;Kundenmitteilung'HIBMLS:71:1:4+1+1+1'HIBSAS:72:1:4+1+1+1+2:360:2:360'HIBSLS:73:1:4+1+1+1+J'HIDMLS:74:1:4+1+1+1'HIDSAS:75:1:4+1+1+1+2:360:2:360'HIDSLS:76:1:4+1+1+1+J'HIAUBS:77:9:4+1+1+1+2006:500:15000,'HITANS:78:6:4+1+1+1+J:N:0:942:2:MTAN2:mobileTAN::mobile TAN:6:1:SMS:2048:J:1:N:0:2:N:J:00:0:N:1:944:2:SECUREGO:mobileTAN::SecureGo:6:1:TAN:2048:J:1:N:0:2:N:J:00:0:N:1:962:2:HHD1.4:HHD:1.4:Smart-TAN plus manuell:6:1:Challenge:2048:J:1:N:0:2:N:J:00:0:N:1:972:2:HHD1.4OPT:HHDOPT1:1.4:Smart-TAN plus optisch / USB:6:1:Challenge:2048:J:1:N:0:2:N:J:00:0:N:1:982:2:MS1.0.0:::Smart-TAN photo:6:1:Challenge:2048:J:1:N:0:2:N:J:00:0:N:1'HIPINS:79:1:4+1+1+0+5:20:6:VR-NetKey oder Alias::HKTAN:N:HKKAZ:J:HKSAL:N:HKEKA:N:HKPAE:J:HKPSP:N:HKQTG:N:HKCSA:J:HKCSB:N:HKCSL:J:HKCSE:J:HKCCS:J

nemiah commented 5 years ago

ok, super, dann machst du am Besten jeweils ein str_replace("'","'\n", $log), damit es auch übersichtlich wird :wink:

bkazemian commented 5 years ago

Da ich bei der gleichen Bank (andere Zweigstelle) das exakt gleiche Problem habe, hab ich das mit dem str_replace jetzt mal für die 2 obigen Logs gemacht :)

Hibiscus Log:

20.09.2019 11:22 Synchronisiere Konto: VR Bank MG, IBAN DEXXX [Volksbank M...engladbach] HNHBK:1:3+000000000479+300+0+1' HNVSK:998:3+PIN:2+998+1+1::1pj8iS/ARG0BAACsjGyJnLBCCgQA+1:20190920:112236+2:2:13:@8@��������:5:1+280:31060517:benutzernameXXX:V:0:0+0' HNVSD:999:1+@291@HNSHK:2:4+PIN:2+944+379710270+1+1+1::1pj8iS/ARG0BAACsjGyJnLBCCgQA+1+1:20190920:112233+1:999:1+6:10:16+280:31060517:benutzernameXXX:S:0:0' HKIDN:3:2+280:31060517+benutzernameXXX+1pj8iS/ARG0BAACsjGyJnLBCCgQA+1' HKVVB:4:3+2+119+1+A44C2953982351617D475443E+2.8' HKTAN:5:6+4+HKIDN++++N' HNSHA:6:2+379710270++12345' ' HNHBS:7:1+1' HNHBK:1:3+000000000677+300+P49092011223671+1+P49092011223671:1' HNSHK:2:4+PIN:2+944+379710270+1+1+2::1pj8iS/ARG0BAACsjGyJnLBCCgQA+1+1:20190920:112236+1:999:1+6:10:16+280:31060517:hennes78:S:0:0' HIRMG:3:2+3060::Bitte beachten Sie die enthaltenen Warnungen/Hinweise.' HIRMS:4:2:4+3920::Zugelassene TAN-Verfahren für den Benutzer:944:962:972:982+0901::PIN gültig.+0020::Dialoginitialisierung erfolgreich' HIRMS:5:2:5+3076::Starke Kundenauthentifizierung nicht notwendig.' HITAN:6:6:5+4++noref+nochallenge' HNSHA:7:2+379710270' HNHBS:8:1+1' HNHBK:1:3+000000000401+300+P49092011223671+2' HNVSK:998:3+PIN:2+998+1+1::1pj8iS/ARG0BAACsjGyJnLBCCgQA+1:20190920:112236+2:2:13:@8@��������:5:1+280:31060517:hennes78:V:0:0+0' HNVSD:999:1+@199@HNSHK:2:4+PIN:2+944+1572729317+1+1+1::1pj8iS/ARG0BAACsjGyJnLBCCgQA+1+1:20190920:112236+1:999:1+6:10:16+280:31060517:hennes78:S:0:0' HKSAL:3:4+3112400019:280:31060517+N+EUR' HNSHA:4:2+1572729317++12345' ' HNHBS:5:1+2' HNHBK:1:3+000000000660+300+P49092011223671+2+P49092011223671:2' HNSHK:2:4+PIN:2+944+1572729317+1+1+2::1pj8iS/ARG0BAACsjGyJnLBCCgQA+1+1:20190920:112237+1:999:1+6:10:16+280:31060517:hennes78:S:0:0' HIRMG:3:2+3060::Bitte beachten Sie die enthaltenen Warnungen/Hinweise.' HIRMS:4:2:3+0020::Abfrage der Kontosalden erfolgreich.+0901::PIN gültig.+3920::Zugelassene TAN-Verfahren für den Benutzer:944:962:972:982' HISAL:5:4:3+3112400019:280:31060517+Kontokorrent+EUR+C:11327,18:EUR:20190920' HNSHA:6:2+1572729317' HNHBS:7:1+2'

phpFinTs Log:

HNHBK:1:3+000000012767+300+P49092011352016+1+P49092011352016:1' HNVSK:998:3+PIN:2+998+1+2::0+1:20190920:113521+2:2:13:@8@00000000:5:1+280:31060517:benutzernameXXX:V:0:0+0' HNVSD:999:1+@12571@HNSHK:2:4+PIN:2+944+9194882+1+1+2::0+1+1:20190920:113521+1:999:1+6:10:16+280:31060517:benutzernameXXX:S:0:0' HIRMG:3:2+3060::Bitte beachten Sie die enthaltenen Warnungen/Hinweise.' HIRMS:4:2:6+0020::Auftrag ausgef�hrt.' HIRMS:5:2:4+3050::BPD nicht mehr aktuell, aktuelle Version enthalten.+3920::Zugelassene TAN-Verfahren f�r den Benutzer:944:962:972:982+0901::PIN g�ltig.+3078::Software nicht als FinTS-Produkt registriert. Bitte an Hersteller wenden.:05B2FA0F3B4AB72E42AD6AAD1+0020::Dialoginitialisierung erfolgreich' HIRMS:6:2:5+3076::Starke Kundenauthentifizierung nicht notwendig.' HIBPA:7:3:4+2+280:31060517+Volksbank M�nchengladbach eG+1+1+300+500' HIKOM:8:4:4+280:31060517+1+3:https?://hbci-pintan.gad.de/cgi-bin/hbciservlet+2:hbci.gad.de' HISHV:9:3:4+J+RDH:7+PIN:1+RDH:9+RDH:10' HIEKAS:10:5:4+1+1+1+J:J:N:3' HIKAZS:11:4:4+1+1+90:J' HIKAZS:12:5:4+1+1+90:J:N' HIKAZS:13:6:4+1+1+1+90:J:N' HIKAZS:14:7:4+1+1+1+90:J:N' HIPAES:15:1:4+1+1+1' HIPSPS:16:1:4+1+1+1' HIQTGS:17:1:4+1+1+1' HISALS:18:4:4+1+1' HISALS:19:7:4+1+1+1' HICSAS:20:1:4+1+1+1+1:400' HICSBS:21:1:4+1+1+1+N:N' HICSLS:22:1:4+1+1+1+J' HICSES:23:1:4+1+1+1+1:400' HICCSS:24:1:4+1+1+1' HISPAS:25:1:4+1+1+1+J:J:N:sepade?:xsd?:pain.001.001.02.xsd:sepade?:xsd?:pain.001.002.03.xsd:sepade?:xsd?:pain.001.003.03.xsd:sepade?:xsd?:pain.008.002.02.xsd:sepade?:xsd?:pain.008.003.02.xsd:sepade?:xsd?:pain.008.001.02.xsd:sepade?:xsd?:pain.001.001.03.xsd:sepade?:xsd?:pain.001.001.03_GBIC_2.xsd:sepade?:xsd?:pain.008.001.02_GBIC_2.xsd' HICCMS:26:1:4+1+1+1+500:J:N' HIDSES:27:1:4+1+1+1+2:360:2:360' HIBSES:28:1:4+1+1+1+2:360:2:360' HIDMES:29:1:4+1+1+1+2:360:2:360:500:N:N' HIBMES:30:1:4+1+1+1+2:360:2:360:500:N:N' HICDBS:31:1:4+1+1+1+N' HICDLS:32:1:4+1+1+1+0:0:N:J' HIPPDS:33:2:4+1+1+1+1:Telekom:prepaid:N:::15;30;50:2:Vodafone:prepaid:N:::15;25;50:3:E-plus:prepaid:N:::15;20;30:4:O2:prepaid:N:::15;20;30:5:Congstar:prepaid:N:::15;30;50:6:Blau:prepaid:N:::15;20;30' HICDNS:34:1:4+1+1+1+0:1:3650:J:J:J:J:N:J:J:J:J:0102030612:01020304050607080910111213141516171819202122232425262728293099' HIDSBS:35:1:4+1+1+1+N:N:9999' HICUBS:36:1:4+1+1+1+N' HICUMS:37:1:4+1+1+1+OTHR' HICDES:38:1:4+1+1+1+4:1:3650:0102030612:01020304050607080910111213141516171819202122232425262728293099:01:12345' HIDSWS:39:1:4+1+1+1+J' HIDMCS:40:1:4+1+1+1+500:N:N:2:45:2:45::sepade?:xsd?:pain.008.003.02.xsd' HIDSCS:41:1:4+1+1+1+2:45:2:45::sepade?:xsd?:pain.008.003.02.xsd' HIECAS:42:1:4+1+1+1+J:N:N:urn?:iso?:std?:iso?:20022?:tech?:xsd?:camt.053.001.02' GIVPUS:43:1:4+1+1+1+N' GIVPDS:44:1:4+1+1+1+1' HIAUBS:45:6:4+1+1+1+500' HIBBSS:46:1:4+1+1+1+N:N' HIBMBS:47:1:4+1+1+1+N:N' HIDBSS:48:1:4+1+1+1+N:N' HIDMBS:49:1:4+1+1+1+N:N' HICMBS:50:1:4+1+1+1+N:N' HICMES:51:1:4+1+1+1+1:400:500:J:N' HICMLS:52:1:4+1+1+1' HIWDUS:53:5:4+1+1+1+365' HIWPDS:54:6:4+1+1+1+N:N:N' HIBMES:55:2:4+1+1+1+0;1;110000:0;360:500:N:N' HIBSES:56:2:4+1+1+1+0;1;110000:0;360' HIDMES:57:2:4+1+1+1+0;0;1;130000:0;0;360:500:N:N' HIDSES:58:2:4+1+1+1+0;0;1;130000:0;0;360' HIKAUS:59:2:4+1+1+1' HIKIFS:60:7:4+1+1+1+N:N' HICAZS:61:1:4+1+1+1+90:N:N:urn?:iso?:std?:iso?:20022?:tech?:xsd?:camt.052.001.02' HIBAZS:62:1:4+1+1+1+N:N:N' HIZDFS:63:1:4+1+1+1+99' HIDDBS:64:1:4+1+1+1+N:sepade?:xsd?:pain.008.003.02.xsd:sepade?:xsd?:pain.008.001.02.xsd:sepade?:xsd?:pain.008.001.02_GBIC_2.xsd' HIDDES:65:1:4+1+1+1+CORE:3:360:0102030612:01020304050607080910111213141516171819202122232425262728293099:01:12345::sepade?:xsd?:pain.008.003.02.xsd:sepade?:xsd?:pain.008.001.02.xsd:sepade?:xsd?:pain.008.001.02_GBIC_2.xsd' HIDDLS:66:1:4+1+1+1+0:3650:N:J:sepade?:xsd?:pain.008.003.02.xsd:sepade?:xsd?:pain.008.001.02.xsd:sepade?:xsd?:pain.008.001.02_GBIC_2.xsd' HIDDNS:67:1:4+1+1+1+1:3:3650:J:J:J:J:N:J:J:J:N:0102030612:01020304050607080910111213141516171819202122232425262728293099:01:12345::sepade?:xsd?:pain.008.003.02.xsd:sepade?:xsd?:pain.008.001.02.xsd:sepade?:xsd?:pain.008.001.02_GBIC_2.xsd' HIDVKS:68:2:4+1+1+1+N:J' HIKAAS:69:1:4+1+1+1+N:J:J:J:4;PDF;1' HIPOFS:70:1:4+1+1+1+J:N:100;Kundenmitteilung' HIBMLS:71:1:4+1+1+1' HIBSAS:72:1:4+1+1+1+2:360:2:360' HIBSLS:73:1:4+1+1+1+J' HIDMLS:74:1:4+1+1+1' HIDSAS:75:1:4+1+1+1+2:360:2:360' HIDSLS:76:1:4+1+1+1+J' HIAUBS:77:9:4+1+1+1+2006:500:15000,' HITANS:78:6:4+1+1+1+J:N:0:942:2:MTAN2:mobileTAN::mobile TAN:6:1:SMS:2048:J:1:N:0:2:N:J:00:0:N:1:944:2:SECUREGO:mobileTAN::SecureGo:6:1:TAN:2048:J:1:N:0:2:N:J:00:0:N:1:962:2:HHD1.4:HHD:1.4:Smart-TAN plus manuell:6:1:Challenge:2048:J:1:N:0:2:N:J:00:0:N:1:972:2:HHD1.4OPT:HHDOPT1:1.4:Smart-TAN plus optisch / USB:6:1:Challenge:2048:J:1:N:0:2:N:J:00:0:N:1:982:2:MS1.0.0:::Smart-TAN photo:6:1:Challenge:2048:J:1:N:0:2:N:J:00:0:N:1' HIPINS:79:1:4+1+1+0+5:20:6:VR-NetKey oder Alias::HKTAN:N:HKKAZ:J:HKSAL:N:HKEKA:N:HKPAE:J:HKPSP:N:HKQTG:N:HKCSA:J:HKCSB:N:HKCSL:J:HKCSE:J:HKCCS:J

visioncode commented 5 years ago

Danke für's übernehmen @bkazemian ;)

Ich dachte es wäre generell "unlesbar", daher habe ich es einfach nur copy/pasted. Habe mich bislang noch nicht soo im Detail mit dem FinTS Protokoll beschäftigt. Aber jetzt ergibt es halbwegs Sinn ...

Hat denn jemand einen heißen Tipp woran es bei der VR Bank hier scheitert? Ist ein Protokoll nicht dazu da, Dinge zu standardisieren? Warum gibt es dann so viele Probleme bei/mit unterschiedlichen Banken? 😕

oliress commented 5 years ago

@visioncode: Sieht für mich danach aus, dass entweder keine Registrierung beim Aufruf von phpFinTS angegeben wurde, oder diese noch nicht bei der Bank angekommen ist: 3078::Software nicht als FinTS-Produkt registriert. Bitte an Hersteller wenden. Siehe Issue #16.

bkazemian commented 5 years ago

Das hatte ich auch schon gedacht, aber getVariables() funktioniert... Müsste das an der Stelle dann nicht auch schon einen Fehler geben? Das FinTS Produkt hab ich vor einer Woche registriert und komme damit bei der Hypo Vereinsbank auch weiter.

Edit: Hab eben eine falsche Produktnr zur Hypo Vereinsbank übertragen. Das geht da auch durch. Und ich erhalte Kontoauszüge ohne TAN oder weitere Freigaben. Kann ich irgendwoher eine andere, schon ältere Produktnr zum Testen bekommen? :)

PKeidel commented 5 years ago

Bei der Meldung Software nicht als FinTS-Produkt registriert. Bitte an Hersteller wenden. stecke ich auch seit ein paar Tagen fest (siehe https://github.com/nemiah/phpFinTS/issues/20#issuecomment-532283715). Ich habe vorhin eine E-Mail an fiducia geschrieben, mal sehen was und wann die mir Antworten.

bkazemian commented 5 years ago

Mühsam ernährt sich das Eichhörnchen, wie es so schön heißt .... :)

Also, um mit getVariables() etwas zu erhalten, ist die Produktnr egal; das geht bei allen von mir getesteten Banken auch mit jeder Fake-Nummer. Dann habe ich in den im Forum geposteten Logs folgende Produktnr gefunden: A44C2953982351617D475443E

Die ist wohl gültig, denn damit kommen keine Produktfehler mehr. Aber ich komme trotzdem nicht weiter, schon bei getAccounts() knallt es mit der Meldung:

Zugelassene Ein- und Zwei-Schritt-Verfahren für den Benutzer. (3920); Die Nachricht enthält Fehler. (9050); Dialog abgebrochen (9800); Auftrag abgelehnt. (9340)

Ich weiss aber, dass bei getAccounts() für die Frankfurter Volksbank kein TAN notwendig ist. Hat jemand noch Ideen?

oliress commented 5 years ago

Ich muss vor getSEPAAccounts() noch setTANMechanism() mit einem TAN-Verfahren, z.B. setTANMechanism(920), aufrufen. Akzeptiert werden nur Verfahren, die für das Konto zugelassen sind, auch wenn getVariables() noch weitere Verfahren auflistet.

Der Programmablauf sieht also so aus: $fints = new FinTs(...); $fints->setTANMechanism(920); $accounts = $fints->getSEPAAccounts();

bkazemian commented 5 years ago

Danke @oliress .. bekommst Du dann auch eine TAN an der Stelle oder übermittelst Du nur den Wert 920; ohne aber erst mal irgendwas mit einer TAN zu tun zu haben? Bei Frankfurter Volksbank und Sparkasse Aschaffenburg bringt das leider aber nichts. Habe alle möglichen Werte getestet, immer die gleiche Fehlermeldung leider. Komme also nach wie vor nicht über getSEPAAccounts() hinweg.

oliress commented 5 years ago

Laut Spezifikation (siehe Kapitel B.8.2, letzter Absatz, Seite 57) muss immer ein zugelassenes TAN-Verfahren angegeben werden, auch wenn für den Geschäftsvorfall (also z.B. Kontoumsätze abfragen) keine TAN benötigt wird.

Die für das aktuelle Konto zugelassenen TAN-Verfahren kann man aus dem Segment HIRMS ermitteln, siehe auch meinen Kommentar zum PR 52.

Bei der Sparkasse Aschaffenburg funktioniert dieser Ablauf mit dem aktuellen Stand im master. Du hast ja offenbar eine 3920-Rückmeldung bekommen:

Zugelassene Ein- und Zwei-Schritt-Verfahren für den Benutzer. (3920); Die Nachricht enthält Fehler. (9050); Dialog abgebrochen (9800); Auftrag abgelehnt. (9340)

Was steht hier bei Dir als zugelassenes Verfahren drin? Diesen Wert musst Du bei setTANMechanism() als Parameter übergeben.

bkazemian commented 5 years ago

Also bei Sparkasse Aschaffenburg kommt über getVariables zurück:

HITANS:170:6:4+1+1+1+J:N:0:910:2:HHD1.3.0:::chipTAN manuell:6:1:TAN-Nummer:3:J:2:N:0:0:N:N:00:0:N:1:911:2:HHD1.3.2OPT:HHDOPT1:1.3.2:chipTAN optisch:6:1:TAN-Nummer:3:J:2:N:0:0:N:N:00:0:N:1:912:2:HHD1.3.2USB:HHDUSB1:1.3.2:chipTAN-USB:6:1:TAN-Nummer:3:J:2:N:0:0:N:N:00:0:N:1:913:2:Q1S:Secoder_UC:1.2.0:chipTAN-QR:6:1:TAN-Nummer:3:J:2:N:0:0:N:N:00:0:N:1:920:2:smsTAN:::smsTAN:6:1:TAN-Nummer:3:J:2:N:0:0:N:N:00:2:N:5:921:2:pushTAN:::pushTAN:6:1:TAN-Nummer:3:J:2:N:0:0:N:N:00:2:N:2:900:2:iTAN:::iTAN:6:1:TAN-Nummer:3:J:2:N:0:0:N:N:00:0:N:0'

        [910] => chipTAN manuell
        [911] => chipTAN optisch
        [912] => chipTAN-USB
        [913] => chipTAN-QR
        [920] => smsTAN
        [921] => pushTAN
        [900] => iTAN

Ich habe Versuche mit allen 7 Möglichkeiten gemacht. Also jeweils zuerst setTANMechanism(XX) ausgeführt und dann getSEPAAccounts() aufgerufen; wie in Deinem Beispielprozess.

Es kommt überall zurück: Request Failed: Auftrag wegen genereller Fehler in Auftragsnachricht nicht verarbeitet. (9010); Die Nachricht enthält Fehler. (9050); Dialog abgebrochen (9800); Kein gültiges Sicherheitsprofil. (9930)

Nur mit 910 kommt zurück: Request Failed: PIN/TAN-Verfahren widerspricht dem Legitimationsvertrag. (MBV07390100182) (9930); Die Nachricht enthält Fehler. (9050)

Der Online-Banking Zugang, der hier genutzt wird, ist auch nur für die Umsatzabfrage. Der wurde damals ohne TAN beantragt. Und wenn ich mich mit den Daten bei der Sparkasse Aschaffenburg einlogge, wird auch keine TAN gefragt.

Ich schaue mal ob ich einen "normalen" Online-Zugang erhalten kann, der auch wirklich TANs nutzt.

oliress commented 5 years ago

Was steht bei Dir im HIRMS Segment?

bkazemian commented 5 years ago

Meinst Du das hier?

Bei TanMechanism 910: HIRMS:4:2:3+9930::PIN/TAN-Verfahren widerspricht dem Legitimationsvertrag. (MBV07390100182)'

Bei dem Rest: HIRMS:4:2:3+9010::Auftrag wegen genereller Fehler in Auftragsnachricht nicht verarbeitet.'

oliress commented 5 years ago

Ja, genau. Bei mir wird folgendes zurückgegeben:

HIRMS:4:2:4+3050::UPD nicht mehr aktuell, aktuelle Version enthalten.+3050::BPD nicht mehr aktuell, aktuelle Version enthalten.+3920::Zugelassene Zwei-Schritt-Verfahren für den Benutzer.:920+0020::Der Auftrag wurde ausgeführt.

Die 920 am Ende des Rückmeldecodes 3920 ist das freigegebene TAN-Verfahren. Sieht so aus, als ob dein Konto nicht freigeschaltet ist!?

bkazemian commented 5 years ago

@oliress Doch, ist es laut Bank. Ich spreche mal mit deren IT und dann schauen wir mal. Warte da noch auf einen Rückruf.

bkazemian commented 5 years ago

Also ich habe jetzt jemanden bei der Bank erreicht der sich die Logfiles angeschaut hat. Über getVariables() erhalte ich:

        [910] => chipTAN manuell
        [911] => chipTAN optisch
        [912] => chipTAN-USB
        [913] => chipTAN-QR
        [920] => smsTAN
        [921] => pushTAN
        [900] => iTAN

Unser Prozedere ist:

$fints = new FinTs(...); $fints->setTANMechanism(920); $accounts = $fints->getSEPAAccounts();

Laut Bank kommt aber "chipTAN manuell" an und nicht "smsTAN". Im Programmcode habe ich nichts gefunden, was das erklären könnte.

fbett commented 5 years ago

Es gab da ein Problem, dass nicht immer der ausgewählte TAN Mechanismus übermittelt wurde, sondern der Erste, der von der Bank angeboten wurde.

Könnte mit #43 im Zusammenhang stehen, habe es leider nicht ganz auf dem Schirm und kam noch nicht zum Testen.

Nebenbei finde ich es nicht zielführend, die Bank beim Debugging einzuspannen, solange nicht ausgeschlossen ist, dass es sich nicht einen Fehler der Library handelt. Schließlich sollten alle Dialoge über das LoggerInterface debugged werden können.

Ansonsten wäre wohl zu befürchten, dass die FinTS-Schnittstellen noch stärker reglementiert werden könnten.

bkazemian commented 5 years ago

Hallo,

ja, aber die Bank kann schließlich sehen woran es lag. Der Tipp von denen mit der 910 hat jetzt auf jeden Fall einen Hinweis gegeben und zusammen mit Deinem Link zum Issue 43 zur Lösung beigetragen. Vielen Dank @fbett ! :)

Ich hab mal in das genannte Ticket geschaut und mal als Quick&Dirty Lösung in der Message.php diese Zeile:

$this->securityFunction = $this->options[static::OPT_PINTAN_MECH][0];

gegen

$this->securityFunction = 920;

Damit bekomme ich jetzt die Umsätze! Jetzt müsste man noch schauen, warum das passiert. Wenn ich mir da eine Info einbaue, sehe ich, dass diese Funktion 4 mal aufgerufen wird innerhalb des Prozesses. 3 mal davon wird die per setTANMechanism übergebene Nummer übermittelt, einmal aber die erste TAN-Möglichkeit; in diesem Fall die 910

na-oma commented 5 years ago

@bkazemian Haste mal meinen Branch aus #43 ausprobiert ( https://github.com/na-oma/phpFinTS/tree/fix-43-sicherheitsprofil ), bzw. das sollte im aktuellen master seit 7 Tagen mit drin sein. Du musst dazu im composer direkt auf dev version schalten, wenn das noch nicht geschehen ist.

bkazemian commented 5 years ago

Hi @na-oma .. so, konnte es jetzt erst testen. Ja, mit dem aktuellen Master klappt es jetzt auch out-of-the-box und der korrekte TAN-Mode wird überall durchgereicht. Super, Danke ! :)

Sparkasse Aschaffenburg, Frankfurter Volksbank und Hypo-Vereinsbank funktionieren jetzt alle.