am 30.10.2020 12:48
Hallo,
ich implementiere derzeit die REST-API in mein System, um automatisiert prüfen zu könne, ob bestimmte Rechnungen bezahlt wurden. Super, dass sich das mit der REST-API umsetzen lässt.
Der Autnehtifizierungsprozess mit den fünf Schritten (2.1 bis 2.5) funktioniert auch soweit und ich kann die Umsätze abrufen. Problematisch ist bisher lediglich, dass ich die Aktivierung der Session-TAN (Schritt 2.3) manuell aufrufen muss, nachdem ich die Freigabe in der comdirect App getätigt habe (ich nutze P_TAN).
Wenn ich den Schritt 2.3 ausführe, bevor ich die Freigabe in der App getätigt habe, bekomme ich eine Fehlermeldung (ist soweit ja auch richtig). Wenn den Schritt aber anschließend wiederhole, nachdem ich die Freigabe erteilt habe, dann fuktioniert es nicht mehr. Mache ich hier etwas falsch bzw. wie sollte man hier verfahren. Woher soll mein System wissen, wann die Freigabe erfolgt ist (gibt es hier die Möglichkeit einen Websoccet einzurichten?) Oder muss das Manuel durch den User eingegeben werden?
Ich hatte einfach gedacht, Schritt 2.3 in Abstand von x Sekunden durchzuführen, biss die Freigabe erfolgt.
Danke vorab für die Antwort.
Beste Grüße
Christof
Gelöst! Gzum hilfreichen Beitrag.
am 30.10.2020 16:21
am 30.10.2020 16:21
Hallo @Christof.K,
herzlich willkommen in unserer Community.
Ein super Anwendungsfall – genau für sowas stellen wir die comdirect REST API unseren Kunden zur Verfügung!
Du nutzt offenbar P_TAN_PUSH? P_TAN wäre das PhotoTAN-Verfahren. Im ersten Schritt 2.3 Anlage Validierung einer Session-TAN erzeugst du eine TAN-Challenge, die in deiner App erscheint. Erst nach dem Freigeben in der App darf der Schritt 2.4 Aktivierung einer Session-TAN durchgeführt werden.
Wir arbeiten übrigens daran, Schnittstellen zur Verfügung zu stellen, mit der dein Client herausfinden kann, ob die PushTAN in der App freigegeben wurde. Bis dahin muss dein Client zur Sicherheit einige Sekunden bis zum Schritt 2.4 warten, damit die Freigabe in der App inzwischen sicher beim Server angekommen ist. Da im Schritt 2.3 eine TAN-Challenge erzeugt wird, die unbedingt im Schritt 2.4 im Header „x-once-authentication-info“ mitgeschickt werden muss, gehören 2.3 und 2.4 also zusammen und es ist damit nicht möglich, mehrfach den Schritt 2.4 durchzuführen. Wenn du das erste Mal den Schritt 2.4 durchführst und der Server hat das Freigeben in der App noch nicht empfangen, dann wird die Challenge entwertet.
Viele Grüße
Mario
am 03.11.2020 21:34
Vielen Dank für die Antwort. Das ist genau das Verhalten, dass ich auch beobachte. Ich lasse jetzt Schritte 2.1 bis 2.3 hintereinanderlaufen und der User muss nach dem bestätigen der P_TAN_PUSH manuell die Schritte 2.4 und 2.5 starten bevor er einen Kontorundruf (Schritt 4.3) startet. Funktioniert soweit auch ganz gut bisher.
Eine Schnittstelle zur Prüfung, ob die TAN bestätigt wurde, wäre aber natürlich noch besser, dann könnte man es noch ein wenig besser gestalten. Bin gespannt auf eure Weiterentwicklung.
Beste Grüße
Christof
am 02.01.2021 20:04
Hallo und ein gesundes neuen Jahr an die Entwickler!
Gibt es beim Schritt 2.4 inzwischen Fortschritte?
Danke - Sven
am 04.01.2021 16:21
Hallo @ZwenAusZwota,
auch dir ein gutes Neues und herzlich willkommen in der Community!
Wir haben hierzu leider keine Neuigkeiten.
Viele Grüße
Jessica
am 30.01.2021 18:32
Hallo zusammen..
genau das Problem habe ich auch gerade. Ich programmiere in C++ mit Qt und wollte auf eine Antwort der Api warten, aber es kommt wohl nach 2.3 direkt ein Status Code 201 zurück und dann weiss ich auch nicht weiter. Baue ich ein Sleep von ein paar Sekunden ein und gebe während dessen den Auftrag per PushTan frei, klappt es, bin ich zu langsam, kommt ein HTTP-Error 400. Gibt es nun schon eine Möglichkeit für den Client herauszufinden, ob eine Freigabe getätigt wurde?
Viele Grüße,
Ray..
am 06.03.2021 14:04
Hi @Christof.K ,
ich hatte das gleiche Problem und es gibt mittlerweile eine Lösung.
Als Antwort auf Schritt 2.3 erhaeltst du einen Header "x-once-authentication-info".
In diesem Header stehen die verschiedenen TAN Typen und zusaetzlich ein JSON Objekt mit dem Namen "link". Dort findest du einen Link und weitere Informationen wie du den Status der TAN Aktivierung prüfen kannst. In dem GET Request musst du weiterhin dein Bearer Token und die x-http-request-info aus den vorangegangen Schritten mitgeben. Als Antwort erhältst du etwa sowas:
{ "authenticationId": "XXXXXXXXXXXXXXXXX", "status": "AUTHENTICATED" } oder { "authenticationId": "XXXXXXXXXXXXXXXXX", "status": "PENDING" }
In meinem Anwendungsfall frage ich den Status in regelmäßigen Abständen ab. Das funktioniert soweit gut.
Ich hoffe das hilft Dir.
@ehemaliger NutzerIn den API Docs ist das leider noch nicht dokumentiert. Bitte an die Entwickler weitergeben 🙂
Viele Gruesse,
Joshua
am 08.03.2021 09:00
Hallo @jsattler,
vielen Dank für deinen Hinweis.
Ich habe das gerne an meine Kollegen weitergegeben. 🙂
Beste Grüße
Jan-Ove
am 08.03.2021 09:39
Hallo @jsattler,
vielen lieben Dank für den Hinweis. Ich werde es direkt mal probieren.
Zur Zeit muss die Abfrage immer noch durch einen weiteren Klick fortgeführt werden. Das funktioniert zwar sehr gut, ist aber dennoch entwas nervig.
Beste Grüße
Christof
am 08.03.2021 19:42
Hi @SMT_Jan-Ove,
seit einem Update der PhotoTAN App (von heute?) funktioniert das Abrufen des "Aktivierungs" Status, wie ich zuvor beschrieben habe, nicht mehr. Kannst Du vielleicht mal nachfragen, ob es da einen Zusammenhang gibt? Wurde an der Schnittstelle etwas geaendert? Es hat gestern Nachmittag/Abend noch funktioniert, jetzt nicht mehr.
Vielen Dank vorab!
Joshua