3DS2 - Authentification Frictionless, avec 3DS Method
Pour tester ce scénario, utilisez un des numéros de carte ci-dessous :
Carte | Date de validité | Marque |
---|---|---|
4970110000001029 | Au choix | VISA |
5100010000000114 | Au choix | MASTERCARD |
375900000010007 | Au choix | AMEX |
Cinématique des échanges
1. Appel initial au service PCI/Charge/Authenticate avec une carte enrôlée 3DS2.
{ "amount":"9990", "currency":"EUR", "transactionCategory":"PAYMENT", "productType":"GOODS_OR_SERVICE_PURCHASE", "merchant": { "mid":"9876357" }, "paymentForm": { "expiryMonth":"09", "expiryYear":"22", "networkPreference":"VISA", "pan":"4970110000001029" }, "device": { "acceptHeader":"text/html", "colorDepth":"32", "deviceType":"BROWSER", "ip":"69.89.31.226", "javaEnabled": true, "language":"FR", "screenHeight":"768", "screenWidth":"1258", "timeZoneOffset":"-120", "userAgent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101" }, "protocolRequest": { "name":"THREEDS", "version":"2", "challengePreference":"NO_PREFERENCE" } }
2. Retour avec une instruction FINGERPRINT (3DS Method).
{ "webService":"PCI/Charge/Authenticate", "version":"V4", "applicationVersion":"5.22.0", "serverDate":"2021-05-03T15:02:56+00:00", "ticket":"c295ad67f65341529c1db6760df400fd", "applicationProvider":"", "metadata":null, "status":"SUCCESS", "mode":"TEST", "serverUrl":"https://static.payzen.eu", "_type":"V4/WebService/Response", "answer":{ "id":"b5bdf588-df35-4d56-8852-a68bd9c20147", "protocol":{ "name":"THREEDS", " version":"2.1.0", "network":"VISA", "challengePreference":"NO_PREFERENCE", "simulation":true, "_type":"V4/Charge/Authenticate/Protocol" }, "value":{ "instructionType":"FORM", "name":"FINGERPRINT", "timeout":10, "target":{ "element":"IFRAME", "visible":false, "_type":"V4/Charge/Authenticate/InstructionTarget" }, "http":{ "method":"POST", "url":"https://acs.sg.com/acs/v2/3dsMethod", "body":{ "threeDSMethodData":"eyJ0aHJlZURzTW..." }, "_type":"V4/Charge/Authenticate/HttpRequest" }, "_type":"V4/Charge/Authenticate/AuthenticationInstruction" }, "_type":"V4/AuthenticationResponseData" } }
3. Redirection vers l’ACS dans l’iFrame invisible, chargement et exécution du code JavaScript de fingerprint de l’ACS.
Les caractéristiques de l'Iframe sont données dans l'objet answer.value.target . Le formulaire à afficher dans l'Iframe est décrit dans l'objet answer.value.http .
4. Retour via le navigateur avec un résultat d’instruction.
{ "eventName":"LYRA_AUTH_INSTRUCTION_RESULT", "value":{ "name":"FINGERPRINT", "value":"eyJjZXJ0aWZpY2F0Z...", "protocol":{ "name":"THREEDS", "version":"2.1.0", "network":"VISA", "challengePreference":"NO_PREFERENCE", "simulation":true } } }
5. Nouvel appel au service PCI/Charge/Authenticate en transmettant ce résultat.
{ "amount":"9990", "currency":"EUR", "transactionCategory":"PAYMENT", "productType":"GOODS_OR_SERVICE_PURCHASE", "merchant": { "mid":"9876357" }, "paymentForm": { "expiryMonth":"09", "expiryYear":"22", "networkPreference":"VISA", "pan":"4970110000001029" }, "device": { "acceptHeader":"text/html", "colorDepth":"32", "deviceType":"BROWSER", "ip":"69.89.31.226", "javaEnabled": true, "language":"FR", "screenHeight":"768", "screenWidth":"1258", "timeZoneOffset":"-120", "userAgent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101" }, "protocolRequest": { "name":"THREEDS", "version":"2", "challengePreference":"NO_PREFERENCE" }, "id":"b5bdf588-df35-4d56-8852-a68bd9c20147", "instructionResult": { "name":"FINGERPRINT", "protocol": { "name":"THREEDS", "network":"VISA", "version":"2.1.0", "challengePreference":"NO_PREFERENCE", "simulation": 1 }, "value":"eyJjZXJ0aWZpY2F0Z..." } }
6. Retour du serveur de la plateforme de paiement avec le résultat final d’authentification.
{ "webService":"PCI/Charge/Authenticate", "version":"V4", "applicationVersion":"5.22.0", "serverDate":"2021-05-03T15:02:58+00:00", "ticket":"c295ad67f65341529c1db6760df400fd", "applicationProvider":"", "metadata":null, "status":"SUCCESS", "mode":"TEST", "serverUrl":"https://static.payzen.eu", "_type":"V4/WebService/Response", "answer":{ "id":"b5bdf588-df35-4d56-8852-a68bd9c20147", "protocol":{ "name":"THREEDS", "version":"2.1.0", "network":"VISA", "challengePreference":"NO_PREFERENCE", "simulation":true, "_type":"V4/Charge/Authenticate/Protocol" }, "value":{ "authenticationType":"FRICTIONLESS", "authenticationId":{ "authenticationIdType":"dsTransId", "value":"ff405f73-9b56-4cfc-b394-31a49beb4cac", "_type":"V4/Charge/Authenticate/AuthenticationId" }, "authenticationValue":{ "authenticationValueType":"CAVV", "value":"+kAr/o8S0DxgGYkz7QQHZCw8V5k=", "_type":"V4/Charge/Authenticate/AuthenticationValue" }, "status":"SUCCESS", "commerceIndicator":"05", "extension":{ "authenticationType":"THREEDS_V2", "threeDSServerTransID":"b5bdf588-df35-4d56-8852-a68bd9c20147", "dsTransID":"ff405f73-9b56-4cfc-b394-31a49beb4cac", "acsTransID":"1f1202cc-c578-4b3c-84ca-cd9fd79d09d0", "_type":"V4/Charge/Authenticate/AuthenticationResultExtensionThreedsV2" }, "reason":{ "_type":"V4/Charge/Authenticate/AuthenticationResultReason" }, "_type":"V4/Charge/Authenticate/AuthenticationResult" }, "_type":"V4/AuthenticationResponseData" } }