Hilfe
abbrechen
Suchergebnisse werden angezeigt für 
Stattdessen suchen nach 
Meintest du: 

REST API Schritt 2.4 Aktivierung einer Session-TAN

Christof.K
Autor ★
8 Beiträge

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

21 ANTWORTEN

Christof.K
Autor ★
8 Beiträge

Hallo,

 

es funktioniert wunderbar wie von jsattler als Antwort auf meinen Beitrag beschrieben.

Ich habe einfach eine Schleife geschrieben, die jede Sekunde eine Anfrage senden und den Status abruft. Wenn der Status von "PENDING" auf "AUTHENTICATED" wechselt wird die Schleife verlassen und Schritt 2.4 wird durchgeführt.

 

In PHP (Laravel) sieht es bei mir dann so aus.

// Waiting for TAN input on device
for ($i = 1; $i < 180; $i++) {

$response23loop = Http::withHeaders(['x-http-request-info' => '{"clientRequestId":{"sessionId":"' . $this->session_id . '","requestId":"023121212"}}'])
->withToken($this->access_token)->acceptJson()->get('https://api.comdirect.de' . $this->url)->json($key = null);

if ($response23loop['status'] == 'AUTHENTICATED') {

return true;
};

sleep(1);
}

$this->url ist die url die man von der API in Schritt 2.3 als Antwort erhält.

 

Vielleicht hilft es ja. Nach 180 Zyclen (etwas mehr als drei Minuten) wird die Schlefe mit einer Fehlermeldung verlassen.

 

Dokumentation der API wurde leider nicht angepasst und ist leider sehr Lückenhaft.

 

Beste Grüße

Christof

MoritzG
Autor ★
3 Beiträge

Super, danke!

Damit hat sich das Problem für mich gelöst.

Das sollte das Comdirect-team bald in die Doku aufnehmen, da es ein ziemlich wichtiger Punkt ist, wie ich finde.