Closed kathibeepboop closed 5 years ago
Die App "Banking4" hat den Zugang erst wiederherstellen können, nachdem eine PhotoTan übermittelt wurde. Dies war bei den anderen Zugängen nicht erforderlich.
Ich gehe davon aus, dass das womöglich derzeit mit dieser PHP-Bibliothek nur schwerer zu lösen ist: Hierzu müsste man vermutlich eine andere Technologie (stateful) nutzen.
Ich habe die These, dass man sich mit einer beliebigen App (aber ggf. mit demselben TAN-Medium) neu authentifizieren kann und es dann auch mit der Library wieder klappt. Zumindest musste ich zum einfachen Umsatzabruf bisher noch keine TAN übermitteln, worauf ich diese These stütze ;)
Das wäre natürlich gut, auch wenn ich dann das Sicherheitskonzept dahinter nicht mehr verstehen würde. :D
Also ich kann mit einer TAN Eingabe im Online Interface meinen Tan Fehler Zähler zurücksetzen. Das geht. Jedoch habe ich über das Online Banking auch genutzt und vorher sowie nachher getestet, beides klappte nicht. Mit Foto-TAN habe ich bisher nichts gemacht.
Ich erhalte die TAN für die Anfrage ja auch, jedoch bekomme ich trotzdem die HBCI Fehlermeldung. Kann es sein, dass man es einfach so umsetzen muss wie beim Abrufen der Umsätze wie hier? https://github.com/nemiah/phpFinTS/blob/1cbbf0d758b9088222983092846f9947405bf810/Samples/statement_of_account.php#L54-L86
nur bereits hier https://github.com/nemiah/phpFinTS/blob/1cbbf0d758b9088222983092846f9947405bf810/Samples/statement_of_account.php#L47
Nachdem ich noch etwas weiter nachgeschaut habe, sehe ich die folgende Ausgabe beim Aufrufen der Funktion "getSEPAAccounts()"
[2019-09-19 16:29:33] app.INFO: [HIRMS] 0030: TAN-Eingabe erforderlich. [] []
[2019-09-19 16:29:33] app.INFO: HKSPA (SEPA accounts) initialize [] []
[2019-09-19 16:29:33] app.DEBUG: > NACHRICHT [] []
[2019-09-19 16:29:33] app.DEBUG: < NACHRICHT [] []
[2019-09-19 16:29:33] app.ERROR: [HIRMG] 9050: Die Nachricht enthaelt Fehler. [] []
[2019-09-19 16:29:33] app.ERROR: [HIRMG] 9800: Dialog abgebrochen [] []
[2019-09-19 16:29:33] app.ERROR: [HIRMG] 9340: Ungueltige Auftragsnachricht? [] []
[2019-09-19 16:29:33] app.ERROR: [HIRMS] 9010: Auftrag wegen genereller Fehler in Auftragsnachricht nicht verarbeitet. [] []
Hmm, brauchst du schon zum Abfragen der Konten eine TAN?
Im Webinterface nicht, im Code jedoch schon. Sobald ich mit dem aktuellen dev-master die Funktion "getSEPAAccounts()" aufrufe, erhalte ich eine SMS Tan und gleichzeitig die Fehlermeldung, wie oben beschrieben.
Ich habe testweise versuch das SEPAAccount Objekt selber zu generieren anhand der benötigten Informationen, jedoch hat das auch nicht geklappt, da anscheinend benötigte Parameter nicht gesetzt waren, wo aber mein Know-How fehlte um herauszufinden was genau fehlte. Hatte alle außer den SubAccount gesetzt. Aber ggf. die anderen auch falsch.
Hmm, ok, bei getSEPAAccounts ist im Moment keine TAN-Abfrage eingeplant. Ich habe gerade mal getSEPAAccounts() um den tanCallback erweitert, bitte probier mal damit.
Danke dir! Habe es nun getestet, erhalte jedoch immernoch die gleiche Fehlermeldung, jedoch wird der Callback nicht aufgerufen. Kann es daran liegen, dass der Dialog auch hier automatisch beendet wird?
mein Test-Code:
$callback = function () {
die("test");
};
$accounts = $fints->getSEPAAccounts($callback);
Hmm, der callback sollte aufgerufen werden, wenn Dialog::sendMessage eine TAN-Anfrage zurück bekommt. Schau doch bitte mal, wie weit Dialog::sendMessage durchläuft.
Hier einmal die Log:
HKSPA (SEPA accounts) initialize
> NACHRICHT
< NACHRICHT
[HIRMG] 9050: Die Nachricht enthaelt Fehler.
[HIRMG] 9800: Dialog abgebrochen
[HIRMG] 9340: Ungueltige Auftragsnachricht?
[HIRMS] 9010: Auftrag wegen genereller Fehler in Auftragsnachricht nicht verarbeitet.
Request Failed: Auftrag wegen genereller Fehler in Auftragsnachricht nicht verarbeitet. (9010); Die Nachricht enthaelt Fehler. (9050); Dialog abgebrochen (9800); Ungueltige Auftragsnachricht? (9340)
Request Failed: Auftrag wegen genereller Fehler in Auftragsnachricht nicht verarbeitet. (9010); Die Nachricht enthaelt Fehler. (9050); Dialog abgebrochen (9800); Ungueltige Auftragsnachricht? (9340)
Ausgelöst wird der Fehler in https://github.com/nemiah/phpFinTS/blob/ec96e31fb5ce9d5cc7df5b9163ad7eec8339d63d/lib/Fhp/FinTs.php#L175
Ok, das heißt aber, dass das Problem noch vor der TAN-Abfrage auftritt.
Vielleicht musst du dann bei HKSPA schon ein HKTAN mitschicken.
Probier doch bitte mal in der getSEPAAccounts() folgendes:
$message = $this->getNewMessage( $dialog, array( new HKSPA(3), $this->createHKTAN(4) ), array(AbstractMessage::OPT_PINTAN_MECH => $this->getUsedPinTanMechanism($dialog)) );
Habs in der Funktion hinzugefügt, jedoch besteht das Problem weiterhin.
DIALOG initialize
Registered product: PRODUCTNUMBER 1.0
> DATA
< DATA
[HIRMG] 0010: Nachricht entgegengenommen.
[HIRMS] 0030: TAN-Eingabe erforderlich.
Received dialog ID: DIALOGID
DIALOG end
HKSPA (SEPA accounts) initialize
> DATA
< DATA
[HIRMG] 9050: Die Nachricht enthaelt Fehler.
[HIRMG] 9800: Dialog abgebrochen
[HIRMG] 9340: Ungueltige Auftragsnachricht?
[HIRMS] 9010: Auftrag wegen genereller Fehler in Auftragsnachricht nicht verarbeitet.
Request Failed: Auftrag wegen genereller Fehler in Auftragsnachricht nicht verarbeitet. (9010); Die Nachricht enthaelt Fehler. (9050); Dialog abgebrochen (9800); Ungueltige Auftragsnachricht? (9340)
Request Failed: Auftrag wegen genereller Fehler in Auftragsnachricht nicht verarbeitet. (9010); Die Nachricht enthaelt Fehler. (9050); Dialog abgebrochen (9800); Ungueltige Auftragsnachricht? (9340)
Um sicher zu gehen, hier die getSEPAAccounts()
public function getSEPAAccounts(\Closure $tanCallback = null)
{
$dialog = $this->getDialog(false); #, $this->tanMechanism);
#$dialog->endDialog(); //probably not required
$dialog->syncDialog($this->tanMechanism, $this->tanMediaName);
$dialog->endDialog();
$dialog->initDialog($this->tanMediaName);
$message = $this->getNewMessage(
$dialog,
array(new HKSPA(3), $this->createHKTAN(4)),
array(AbstractMessage::OPT_PINTAN_MECH => $this->getUsedPinTanMechanism($dialog))
);
$this->logger->info('');
$this->logger->info('HKSPA (SEPA accounts) initialize');
$result = $dialog->sendMessage($message, null, $tanCallback);
$this->logger->info('HKSPA end');
$sepaAccounts = new GetSEPAAccounts($result->rawResponse);
return $sepaAccounts->getSEPAAccountsArray();
}
Hmm, und so:
$message = $this->getNewMessage( $dialog, array( new HKSPA(3) ), array() );
?
Hi, habe es so probiert und frage mich warum nicht einfach alle Banken gleich arbeiten können... Naja es funktionierte so leider auch nicht..
SYNC initialize
> NACHRICHT
< NACHRICHT
[HIRMG] 3060: Bitte beachten Sie die enthaltenen Warnungen/Hinweise.
[HIRMS] 0020: Dialog initialisiert.
[HIRMS] 3050: BPD nicht mehr aktuell, aktuelle Version enthalten.
[HIRMS] 3920: Verfügbare TAN-Verfahren?
[HIRMS] 3076: Starke Kundenauthentifizierung nicht notwendig.
Received system id: <ID>
Received dialog id: <ID>
Supported TAN mechanisms: mobileTAN-Verfahren (901), photoTAN-Verfahren (902)
SYNC end
END initialize
> NACHRICHT
< NACHRICHT
[HIRMG] 0010: Nachricht entgegengenommen.
[HIRMG] 0100: Dialog beendet.
Resetting dialog ID and message number count
END end
DIALOG initialize
Registered product: <ID> 1.0
> NACHRICHT
< NACHRICHT
[HIRMG] 0010: Nachricht entgegengenommen.
[HIRMS] 0030: TAN-Eingabe erforderlich.
Received dialog ID: <ID>
DIALOG end
HKSPA (SEPA accounts) initialize
> NACHRICHT
< NACHRICHT
[HIRMG] 9050: Die Nachricht enthaelt Fehler.
[HIRMG] 9800: Dialog abgebrochen
[HIRMG] 9340: Ungueltige Auftragsnachricht?
[HIRMS] 9010: Auftrag wegen genereller Fehler in Auftragsnachricht nicht verarbeitet.
Request Failed: Auftrag wegen genereller Fehler in Auftragsnachricht nicht verarbeitet. (9010); Die Nachricht enthaelt Fehler. (9050); Dialog abgebrochen (9800); Ungueltige Auftragsnachricht? (9340)
Request Failed: Auftrag wegen genereller Fehler in Auftragsnachricht nicht verarbeitet. (9010); Die Nachricht enthaelt Fehler. (9050); Dialog abgebrochen (9800); Ungueltige Auftragsnachricht? (9340)
Ja, das verstehe ich auch nicht. Hast du schon probiert, ob es mit Hibiscus (https://www.willuhn.de/products/hibiscus/) funktioniert?
Habe es jetzt einmal probiert. Beim importieren der Konten fragt er nach einer TAN. Dort habe ich jedoch zus#tzlich noch die "Kundenkennung" aka. meine Kundennummer von Comdirect angegeben, falls das relevant ist (was ich aber vor dem PSD2 Update auch nicht gemacht hatte)
Ok, dann schau doch bitte mal im HBCI-Log (im Menü: Hibiscus -> Erweitert) nach, was der Unterschied zu phpFinTS ist.
Interessant. Wollte es heute vergleichen und siehe da, das Callback wird gecalled! Habe das Callback nun wieder entfernt und siehe da: Ich brauche keine TAN mehr ;)
Jetzt kommt die TAN Eingabe erst bei Statements (Wie gewollt) .. Ich vermute die Comdirect hat da etwas umgestellt, denn am Code habe ich nichts verändert.
Danach habe ich geupdated. bekomme nach PIN Eingabe jedoch jedoch nun die Ausgabe "Unbekannter Aufbau"
Die Datensätze der letzten 90 Tage kann ich jedoch ohne TAN abrufen.
Ok, wegen dem unbekannten Aufbau: Bitte vergleiche das Log aus phpFinTS mit dem Log von Hibiscus :wink:
Hallo zusammen,
vielen Dank für die vielen Infos und Details und die bisherige Arbeit. Bin in einem Node Projekt auf das gleiche Problem gestoßen.
Dieser Thread hier beschreibt die möglichen Ursachen (doppel 3920) ziemlich gut: https://homebanking-hilfe.de/forum/topic.php?t=23251
Moin,
Da der Laden dicht gemacht wird, macht es glaube ich keinen Sinn hier noch Arbeit zu investieren.
Danke für eure Hilfe!
Hallöchen,
erstmal ein Lob für die aktive Arbeit an diesem Projekt! Besonders jetzt zur PSD2 Einführung!
Bei der Comdirect funktioniert der aktuelle Master-Stand noch nicht, man erhält die Fehlermeldung "Dialog abgebrochen". Diese Fehlermeldung kommt beim abrufen der getSEPAAccounts() Funktion. Eine Mobil-Tan wird von der Comdirect generiert. zugesendet und das Konto nach 5 Versuchen gesperrt (Ist mir schon 2 mal passiert...) Ist das Problem bekannt und überschneidet es sich ggf. schon mit anderen offenen Issues?
Ich sehe z.B. hier, dass extra Anpassungen für die Comdirect Bank gemacht werden mussten.
Wenn es noch nicht bekannt ist, kann ich später noch mehr Informationen bereitstellen, was die Log ausspuckt.