Acest ghid prezintă toți pașii care sunt necesari pentru a adăuga 3DS la integrarea gateway folosind API de autentificare, inclusiv cum să utilizați rezultatul autentificării pentru a procesa o plată.
Operațiunea Initiate Authentication este utilizată pentru a determina versiunile 3DS disponibile pentru dvs. în cazul unui anumit card, care pot depinde de:
Operațiunea permite, de asemenea, efectuarea oricăror activități în fundal (de ex., un apel de metodă ACS) cu scopul colectării de date suplimentare privitoare la plătitor, pentru a permite o operațiune Authenticate Payer ulterioară.
Puteți iniția autentificarea completând următoarele câmpuri în solicitarea Initiate Authentication:
Parametru | Existență | Descriere |
---|---|---|
session.id sau sourceOfFunds.provided.card.* sau sourceOfFunds.token |
Obligatoriu | Detaliile cardului utilizat pentru plată. Rețineți că puteți utiliza și simboluri din rețea și simboluri de plată pentru dispozitive ca sursă de fonduri în autentificarea plătitorului. Pentru mai multe informații, consultați întrebările frecvente. |
order.currency |
Obligatoriu | Moneda comenzii. |
transaction.id |
Obligatoriu | Un identificator unic pentru autentificarea plății. |
order.id |
Obligatoriu | Identificatorul unic al comenzii. |
authentication.channel |
Obligatoriu | Canalul pe care este inițiată solicitarea de autentificare. Puteți specifica unul dintre următoarele elemente:
|
authentication.purpose |
Opțional | Acest câmp este setat implicit la „PAYMENT_TRANSACTION” pentru a indica faptul că autentificarea trebuie efectuată la procesarea unei plăți cu cardul. Cu toate acestea, puteți specifica un scop diferit, pentru a indica autentificarea fără plată. Consultați Trimiterea unei solicitări de autentificare fără plată. |
authentication.acceptVersions |
Opțional | Versiunea 3DS acceptată de dvs. pentru această plată. Dacă nu specificați o versiune, vor fi acceptate ambele versiuni, 3DS1 și 3DS2. Gateway-ul utilizează 3DS2 (dacă această opțiune este acceptată de emitent și de card). Dacă nu este disponibilă nicio versiune, autentificarea nu va continua. |
order.merchantCategoryCode |
Opțional | Furnizați codul de categorie comerciant dacă doriți să suprareglați valoarea implicită configurată pentru legătura dvs. de achizitor. |
Pentru a permite finalizarea oricărui proces de apel de metodă ACS înainte de a încerca operațiunea Authenticate Payer, este recomandat să trimiteți operațiunea Initiate Authentication cât mai devreme în cadrul procesului de validare și să reacționați imediat la răspuns. În mod normal, acest lucru va avea loc atunci când plătitorul termină de introdus numărul de card pe pagina de validare (de exemplu, evenimentul „onBlur” din câmpul de introducere Număr card sau atunci când selectează un card dintre cele înregistrate în contul său, dacă site-ul dvs. are capabilități de înregistrare a cardurilor). Așteptați cel puțin 10 secunde pentru finalizarea apelului de metodă ACS.
Atunci când trimiteți solicitarea Authenticate Payer înainte de finalizarea apelului ACS Method, solicitarea Authenticate Payer continuă, dară răspunsul Authenticate Payer indică faptul că indicatorul de finalizare a metodei este setat la „false”. Dacă ACS al emitentului a finalizat cu succes apelul de metodă pentru a obține informații suplimentare despre browserul plătitorului, indicatorul de finalizare a metodei din răspunsul Authenticate Payer va avea valoarea „true”.
Gateway-ul returnează următoarele câmpuri-cheie în răspunsul la operațiunea Initiate Authentication:
authentication.version
: Dacă autentificarea EMV 3DS este disponibilă pentru plătitor, se returnează 3DS2. În caz contrar, se va returna NONE
.authentication.3ds2.methodSupported
: Dacă versiunea 3DS2 este disponibilă, iar ACS-ul emitentului acceptă apelurile de metodă, câmpul are valoarea SUPPORTED. Apelul de metodă poate fi utilizat de ACS pentru a colecta data suplimentare înainte de solicitarea de autentificare, pentru a mări probabilitatea ca autentificarea fluidizată să fie disponibilă. Apelul de metodă este declanșat într-un cadru iFrame ascuns, respectiv invizibil pentru plătitor. De asemenea, acesta nu declanșează funcția callback după finalizare.transaction.authenticationStatus
: Consultați acest câmp dacă doriți mai multe detalii despre starea de autentificare.response.gatewayRecommendation
: Acest câmp vă permite să stabiliți pasul următor. Rețineți că această recomandare se bazează numai pe regulile 3DS de filtrare a tranzacțiilor, configurate de către dvs. sau furnizorul dvs. de servicii de plată.response.gatewayRecommendation |
Pasul următor |
---|---|
DO_NOT_PROCEED | Nu continuați autentificarea 3DS a cardului, dar poate doriți să continuați plata fără datele 3DS. De asemenea, puteți oferi plătitorului opțiunea de a încerca o altă metodă de plată. |
PROCEED | Puteți continua cu autentificarea plătitorului folosind operațiunea Authenticate Payer. |
authentication.redirect.html
: Introduceți conținutul acestui câmp pe pagina afișată plătitorului. În acest scop, adăugați conținutul text într-un element DIV ascuns și specificați identificatorul scriptului în DOM HTML. Acest lucru va determina crearea și postarea automată a formularului. De exemplu,
div.innerHtml= response.authentication.redirect.html; eval(document.getElementById('initiate-authentication-script').text)
URL | https://egenius.unicredit.ro/api/rest/version/<version>/merchant/<your_merchant_ID>/order/<your_order_ID>/transaction/<your_transaction_ID> |
Metoda HTTP | PUT |
{ "authentication":{ "acceptVersions":"3DS1,3DS2", "channel":"PAYER_BROWSER", "purpose":"PAYMENT_TRANSACTION" }, "correlationId":"test", "order":{ "currency":"AUD" }, "sourceOfFunds":{ "provided":{ "card":{ "number":"<card_number>" } } }, "apiOperation":"INITIATE_AUTHENTICATION" }
{ "authentication": { "3ds2": { "directoryServerId": "A999999999", "methodCompleted": false, "methodSupported": "SUPPORTED", "protocolVersion": "2.1.0", "requestorId": "test40Field@S^2sfds2ID", "requestorName": "test40Field@S^2sfds2Name" }, "acceptVersions": "3DS1,3DS2", "channel": "PAYER_BROWSER", "purpose": "PAYMENT_TRANSACTION", "redirect": { "customizedHtml": { "3ds2": { "methodPostData": "eyJ0aHJlZURTTWV0aG9kTm90aWZpY2F0aW9uVVJMIjoiaHR0cHM6Ly9kbDAzYXNwYWxsMDN2Lm1wZ3NkZXYubWFzdGVyY2FyZC5pbnQvY2FsbGJhY2tJbnRlcmZhY2UvZ2F0ZXdheS9mOGIzNjQ5ZDRiOWU3OTg4M2M0ODE4MmRjZmRkY2JjYTAxMTE3MTc0ZTkxODRiODAzM2NkMzg3NTQ4MjlhMTRlIiwidGhyZWVEU1NlcnZlclRyYW5zSUQiOiJjYTdjMTU0YS1jZTZkLTRkNjYtYTc4My02MjdmZTcyMjQ4ZTEifQ==", "methodUrl": "<method_url>" } }, "html": "<div id=\"initiate3dsSimpleRedirect\" xmlns=\"http://www.w3.org/1999/html\"> <iframe id=\"methodFrame\" name=\"methodFrame\" height=\"100\" width=\"200\" > </iframe> <form id =\"initiate3dsSimpleRedirectForm\" method=\"POST\" action=\"<method_url>" target=\"methodFrame\"> <input type=\"hidden\" name=\"threeDSMethodData\" value=\"eyJ0aHJlZURTTWV0aG9kTm90aWZpY2F0aW9uVVJMIjoiaHR0cHM6Ly9kbDAzYXNwYWxsMDN2Lm1wZ3NkZXYubWFzdGVyY2FyZC5pbnQvY2FsbGJhY2tJbnRlcmZhY2UvZ2F0ZXdheS9mOGIzNjQ5ZDRiOWU3OTg4M2M0ODE4MmRjZmRkY2JjYTAxMTE3MTc0ZTkxODRiODAzM2NkMzg3NTQ4MjlhMTRlIiwidGhyZWVEU1NlcnZlclRyYW5zSUQiOiJjYTdjMTU0YS1jZTZkLTRkNjYtYTc4My02MjdmZTcyMjQ4ZTEifQ==\" /> </form> <script id=\"initiate-authentication-script\"> var e=document.getElementById(\"initiate3dsSimpleRedirectForm\"); if (e) { e.submit(); if (e.parentNode !== null) { e.parentNode.removeChild(e); } } </script> </div>" }, "version": "3DS2" }, "correlationId": "test", "merchant": "TEST3DS12AUTH", "order": { "authenticationStatus": "AUTHENTICATION_AVAILABLE", "creationTime": "2022-06-24T06:57:32.714Z", "currency": "USD", "id": "TEST4", "lastUpdatedTime": "2022-06-24T06:57:32.661Z", "merchantCategoryCode": "1234", "status": "AUTHENTICATION_INITIATED", "totalAuthorizedAmount": 0, "totalCapturedAmount": 0, "totalRefundedAmount": 0 }, "response": { "gatewayCode": "AUTHENTICATION_IN_PROGRESS", "gatewayRecommendation": "PROCEED" }, "result": "SUCCESS", "sourceOfFunds": { "provided": { "card": { "brand": "MASTERCARD", "fundingMethod": "CREDIT", "number": "512345xxxxxx0008", "scheme": "MASTERCARD" } }, "type": "CARD" }, "timeOfLastUpdate": "2022-06-24T06:57:32.661Z", "timeOfRecord": "2022-06-24T06:57:32.714Z", "transaction": { "amount": 0, "authenticationStatus": "AUTHENTICATION_AVAILABLE", "currency": "USD", "id": "1", "type": "AUTHENTICATION" }, "version": "67" }
Acolo unde răspunsul la operațiunea Initiate Authentication a indicat disponibilitatea autentificării (transaction.authenticationStatus=AUTHENTICATION_AVAILABLE) și după colectarea tuturor datelor privind plătitorul și plata, puteți trimite solicitarea Authenticate Payer. Aceasta trebuie invocată atunci când plătitorul face clic pe butonul „Plătiți acum” de pe pagina de validare.
Trimiteți această operațiune completând următoarele câmpuri.
Parametru | Existență | Descriere |
---|---|---|
session.id sau sourceOfFunds.provided.card.* sau sourceOfFunds.token |
Obligatoriu | Detaliile cardului utilizat pentru plată. |
order.amount |
Obligatoriu | Valoarea totală a comenzii. |
transaction.id |
Obligatoriu | Valoarea transaction.id trebuie să fie identică cu cea a operațiunii Initiate Authentication precedente. |
order.id |
Obligatoriu | Valoarea order.id trebuie să fie identică cu cea a operațiunii Initiate Authentication precedente. |
sourceOfFunds.provided.card.nameOnCard |
Opțional | Necesar dacă acceptați autentificări ITMX Local Switch EMVCo. |
sourceOfFunds.provided.card.number |
Opțional | Necesar dacă acceptați autentificări ITMX Local Switch EMVCo. |
sourceOfFunds.provided.card.expiry |
Opțional | Necesar dacă acceptați autentificări ITMX Local Switch EMVCo. |
authentication.redirectResponseUrl |
Opțional | Adresa URL către care doriți să redirecționați plătitorul după finalizarea procesului de autentificare a plătitorului. Trebuie să furnizați această adresă URL, exceptând cazul în care aveți certitudinea că nu va exista nicio interacțiune cu plătitorul. |
order.merchantCategoryCode |
Opțional | Dacă nu completați acest câmp, va fi utilizată valoarea implicită configurată în profilul dvs. de comerciant. |
device.browser |
Opțional | Este necesar dacă authentication.channel=PAYER_BROWSER. |
device.ipAddress |
Opțional | Este necesar dacă authentication.channel=PAYER_BROWSER, cu condiția de a fi exclus dacă acest lucru este necesar pentru respectarea legislației locale. Necesar dacă acceptați autentificări ITMX Local Switch EMVCo. Autentificările EMV 3DS acceptă adrese IPv4 și IPv6 din versiunea API 79. IPv6 este utilizat numai în autentificarea EMV 3DS și în nicio operațiune ulterioară Authorize, Pay sau alte operațiuni. |
Grupul de parametri device.browserDetails |
Opțional | Este necesar dacă authentication.channel=PAYER_BROWSER. |
Grupul de parametri billing.address |
Opțional | Este recomandat cu insistență să îl includeți în solicitarea dvs. în măsura în care acest lucru este posibil. |
Grupul de parametri shipping.address |
Opțional | Este recomandat cu insistență să îl includeți în solicitarea dvs. în măsura în care acest lucru este posibil. |
Grupul de parametri customer |
Opțional | Este recomandat cu insistență să îl includeți în solicitarea dvs. în măsura în care acest lucru este posibil. |
Gateway-ul returnează următoarele câmpuri-cheie în răspunsul la operațiunea Authenticate Payer:
transaction.authenticationStatus
: Consultați acest câmp dacă doriți mai multe detalii despre starea de autentificare.response.gatewayRecommendation
: Acest câmp vă permite să determinați dacă ar trebui să continuați la o tranzacție financiară sau nu. Această recomandare se bazează doar pe regulile 3DS de filtrare a tranzacțiilor, configurate de către dvs. sau furnizorul dvs. de servicii de plată.response.gatewayRecommendation |
Pasul următor |
---|---|
DO_NOT_PROCEED | Nu continuați cu acest card deoarece autentificarea este respinsă sau indisponibilă, dar poate doriți să continuați plata fără datele 3DS. De asemenea, puteți oferi plătitorului opțiunea de a încerca o altă metodă de plată. |
PROCEED | Puteți continua cu finalizarea procesului de autentificare (procesul de testare) sau puteți finaliza plata (proces optimizat). |
authentication.redirect.html
: Introduceți conținutul acestui câmp pe pagina afișată plătitorului. În acest scop, adăugați conținutul text într-un element DIV și specificați identificatorul scriptului în DOM HTML. Acest lucru va determina crearea și postarea automată a formularului. De exemplu,
div.innerHtml= response.authentication.redirect.html; eval(document.getElementById('authenticate-payer-script').text)
Acest lucru va redirecționa browserul plătitorului înapoi la site-ul dvs. web. Puteți continua cu trimiterea unei tranzacții ulterioare către gateway. Gateway-ul va obține datele de autentificare asociate plății și se va asigura că plățile vor fi procesate numai dacă toate regulile 3DS de filtrare a tranzacțiilor (configurate de dvs. sau furnizorul dvs. de servicii de plată) sunt respectate.
Acesta redirecționează browserul plătitorului către ACS, unde va apărea IU de testare a emitentului, după care plătitorul va fi redirecționat înapoi la site-ul dvs. web. Următoarele câmpuri sunt returnate în callback odată ce browserul plătitorului revine la site-ul dvs web.
Puteți determina rezultatul autentificării folosind valoarea returnată în câmpul response.gatewayRecommendation
. Această recomandare se bazează doar pe regulile 3DS de filtrare a tranzacțiilor, configurate de către dvs. sau furnizorul dvs. de servicii de plată.
Dacă doriți date suplimentare în răspuns, puteți utiliza operațiunea Retrieve Transaction.
response.gatewayRecommendation |
Pasul următor |
---|---|
DO_NOT_PROCEED | Nu continuați cu acest card deoarece autentificarea este respinsă sau indisponibilă, dar poate doriți să continuați plata fără datele 3DS. De asemenea, puteți oferi plătitorului opțiunea de a încerca o altă metodă de plată. |
PROCEED | Puteți continua cu plata, deoarece autentificarea a fost efectuată. |
Câmpurile returnate în răspunsul Authenticate Payer depind de procesul utilizat (fluidizat sau de testare), de modul de inițiere a solicitării de autentificare (authentication.channel) și de mecanismul de autentificare pentru solicitare (sesiune, certificat sau parolă).
Următoarele câmpuri sunt returnate pentru o solicitare autentificată prin certificat/parolă. Pentru operațiunile autentificate pe baza sesiunii, răspunsul este filtrat pentru eliminarea datelor care nu sunt legate de plătitor, fiind returnate numai câmpurile de pe lista albă. Pentru mai multe informații, consultați autentificarea sesiunii.
Response Field |
Autentificat de comerciant |
---|---|
authentication.method | Da |
authentication.3ds.authenticationToken | * |
authentication.3ds.acsEci | Da |
authentication.3ds.transactionId | Da |
authentication.3ds2.transactionStatus | * |
authentication.3ds2.acsTransactionId | * |
authentication.3ds2.dsTransactionId | * |
authentication.3ds2.3dsServerTransactionId | * |
authentication.3ds2.3dsServerTransactionId | * |
authentication.3ds2.protocolVersion | * |
authentication.amount | Da |
authentication.redirect.html | Da |
authentication.time | Da |
response.gatewayRecommendation | Da |
transaction.type | Da |
version | Da |
timeOfRecord | Da |
result | Da |
response.debugInformation | * |
URL | https://egenius.unicredit.ro/api/rest/version/<version>/merchant/<your_merchant_ID>/order/<your_order_ID>/transaction/<your_transaction_ID> |
Metoda HTTP | PUT |
{ "authentication":{ "redirectResponseUrl":"<host>/merchantSimulator/jsp/simple/output.jsp" }, "correlationId":"test", "device": { "browser": "MOZILLA", "browserDetails": { "3DSecureChallengeWindowSize": "FULL_SCREEN", "acceptHeaders": "application/json", "colorDepth": 24, "javaEnabled": true, "language": "en-US", "screenHeight": 640, "screenWidth": 480, "timeZone": 273 }, "ipAddress": "127.0.0.1" }, "order":{ "amount":"100", "currency":"AUD" }, "sourceOfFunds":{ "provided":{ "card":{ "number":"<card_number>", "expiry":{ "month":"1", "year":"39" } } } }, "apiOperation": "AUTHENTICATE_PAYER" }
{ "authentication": { "3ds": { "transactionId": "a4d6ce7a-52ed-46c4-b1b8-0a64ffa3fdd8" }, "3ds2": { "3dsServerTransactionId": "cf976f0d-cb19-454f-a5b3-3cf09ae07e38", "acsTransactionId": "c8027c6a-94da-480d-9270-85098bc680d5", "directoryServerId": "A999999999", "dsTransactionId": "a4d6ce7a-52ed-46c4-b1b8-0a64ffa3fdd8", "methodSupported": "NOT_SUPPORTED", "protocolVersion": "2.1.0", "requestorId": "test40Field@S^2sfds2ID", "requestorName": "test40Field@S^2sfds2Name", "sdk": { "timeout": 400, "uiType": "TEXT" }, "transactionStatus": "C" }, "amount": 100.00, "method": "OUT_OF_BAND", "payerInteraction": "REQUIRED", "redirect": { "customizedHtml": { "3ds2": { "acsUrl": "<acs_url>", "cReq": "eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6ImNmOTc2ZjBkLWNiMTktNDU0Zi1hNWIzLTNjZjA5YWUwN2UzOCJ9" } }, "domainName": "<acs_domain>", "html": "<div id=\"threedsChallengeRedirect\" xmlns=\"http://www.w3.org/1999/html\"style=\" height: 100vh\"> <form id =\"threedsChallengeRedirectForm\" method=\"POST\" action=\"<acs_url>" target=\"challengeFrame\"> <input type=\"hidden\" name=\"creq\" value=\"eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6ImNmOTc2ZjBkLWNiMTktNDU0Zi1hNWIzLTNjZjA5YWUwN2UzOCJ9\" /> </form> <iframe id=\"challengeFrame\" name=\"challengeFrame\" width=\"100%\" height=\"100%\" ></iframe> <script id=\"authenticate-payer-script\"> var e=document.getElementById(\"threedsChallengeRedirectForm\"); if (e) { e.submit(); if (e.parentNode !== null) { e.parentNode.removeChild(e); } } </script> </div>" }, "time": "2022-06-24T07:04:34.836Z", "version": "3DS2" }, "correlationId": "test", "device": { "browser": "mozilla", "ipAddress": "127.0.0.1" }, "merchant": "TEST3DS12AUTH", "order": { "amount": 100.00, "authenticationStatus": "AUTHENTICATION_PENDING", "creationTime": "2022-06-24T07:03:43.780Z", "currency": "USD", "id": "TEST6", "lastUpdatedTime": "2022-06-24T07:04:34.795Z", "merchantCategoryCode": "1234", "status": "AUTHENTICATION_INITIATED", "totalAuthorizedAmount": 0, "totalCapturedAmount": 0, "totalRefundedAmount": 0, "valueTransfer": { "accountType": "NOT_A_TRANSFER" } }, "response": { "gatewayCode": "PENDING", "gatewayRecommendation": "PROCEED" }, "result": "PENDING", "sourceOfFunds": { "provided": { "card": { "brand": "MASTERCARD", "expiry": { "month": "1", "year": "39" }, "fundingMethod": "CREDIT", "number": "512345xxxxxx8212", "scheme": "MASTERCARD" } }, "type": "CARD" }, "timeOfLastUpdate": "2022-06-24T07:04:34.795Z", "timeOfRecord": "2022-06-24T07:03:43.780Z", "transaction": { "acquirer": { "merchantId": "123456" }, "amount": 100.00, "authenticationStatus": "AUTHENTICATION_PENDING", "currency": "USD", "id": "1", "type": "AUTHENTICATION" }, "version": "67" }
Dacă rezultatul operațiunii Authenticate Payer indică faptul că puteți continua plata (response.gatewayRecommendation=PROCEED), puteți să inițiați o operațiune Authorize sau Pay. În plus față de câmpurile standard, trebuie să completați următoarele câmpuri:
URL | https://egenius.unicredit.ro/api/rest/version/<version>/merchant/<your_merchant_ID>/order/<your_order_ID>/transaction/<your_transaction_ID> |
Metoda HTTP | PUT |
{ "apiOperation":"PAY", "authentication":{ "transactionId":"<your_transaction_ID>" }, "order":{ "amount":"100", "currency":"AUD", "reference":"<your_order_ID>" }, "sourceOfFunds":{ "provided":{ "card":{ "number":"<card_number>", "expiry":{ "month":"1", "year":"39" } } }, "type":"CARD" }, "transaction":{ "reference":"<your_order_ID>" } }
{ "authentication":{ "3ds":{ "acsEci":"02", "authenticationToken":"kHyn+7YFi1EUAREAAAAvNUe6Hv8=", "transactionId":"39c25b96-7bc3-4586-bee8-056479fed3af" }, "3ds2":{ "dsTransactionId":"39c25b96-7bc3-4586-bee8-056479fed3af", "protocolVersion":"2.1.0", "transactionStatus":"Y" }, "transactionId":"249213216", "version":"3DS2" }, "authorizationResponse":{ "posData":"1605S0100130", "transactionIdentifier":"TidTest" }, "device":{ "browser":"MOZILLA", "ipAddress":"127.0.0.1" }, "gatewayEntryPoint":"WEB_SERVICES_API", "merchant":"TEST_3DS2-1", "order":{ "amount":100.00, "authenticationStatus":"AUTHENTICATION_SUCCESSFUL", "chargeback":{ "amount":0, "currency":"AUD" }, "creationTime":"2021-04-13T02:11:06.102Z", "currency":"AUD", "id":"807a01b6-e6c8-4aa7-b8da-799bfff89496", "lastUpdatedTime":"2021-04-13T02:11:57.049Z", "merchantAmount":100.00, "merchantCategoryCode":"1234", "merchantCurrency":"AUD", "reference":"807a01b6-e6c8-4aa7-b8da-799bfff89496", "status":"CAPTURED", "totalAuthorizedAmount":100.00, "totalCapturedAmount":100.00, "totalRefundedAmount":0.00 }, "response":{ "acquirerCode":"00", "gatewayCode":"APPROVED" }, "result":"SUCCESS", "sourceOfFunds":{ "provided":{ "card":{ "brand":"MASTERCARD", "expiry":{ "month":"1", "year":"39" }, "fundingMethod":"CREDIT", "issuer":"<issuer>", "number":"512345xxxxxx0008", "scheme":"Mastercard", "storedOnFile":"NOT_STORED" } }, "type":"CARD" }, "timeOfLastUpdate":"2021-04-13T02:11:57.049Z", "timeOfRecord":"2021-04-13T02:11:56.973Z", "transaction":{ "acquirer":{ "batch":1, "id":"<acquirer_id>", "merchantId":"99554411" }, "amount":100.00, "authenticationStatus":"AUTHENTICATION_SUCCESSFUL", "authorizationCode":"028941", "currency":"AUD", "id":"1", "receipt":"1908266016", "reference":"807a01b6-e6c8-4aa7-b8da-799bfff89496", "source":"INTERNET", "stan":"496", "terminal":"1234", "type":"PAYMENT" }, "version":"60" }
Puteți utiliza API-ul de autentificare ca API pe partea serverului sau pe partea clientului.
Pentru alte întrebări generale despre 3-D Secure, consultați Întrebări frecvente despre autentificare.
Pentru mai multe informații despre testarea integrării, contactați Testarea integrării.
Copyright © 2023 UniCredit Bank