am 28.03.2021 17:13
Die Variante, sich die Grafik direkt in Postamt wie in der Postman-Collection Dokumentation unter Punkt 3. TAN-Handing photoTAN (Stand Feb. 2020) anzeigen zu lassen, funktioniert nicht unter der aktuellen Windows / MacOS Postman Version (Win und MacOS auf aktuellem Supportstand).
Nach dem POST gemäß der 2.3 Anlage "Validierung einer Session-TAN" steht im Header unter "x-once-authentication-info" die Info "href":"/api/session/v1/authentications/E74600742864....." ...unter dem "Body" lässt sich aber nicht die Grafik anzeigen, sobald man den Button "Visualize" klickt. Die Fehlermeldung lautet "...Can't visualise the response..."
Können Sie bitte den Fehler korrigieren.
Mit freundlichen Grüßen,
Robert Prinz
am 29.03.2021 15:44
am 29.03.2021 15:44
Hallo @robprinz,
du hast die Push-Funktion der photoTAN aktiviert, dafür ist keine Grafik notwendig und du musst in deiner photoTAN App die Transaktion freigeben, indem du den Pfeil von links nach rechts wischt.
Um die einzuscannende Grafik zu erhalten, musst du beim Schritt „2.3 Anlage Validierung einer Session-TAN“ den Request Header x-once-authentication-info:{"typ":"P_TAN"} mitschicken. Dann bekommst du in der Response den Code, der als photoTAN-Grafik angezeigt und eingescannt werden kann.
Wir empfehlen dir aber das photoTAN-Push-Verfahren.
Viele Grüße
Mario
am 30.03.2021 15:18
Hallo Mario,
vielen Dank für das Feedback, es funktioniert mit der photoTAN optimal. Könnt Ihr bitte in der Dokumentation "comdirect_REST_API_Postman_Collection_readme.pdf", "Anleitung zur Postman-Collection" vom Feb. 2020 unter dem Kapitel "3. TAN-Handling photoTAN" entsprechend anpassen. *
Ich habe noch eine Frage zum comdirect_REST_API. Ich suche nach der Anwendung, um eine "Quote" zu erfragen (Quote, Delayed Quote bzw. Real-time Quote), bevor eine Order platziert wird (Quote Anfrage unabhängig von Order). Falls möglich, wie muss der Request / Query aussehen.
Viele Grüße,
Robert
* Es steht dort: "Sollten Sie das photoTAN-Verfahren nutzen, haben Sie die Möglichkeit, sich die Grafik direkt in Postman anzeigen zu lassen. Klicken Sie hierfür nach dem Abruf der Schnittstelle 2.3 Anlage Validierung einer Session-TAN innerhalb des Response auf „Body“ und anschließend auf „Visualize“."
am 30.03.2021 15:49
Hallo @robprinz,
vielen Dank für deinen Hinweis. Wir haben das gerne an die Fachabteilung weitergeleitet.
Gruß
Erik
am 30.03.2021 19:16
Hallo Mario,
ich hatte in meiner letzten Information noch eine Frage beigelegt, und zwar lautete der Text: "Ich habe noch eine Frage zum comdirect_REST_API. Ich suche nach der Anwendung, um eine "Quote" zu erfragen (Quote, Delayed Quote bzw. Real-time Quote), bevor eine Order platziert wird (Quote Anfrage unabhängig von Order). Falls möglich, wie muss der Request / Query aussehen."
Wie muss der Request / Query via comdirect_REST_API aussehen?
Viele Grüße,
Robert
am 31.03.2021 08:11
Hallo @robprinz.
danke für den Hinweis für die Anleitung zur Postman-Collection. Ein Quote kann mit den in der Dokumentation unter Kapitel 8 Resource QUOTE beschriebenen Endpunkten angefordert werden. Am Ende der Doku gibt es dafür auch Beispiele, ebenso kann die Postman Collection dafür genutzt werden. Welche Handelsplätze Quotes unterstützen, ist mit dem order dimensions-Call wie unter Punkt 7.1.1 beschrieben ermittelbar. Unter den ordertypes muss hier „QUOTE“ auftauchen.
Beste Grüße
Jan-Ove
am 06.04.2021 11:22 - zuletzt bearbeitet am 06.04.2021 15:38 von SMT_Jan-Ove
am 06.04.2021 11:22 - zuletzt bearbeitet am 06.04.2021 15:38 von SMT_Jan-Ove
Hallo,
Ich habe zwei weitere Themenkomplexe, Applikation Postman (1) vs. „PHP -cURL“ Code Verhalten sowie der Aufruf einer Quote (2), (Step 8. Quote, konkret Step 8.11, 8.1.1 Anlage Validierung Quote Request-Initialisierung).
Die Anwendung comdirect REST API (April) läuft unter macOS, Postman und macOS aktuellste Version, Scripte aus Postman „Code snippet“ im „PHP -cURL“ Code.
Themenkomplex (1):
1. Postman: die Steps “2.1 OAuth2 Resource Owner Password Credentials Flow" bis "2.5 OAuth2 CD Secondary-Flow“ funktionieren.
2. „PHP -cURL“ Code mit den entsprechend korrekten Parametern (Zugangsnummer, PIN etc.) sind erfolgreich inkl. Step "2.4 Aktivierung einer Session-TAN“ mittels PHP )1. Im Step "2.5 OAuth2 CD Secondary-Flow“ kommt die Fehlermeldung „{"error":"invalid_grant","error_description":"Bad token“}. photoTAN war erfolgreich.
Eigentlich sollte im Step 2.4 bzw. 2.5 der neue „access_token“ vorliegen, um Account-, Depot-Daten etc. Abfragen zu können.
Was ist hier anders im Vergleich zu 1. Postman? Ist der angebotene „PHP -cURL“ Code korrekt?
Themenkomplex (2): Bei der Quote Anfrage mit den vorliegenden Werten, wobei die depotId aus dem Step "5.1.1 Abruf Depots“ verwendet wird, wird die Meldung einer falschen „depotId“ angezeigt. Die „venuedId“ steht für Tradegate (venueUUID_Tradegate_LT).
Request:
var body = {
"depotId" : "{{-entfernt-}}",
"orderType" : "QUOTE",
"side" : "BUY",
"instrumentId" : "555200",
"quantity" : {"value":"1", "unit": "XXX"},
"venueId" : "{{-entfernt-}}",
};
var body_str = JSON.stringify(body);
pm.environment.set('quote_request_body', body_str);
Response:
{
"code": "request.object.invalid",
"messages": [
{
"severity": "ERROR",
"key": "fehler_ungueltigesfeld_depotid",
"message": "Bitte geben Sie eine gültige DepotID an.",
"args": {},
"origin": []
}
]
}
)1 PHP Version: PHP is included in macOS for compatibility with legacy software.
Future versions of macOS will not include PHP.
PHP 7.3.24-(to be removed in future macOS) (cli) (built: Dec 21 2020 21:33:25) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engi
Grüße,
Robert
am 06.04.2021 15:39
Hallo @robprinz,
ich war einmal so frei, die depotid und venueid zu entfernen. Anbei die Antworten zu deinen Fragen.
Zum Thema 1: In der Postman-Collection passieren auch einige Dinge in den Reitern „Pre-request Script“ und „Test“. Hilfreich ist es deswegen, die Konsolenausgabe in Postman anzuschauen (View -> Show Postman Console) und die Ausgabe Schritt für Schritt mit der Implementierung zu vergleichen. Es könnte sein, dass in Schritt 2.5 nicht der richtige Token verwendet wurde. Für das Feld „token“ muss der Wert vom Feld „access_token“ aus dem Ergebnis von Schritt 2.1 verwendet werden.
Zum Thema 2: Die geschweiften Klammern für die Felder depotId und venueId müssen nicht mitgeschickt werden, wenn die ID selbst verwendet wird.
Ich hoffe, das hilft dir weiter. 🙂
Beste Grüße
Jan-Ove
am 06.04.2021 17:34 - zuletzt bearbeitet am 08.04.2021 09:29 von SMT_Jan-Ove
am 06.04.2021 17:34 - zuletzt bearbeitet am 08.04.2021 09:29 von SMT_Jan-Ove
Hallo,
Zum Thema 1: der "access_token" ändert sich, im Schritt 2.1 und 2.4 ist er gleich (access_token / Authorization), im Schritt 2.5 ist er von 2.1 und 2.4 verschieden. Anbei ein Auszug dazu (Postman Console), siehe nach Auszug nach Thema 2.
Aus diesem Grund führt der Request per PHP Code zu einem "bad token", da ich hier den Token aus Schritt 2.1 verwende (agiert da Postman intern anders, sodass Postman den neuen Token einsetzt?).
Zum Thema 2: die Klammern sind zu entfernen, es dann.
Grüße,
Robert
Postman Console Auszug:
PATCH https://api.comdirect.de/api/session/clients/user/v1/sessions/0BE5674AEC2040DD811A1670E9BF2FC1. // 2.4 Aktivierung einer Session-TAN
200
99 ms
PATCH /api/session/clients/user/v1/sessions/-entfernt-HTTP/1.1
Accept: application/json
Authorization: Bearer -entfernt-
x-http-request-info: {"clientRequestId":{"sessionId":"-entfernt-","requestId":"644903954"}}
Content-Type: application/json
x-once-authentication-info: {"id":"ID"}
x-once-authentication: 000000
User-Agent: PostmanRuntime/7.26.10
Postman-Token: Postman-Token
Host: api.comdirect.de
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Content-Length: 140
Cookie: qSession=-entfernt-
{
"identifier" : "-entfernt-",
"sessionTanActive" : true,
"activated2FA": true
}
HTTP/1.1 200 200
Date: Mon, 05 Apr 2021 17:49:28 GMT
Server: Apache
X-Content-Type-Options: nosniff
Cache-Control: no-cache, private, must-revalidate
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Frame-Options: sameorigin
X-XSS-Protection: 1; mode=block
Content-Type: application/json;charset=UTF-8
Content-Language: de-DE
Vary: Accept-Encoding
Content-Encoding: gzip
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
{"identifier":"-entfernt-","sessionTanActive":true,"activated2FA":true}
POST https://api.comdirect.de/oauth/token. // 2.5 OAuth2 CD Secondary-Flow
200
81 ms
POST /oauth/token HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Accept: application/json
User-Agent: PostmanRuntime/7.26.10
Postman-Token: Postman-Token
Host: api.comdirect.de
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Content-Length: 161
Cookie: qSession=-entfernt-
client_id=CLIENT_ID&CLIENT_SECRET&grant_type=cd_secondary&token=-entfernt-
HTTP/1.1 200 200
Date: Mon, 05 Apr 2021 17:49:41 GMT
Server: Apache
Cache-Control: no-store
Pragma: no-cache
x-content-type-options: nosniff
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Frame-Options: sameorigin
X-XSS-Protection: 1; mode=block
Content-Type: application/json;charset=UTF-8
Content-Language: de-DE
Vary: Accept-Encoding
Content-Encoding: gzip
Keep-Alive: timeout=15, max=96
Connection: Keep-Alive
Transfer-Encoding: chunked
{"access_token":"-entfernt-","token_type":"bearer","refresh_token":"-entfernt-","expires_in":599,"scope":"BANKING_RW BROKERAGE_RW MESSAGES_RO REPORTS_RO SESSION_RW","kdnr":"KDNR","bpid":BPID,"kontaktId":KONTAKTID}
am 08.04.2021 09:26
Hallo @robprinz,
bitte niemals persönliche IDs (Access und Refresh Tokens, SessionIds usw) hier in der Community posten!
Zu deinem Konsolenauszug: Der Access-Token aus dem Ergebnis von 2.5 kann dann verwendet werden, um weitere Schnittstellen aufzurufen. Der Token der Schritte davor kann nur für den CD_Secondary Flow verwendet werden, also für die Eingabe des zweiten Faktors. Genauso macht die Postman Collection es auch.
Beste Grüße
Jan-Ove