Test Challenge Flow - Procesoverzicht

  Laatst bijgewerkt: 

 

Hieronder volgen twee voorbeeldworkflows voor wraaktransacties die met onze 3DS API worden verwerkt:

Zorg ervoor dat uw systeem de gedocumenteerde verzoeken kan verwerken en de teruggezonden antwoorden kan verwerken.

  Om uw toepassing lokaal te testen, moet u uw testtoepassing uitvoeren met uw IPv4-adres in plaats van localhost. Na het opzoeken van je IPv4-adres moet je localhost in je browser vervangen door het opgehaalde IP-adres.

We raden je aan het onderstaande te lezen in combinatie met onze overzichtsstroom.
Open 3DS API in een nieuw tabblad.

 

             

 

Voorbeeld 1 - Uitdaging - Nee threedmethodurl

 

Stap 1. THREEDLOOKUP

THREEDLOOKUP Voorbeeld aanvraag

Het volgende is een voorbeeld van een THREEDLOOKUP verzoek dat is ingediend via de Webservices API:

Ruwe JSON Ruwe XML
{
"alias": "webservices@example.com",
"version": "1.00",
"request": [{
"accounttypedescription": "ECOM",
"baseamount": "1050",
"currencyiso3a": "GBP",
"expirydate": "01/2038",
"pan": "4900490000000667",
"requesttypedescription": "THREEDLOOKUP",
"sitereference": "test_3dsapi12345"
}]
}

  THREEDLOOKUP Verzoek Veldspecificatie

Open de veldspecificatie in een nieuw tabblad.

 

THREEDLOOKUP Voorbeeld van een antwoord

Het volgende is een voorbeeld van een teruggestuurd THREEDLOOKUP antwoord:

Ruwe JSON Ruwe XML
{
"requestreference": "W57-cnk4dbg4",
"response": [{
"cachetoken": "eyJkYXRhY2VudGVydXJsIjogImh0dHBzOi8vd2Vic2VydmljZXMuc2VjdXJldHJhZGluZy5uZXQiLCAiY2FjaGV0b2tlbiI6ICI1Ny01ODRlOWMwNDliZTczZTIxNGNkZTU1MTk0NDQ3OWY4MGNhMzg3OGVmZTI1N2EzN2MwMWRmOTc1ZWRlYjI3YTBjIn0=",
"debtrepayment": "0",
"errorcode": "0",
"errormessage": "Ok",
"maskedpan": "490049######0667",
"paymenttypedescription": "DELTA",
"requesttypedescription": "THREEDLOOKUP",
"threedstransactionid": "cebcb773-3aa1-4bfa-a959-135aa50bb760",
"threedversion": "2.2.0",
"transactionstartedtimestamp": "2022-06-14 15:34:18"
}],
"secrand": "E9DXCCLNL",
"version": "1.00"
}

  THREEDLOOKUP Specificatie van antwoordvelden

Open de veldspecificatie in een nieuw tabblad.

 

             

 

Stap 2. Methode URL

Voer deze stap alleen uit als threedmethodurl wordt teruggestuurd in het antwoord op THREEDLOOKUP. Aangezien we het veld in deze stroom niet terugkrijgen, gaan we verder met stap 3.

 

             

 

Stap 3. THREEDQUERY

Het is misschien niet mogelijk om de customerip en accept (HTTP accept-header) van de browser zelf, daarom zul je een endpoint op je server moeten configureren, waarmee je een GET-verzoek kunt uitvoeren om de customerip en accept terug te sturen naar de browser.

 

THREEDQUERY Voorbeeld aanvraag

Het volgende is een voorbeeld van een THREEDQUERY verzoek dat is ingediend via de Webservices API:

Ruwe JSON Ruwe XML
{
"alias":"webservices@example.com",
"version":"1.00",
"request":[{
"accept": "text/html,*/*",
"accounttypedescription": "ECOM",
"acquirerbin": "408912",
"baseamount": "1050",
"browsercolordepth": "24",
"browserjavaenabled": "false",
"browserjavascriptenabled": "true",
"browserlanguage": "en",
"browserscreenheight": "864",
"browserscreenwidth": "1536",
"browsertz": "120",
"cachetoken": "eyJkYXRhY2VudGVydXJsIjogImh0dHBzOi8vd2Vic2VydmljZXMuc2VjdXJldHJhZGluZy5uZXQiLCAiY2FjaGV0b2tlbiI6ICI1Ny01ODRlOWMwNDliZTczZTIxNGNkZTU1MTk0NDQ3OWY4MGNhMzg3OGVmZTI1N2EzN2MwMWRmOTc1ZWRlYjI3YTBjIn0=",
"challengewindowsize": "02",
"currencyiso3a": "GBP",
"customerip": "1.2.3.4",
"expirydate": "01/2038",
"pan": "4900490000000667",
"paymenttypedescription": "DELTA",
"requesttypedescription": "THREEDQUERY",
"sitereference": "test_3dsapi12345",
"termurl": "https://webhook.site/8543eb65-e5c7-40fc-a475-a862a825a562",
"threedscompind": "U",
"threedstransactionid": "cebcb773-3aa1-4bfa-a959-135aa50bb760",
"useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36"
}]
}

  THREEDQUERY Verzoek Veldspecificatie

Open de veldspecificatie in een nieuw tabblad.

 

THREEDQUERY Voorbeeld van een antwoord

Het volgende is een voorbeeld van een teruggestuurd THREEDQUERY antwoord:

Ruwe JSON Ruwe XML
{
"requestreference": "W57-wr84pnjg",
"response": [{
"accounttypedescription": "ECOM",
"acsreferencenumber": "ACS_REF",
"acstransid": "c6a58c52-90a7-43d4-8beb-dfc5a42aeacc",
"acsurl": "https://acs-mock.3ds.trustpayments.com/3ds/mock/acs/creq",
"debtrepayment": "0",
"enrolled": "Y",
"errorcode": "0",
"errormessage": "Ok",
"issuer": "SecureTrading Test Issuer1",
"issuercountryiso2a": "OM",
"livestatus": "0",
"maskedpan": "490049######0667",
"merchantcategorycode": "0000",
"merchantcountryiso2a": "GB",
"merchantname": "Test Merchant 3DS",
"merchantnumber": "9990000001",
"operatorname": "webservices@example.com",
"paymenttypedescription": "DELTA",
"requesttypedescription": "THREEDQUERY",
"settleduedate": "2022-06-14",
"settlestatus": "0",
"status": "C",
"threedpayload": "eyJtZXNzYWdlVHlwZSI6ICJDUmVxIiwgInRocmVlRFNTZXJ2ZXJUcmFuc0lEIjogImNlYmNiNzczLTNhYTEtNGJmYS1hOTU5LTEzNWFhNTBiYjc2MCIsICJtZXNzYWdlVmVyc2lvbiI6ICIyLjIuMCIsICJhY3NUcmFuc0lEIjogImM2YTU4YzUyLTkwYTctNDNkNC04YmViLWRmYzVhNDJhZWFjYyIsICJjaGFsbGVuZ2VXaW5kb3dTaXplIjogIjAyIn0",
"threedsservertransid": "cebcb773-3aa1-4bfa-a959-135aa50bb760",
"threedversion": "2.2.0",
"transactionreference": "57-100-36",
"transactionstartedtimestamp": "2022-06-14 15:34:58"
}],
"secrand": "X",
"version": "1.00"
}

THREEDQUERY Specificatie reactieveld

Open de veldspecificatie in een nieuw tabblad.

 

             

 

Stap 4. Uitdaging

Voer deze stap alleen uit als acsurl wordt teruggezonden in het antwoord THREEDQUERY .

Om step-up authenticatie uit te voeren, moet u een formulier maken met action ingesteld op acsurl waarde, die is teruggestuurd in het antwoord op THREEDQUERY. Dit formulier moet bevatten:

  • creq - Dit is de waarde van de threedpayload geretourneerd in THREEDQUERY antwoord.
  • threeDSSessionData - Dit is een unieke identificatiecode waarmee u de sessie van de klant door het authenticatieproces kunt volgen. De threedstransactionid waarde die in het antwoord THREEDLOOKUP wordt geretourneerd, kan voor dit doel worden gebruikt, of de aanvrager kan zijn eigen unieke identificatiecode toekennen. Wanneer een aanvrager zijn eigen unieke identificator toewijst, raden wij aan een GUID/UUID-formaat te gebruiken.

Hier is een voorbeeld van zo'n formulier:

<html>
<head>
<meta charset="utf-8">
<title>Trust Payments - 3D Secure Payment form</title>
</head>
<body onload="document.getElementById('3dform').submit();">
<form method="POST" action="ACSURL" id="3dform">
<input type="hidden" name="threeDSSessionData" value="threedsservertransid_VALUE" />
<input type="hidden" name="creq" value="threedpayload_VALUE" />
<noscript>
<br>
<br>
<div style="text-align: center">
<h1>Processing your 3D Secure Transaction</h1>
<p>Please click continue to continue the processing of your 3D Secure transaction.</p>
<input type="submit" class="button" value="continue"/>
</div>
</noscript>
</form>
</body>
</html>

Zodra het formulier is ingediend, wordt de klant doorgestuurd naar een door de ACS gehoste pagina, waar hij geacht wordt een step-up authenticatie uit te voeren, gewoonlijk door een eerder overeengekomen pincode en/of wachtwoord in te voeren of door middel van biometrische authenticatie, zoals vingerafdruk- of gezichtsherkenning.

Vervolgens wordt de browser van de klant doorgestuurd naar de termurl gedefinieerd in stap 3 (3-D Query). Deze redirect omvat:

  • threeDSSessionData - U moet controleren of dit overeenkomt met de unieke waarde in het formulier aan de ACS, zoals hierboven beschreven.
  • cres - De geretourneerde waarde mag niet worden beschouwd als het definitieve authenticatieresultaat. U moet de waarde van dit veld loggen naast de threeDSSessionData. U ontvangt het definitieve authenticatieresultaat als onderdeel van stap 5 (3-D Resultaat).

 

             

 

Stap 5. THREEDRESULT

Je moet de THREEDRESULT alleen verifiëren als aan de volgende voorwaarden is voldaan:

  • De browser van de klant is teruggekeerd van de ACS-pagina naar de termurl gedefinieerd in stap 3 (3-D Query).
  • Je hebt de threeDSSessionData die naar de termurl koppelt de unieke waarde op het formulier aan de ACS.

 

THREEDRESULT Voorbeeld aanvraag

Het volgende is een voorbeeld van een THREEDRESULT verzoek dat is ingediend via de Webservices API:

Voor elke 3-D Secure authenticatiesessie moet uw server worden geconfigureerd om de sessie bij te houden met het threedstransactionid veld en ervoor te zorgen dat er slechts één THREEDRESULT verzoek wordt verzonden per uniek threedstransactionid.

Ruwe JSON Ruwe XML
{
"alias":"webservices@example.com",
"version":"1.00",
"request":[{
"parenttransactionreference": "57-100-36",
"requesttypedescription": "THREEDRESULT",
"sitereference": "test_3dsapi12345"
}]
}

  THREEDRESULT Verzoek Veldspecificatie

Open de veldspecificatie in een nieuw tabblad.

 

THREEDRESULT Voorbeeld van een antwoord

Het volgende is een voorbeeld van een teruggestuurd THREEDRESULT antwoord:

Ruwe JSON Ruwe XML
{
"requestreference": "W57-0epgmcxq",
"response": [{
"accounttypedescription": "ECOM",
"baseamount": "1050",
"cavv": "dHJ1c3RwYXltZW50c2F1dGhlbnQ=",
"currencyiso3a": "GBP",
"debtrepayment": "0",
"eci": "05",
"enrolled": "Y",
"errorcode": "0",
"errormessage": "Ok",
"issuer": "SecureTrading Test Issuer1",
"issuercountryiso2a": "OM",
"livestatus": "0",
"maskedpan": "490049######0667",
"merchantcategorycode": "0000",
"merchantcountryiso2a": "GB",
"merchantname": "Test Merchant 3DS",
"merchantnumber": "9990000001",
"operatorname": "webservices@example.com",
"parenttransactionreference": "57-100-36",
"paymenttypedescription": "DELTA",
"requesttypedescription": "THREEDRESULT",
"settleduedate": "2022-06-14",
"status": "Y",
"threedacstransactionreference": "c6a58c52-90a7-43d4-8beb-dfc5a42aeacc",
"threeddirectorytransactionreference": "65f1188b-4961-4590-a3e7-f350c22c1d45",
"threedversion": "2.2.0",
"transactionreference": "57-100-37",
"transactionstartedtimestamp": "2022-06-14 15:36:33"
}],
"secrand": "D6sWTorcfyDv",
"version": "1.00"
}

  THREEDRESULT Specificatie van antwoordvelden

Open de veldspecificatie in een nieuw tabblad.

 

             

 

Stap 6. AUTH

Zodra het 3-D Secure proces is voltooid, is het nu tijd om een transactie te verwerken. Indien u de betaling wenst uit te voeren via de TRU Connect gateway, dient uw server een AUTH verzoek in via Webservices API, inclusief extra velden die u hebt ontvangen in het THREEDRESULT antwoord.

 

AUTH Voorbeeld aanvraag

Hieronder volgt een voorbeeld van een AUTH verzoek dat is ingediend met de Webservices API:

Ruwe JSON Ruwe XML
{
"alias":"webservices@example.com",
"version":"1.00",
"request":[{
    "accounttypedescription":"ECOM",
   "pan":"4900490000000667",
    "expirydate":"01/2038",
"currencyiso3a":"GBP",
"requesttypedescriptions":["AUTH"],
"sitereference":"test_auth12347",
"baseamount":"1050",
"orderreference":"V2.2-TESTCASE9-VISA",
"parenttransactionreference": "57-100-37",
"securitycode":"123",
"cavv":"dHJ1c3RwYXltZW50c2F1dGhlbnQ=",
"eci":"05",
"xid":"",
"enrolled":"Y",
"status":"Y",
"threedversion":"2.2.0",
"threeddirectorytransactionreference":"65f1188b-4961-4590-a3e7-f350c22c1d45"
}]
}

 

AUTH Voorbeeld van een antwoord

Het volgende is een voorbeeld van een teruggestuurd AUTH antwoord:

Ruwe JSON Ruwe XML
{
"requestreference": "W60-jfweuhp1",
"response": [{
"accounttypedescription": "ECOM",
"acquirerresponsecode": "00",
"authcode": "TEST54",
"authmethod": "PRE",
"baseamount": "1050",
"cavv": "dHJ1c3RwYXltZW50c2F1dGhlbnQ=",
"currencyiso3a": "GBP",
"dccenabled": "0",
"debtrepayment": "0",
"eci": "05",
"enrolled": "Y",
"errorcode": "0",
"errormessage": "Ok",
"issuer": "SecureTrading Test Issuer1",
"issuercountryiso2a": "OM",
"livestatus": "0",
"maskedpan": "490049######0667",
"merchantcountryiso2a": "GB",
"merchantname": "Test Merchant",
"merchantnumber": "00000000",
"operatorname": "webservices@example.com",
"orderreference": "V2.2-TESTCASE9-VISA",
"paymenttypedescription": "DELTA",
"requesttypedescription": "AUTH",
"securityresponseaddress": "0",
"securityresponsepostcode": "0",
"securityresponsesecuritycode": "2",
"settleduedate": "2022-06-14",
"settlestatus": "0",
"splitfinalnumber": "1",
"status": "Y",
"threedversion": "2.2.0",
"tid": "27880001",
"transactionreference": "60-9-2473248",
"transactionstartedtimestamp": "2022-06-14 15:37:35"
}],
"secrand": "HWCwdnmokhOsQV",
"version": "1.00"
}

 

Voorbeeld 2 - Uitdaging - Met threedmethodurl

 

Stap 1. THREEDLOOKUP

THREEDLOOKUP Voorbeeld aanvraag

Het volgende is een voorbeeld van een THREEDLOOKUP verzoek dat is ingediend via de Webservices API:

Ruwe JSON Ruwe XML
{
"alias": "webservices@example.com",
"version": "1.00",
"request": [{
"accounttypedescription": "ECOM",
"baseamount": "1050",
"currencyiso3a": "GBP",
"expirydate": "01/2038",
"pan": "4900490000000550",
"requesttypedescription": "THREEDLOOKUP",
"sitereference": "test_3dsapi12345"
}]
}

  THREEDLOOKUP Verzoek Veldspecificatie

Open de veldspecificatie in een nieuw tabblad.

 

THREEDLOOKUP Voorbeeld van een antwoord

Het volgende is een voorbeeld van een teruggestuurd THREEDLOOKUP antwoord:

Ruwe JSON Ruwe XML
{
"requestreference": "W59-jpat4b7k",
"response": [{
"cachetoken": "eyJkYXRhY2VudGVydXJsIjogImh0dHBzOi8vd2Vic2VydmljZXMuc2VjdXJldHJhZGluZy5uZXQiLCAiY2FjaGV0b2tlbiI6ICI1OS1jMDQ1ZDYzN2FiYmQxN2JjZTVhYmFiMGJhZWFiYzBmODY0NGU1ZGIyOGY5YjYwZDMwNTNmZGMwNDE0NjllMDFiIn0=",
"debtrepayment": "0",
"errorcode": "0",
"errormessage": "Ok",
"maskedpan": "490049######0550",
"paymenttypedescription": "DELTA",
"requesttypedescription": "THREEDLOOKUP",
"threedmethodurl": "https://acs-mock.3ds.trustpayments.com/3ds/mock/acs/method",
"threednotificationurl": "https://brw.3ds.sandbox.trustpayments.com/3dss/brw/notification/threeDSMethod/332cf48e-0ef2-44f6-9c6b-b1bdc3797310/bcdd8e60-e16f-4dbc-a504-5156f011dc35",
"threedstransactionid": "332cf48e-0ef2-44f6-9c6b-b1bdc3797310",
"threedversion": "2.2.0",
"transactionstartedtimestamp": "2022-06-15 12:08:50"
}],
"secrand": "hWOrHYh0r6tL",
"version": "1.00"
}

  THREEDLOOKUP Specificatie van antwoordvelden

Open de veldspecificatie in een nieuw tabblad.

 

             

 

Stap 2. Methode URL

Voer deze stap alleen uit als threedmethodurl wordt teruggezonden in het antwoord op THREEDLOOKUP .

Wanneer de threedmethodurl wordt geretourneerd in het antwoord THREEDLOOKUP , moet je de ACS Method Call voltooien.

Maak eerst een verborgen HTML iframe in de browser van de kaarthouder. Maak vervolgens een HTML-formulier op je pagina (niet zichtbaar voor de gebruiker) met een verborgen invoerveld met de naam "threeDSMethodData".

Vul het veld "threeDSMethodData" met een Base64 JSON-object dat het threedstransactionid en threednotificationurl (teruggestuurd in stap 1).

Je JSON object zou er bijvoorbeeld zo uit moeten zien:

{
"threeDSServerTransID":"1d38d104-9384-489d-8ce7-2fad599d481a",
"threeDSMethodNotificationURL":"https://webhook.site/8543eb65-e5c7-40fc-a475-a862a825a562"
}

De standaard threednotificationurl waarde die wordt geretourneerd in de THREEDLOOKUP moet worden overschreven met uw eigen endpoint URL. Dit wordt gebruikt om een HTTPS POST te ontvangen van de ACS ter bevestiging van het voltooien van de Method URL stap.

 

Dit JSON object moet dan Base64 gecodeerd worden, wat resulteert in:

eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6ImU4ZmMwMzQ4LTEyMTItNGU1NC04MWI2LWY4NTc0ZDM2YmQzNSIsInRocmVlRFNNZXRob2ROb3RpZmljYXRpb25VUkwiOiJodHRwczovL3dlYmhvb2suc2l0ZS84NTQzZWI2NS1lNWM3LTQwZmMtYTQ3NS1hODYyYTgyNWE1NjIifQ 

  Zorg ervoor dat achterliggende "="-tekens worden weggelaten bij het samenstellen van de POST.

 

Het volgende is een voorbeeld van de verborgen iframe en formulierstructuur:

<html>
<body>
    <!-- Hidden iframe for 3DS Method call -->
    <iframe id="threeDSMethodIframe" name="threeDSMethodIframe" style="display: none;"></iframe>

    <!-- Form for submitting 3DS Method data within the iframe -->
    <form id="threeDSMethodForm" action="https://acs-mock.3ds.trustpayments.com/3ds/mock/acs/method" method="POST" target="threeDSMethodIframe">
        <!-- Hidden input field containing the base64-encoded 3DS Method data -->
        <input type="hidden" name="threeDSMethodData" value="BASE64_ENCODED_METHOD_DATA">
    </form>

    <script>
        // Automatically submit the form within the hidden iframe when the page loads
        document.getElementById('threeDSMethodForm').submit();
    </script>
</body>
</html>

 

Stel de actie van het formulier in op de opgegeven threedmethodurl en richt deze op het verborgen iframe. Verzend het formulier vervolgens met JavaScript:

document.getElementById('threeDSMethodForm').submit(); 

 

Wacht tot het antwoord is gepost naar je threeDSMethodNotificationURL. Als er binnen 10 seconden geen antwoord is ontvangen, beschouw dit dan als een mislukking en behandel de sessie van de klant dienovereenkomstig.

Ga op basis van het resultaat verder met het verificatieproces door naar de volgende stap te gaan.

 

Methode URL verzoek Veldspecificatie

Verplicht Veld Formaat Lengte Beschrijving
  Verplicht threeDSMethodNotificationURL URL

Niet gedefinieerd

De endpoint URL die de melding van 3DS Method completion van de ACS zal ontvangen.

Opmerking: U moet de waarde van de threednotificationurl in het antwoord op THREEDLOOKUP overschrijven.

Dit wordt verzonden in het initiële verzoek aan de ACS van de 3DS-verzoeker die de 3DS-methode uitvoert.

  Verplicht threeDSServerTransID Alfanumeriek, inclusief koppeltekens

36

Universeel unieke transactie-identificatie die door de 3DS-server wordt toegekend om een enkele transactie te identificeren.

De threeDSServerTransID wordt ontleend aan de waarde die in het threedstransactionid veld in het antwoord op THREEDLOOKUP .

 

HTTPS POST ontvangen van ACS naar threeDSMethodNotificationURL

De threeDSMethodNotificationURL ontvangt de parameter threeDSMethodData, een base64 gecodeerde JSON-string die de threeDSServerTransID.

"threeDSMethodData"="eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjNhYzdjYWE3LWFhNDItMjY2My03OTFiLTJhYzA1YTU0MmM0YSJ9"
Decoded threeDSMethodData:
{"threeDSServerTransID":"332cf48e-0ef2-44f6-9c6b-b1bdc3797310"}

Het kan tot 10 seconden duren voordat de ACS de HTTPS POST naar je threeDSMethodNotificationURL heeft verzonden.

  • Als u dit binnen 10 seconden van de ACS ontvangt, ga dan verder met stap 3 (3-D Query) en stel threedscompind op "Y" in het THREEDQUERY verzoek.
  • Als u niet ontvangt van de ACS binnen 10 seconden, ga dan verder met stap 3 (3-D Query) en stel threedscompind op "N" in het THREEDQUERY verzoek. (Het is mogelijk dat u het bericht nog ontvangt nadat 10 seconden zijn verstreken, maar dit kan worden genegeerd).

De waarde van de base64-gecodeerde threeDSMethodData moet ontdaan zijn van =-tekens.

 

Methode URL Specificatie van antwoordvelden

Verplicht Veld Formaat Lengte Beschrijving
  Geretourneerd

threeDSMethodData

Base64gecodeerde JSON-string

N/A

Deze bevat de threeDSServerTransID, dat is een universeel unieke transactie-identificatie die door de 3DS-server wordt toegekend om een enkele transactie te identificeren.

 

             

 

Stap 3. THREEDQUERY

Het is misschien niet mogelijk om de customerip en accept (HTTP accept-header) van de browser zelf, daarom zul je een endpoint op je server moeten configureren, waarmee je een GET-verzoek kunt uitvoeren om de customerip en accept terug te sturen naar de browser.

 

THREEDQUERY Voorbeeld aanvraag

Het volgende is een voorbeeld van een THREEDQUERY verzoek dat is ingediend via de Webservices API:

Ruwe JSON Ruwe XML
{
"alias":"webservices@example.com",
"version":"1.00",
"request":[{
"accept": "text/html,*/*",
"accounttypedescription": "ECOM",
"acquirerbin": "111111",
"baseamount": "1050",
"browsercolordepth": "24",
"browserjavaenabled": "false",
"browserjavascriptenabled": "true",
"browserlanguage": "en",
"browserscreenheight": "864",
"browserscreenwidth": "1536",
"browsertz": "120",
"cachetoken": "eyJkYXRhY2VudGVydXJsIjogImh0dHBzOi8vd2Vic2VydmljZXMuc2VjdXJldHJhZGluZy5uZXQiLCAiY2FjaGV0b2tlbiI6ICI1OS1jMDQ1ZDYzN2FiYmQxN2JjZTVhYmFiMGJhZWFiYzBmODY0NGU1ZGIyOGY5YjYwZDMwNTNmZGMwNDE0NjllMDFiIn0=",
"challengewindowsize": "02",
"currencyiso3a": "GBP",
"customerip": "1.2.3.4",
"expirydate": "01/2038",
"pan": "4900490000000550",
"requesttypedescription": "THREEDQUERY",
"sitereference": "test_3dsapi12345",
"termurl": "https://webhook.site/8543eb65-e5c7-40fc-a475-a862a825a562",
"threedstransactionid": "332cf48e-0ef2-44f6-9c6b-b1bdc3797310",
"threedscompind": "Y",
"useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36"
}]
}

  THREEDQUERY Verzoek Veldspecificatie

Open de veldspecificatie in een nieuw tabblad.

 

THREEDQUERY Voorbeeld van een antwoord

Het volgende is een voorbeeld van een teruggestuurd THREEDQUERY antwoord:

Ruwe JSON Ruwe XML
{
"requestreference": "W56-28nv861m",
"response": [{
"accounttypedescription": "ECOM",
"acsreferencenumber": "ACS_REF",
"acstransid": "2d99ebb4-5d47-4e62-9d94-7cfbb2fa5f93",
"acsurl": "https://acs-mock.3ds.trustpayments.com/3ds/mock/acs/creq",
"debtrepayment": "0",
"enrolled": "Y",
"errorcode": "0",
"errormessage": "Ok",
"issuer": "SecureTrading Test Issuer1",
"issuercountryiso2a": "OM",
"livestatus": "0",
"maskedpan": "490049######0550",
"merchantcategorycode": "0000",
"merchantcountryiso2a": "GB",
"merchantname": "Test Merchant 3DS",
"merchantnumber": "9990000001",
"operatorname": "webservices@example.com",
"paymenttypedescription": "DELTA",
"requesttypedescription": "THREEDQUERY",
"settleduedate": "2022-06-15",
"settlestatus": "0",
"status": "C",
"threedpayload": "eyJtZXNzYWdlVHlwZSI6ICJDUmVxIiwgInRocmVlRFNTZXJ2ZXJUcmFuc0lEIjogIjMzMmNmNDhlLTBlZjItNDRmNi05YzZiLWIxYmRjMzc5NzMxMCIsICJtZXNzYWdlVmVyc2lvbiI6ICIyLjIuMCIsICJhY3NUcmFuc0lEIjogIjJkOTllYmI0LTVkNDctNGU2Mi05ZDk0LTdjZmJiMmZhNWY5MyIsICJjaGFsbGVuZ2VXaW5kb3dTaXplIjogIjAyIn0",
"threedsservertransid": "332cf48e-0ef2-44f6-9c6b-b1bdc3797310",
"threedversion": "2.2.0",
"transactionreference": "56-100-37",
"transactionstartedtimestamp": "2022-06-15 12:12:09"
}],
"secrand": "Dv",
"version": "1.00"
}

  THREEDQUERY Specificatie van antwoordvelden

Open de veldspecificatie in een nieuw tabblad.

 

             

 

Stap 4. Uitdaging

Voer deze stap alleen uit als acsurl wordt teruggezonden in het antwoord THREEDQUERY .

Om step-up authenticatie uit te voeren, moet u een formulier maken met action ingesteld op acsurl waarde, die is teruggestuurd in het antwoord op THREEDQUERY. Dit formulier moet bevatten:

  • creq - Dit is de waarde van de threedpayload geretourneerd in THREEDQUERY antwoord.
  • threeDSSessionData - Dit is een unieke identificatiecode waarmee u de sessie van de klant door het authenticatieproces kunt volgen. De threedstransactionid waarde die in het antwoord THREEDLOOKUP wordt geretourneerd, kan voor dit doel worden gebruikt, of de aanvrager kan zijn eigen unieke identificatiecode toekennen. Wanneer een aanvrager zijn eigen unieke identificator toewijst, raden wij aan een GUID/UUID-formaat te gebruiken.

Hier is een voorbeeld van zo'n formulier:

<html>
<head>
<meta charset="utf-8">
<title>Trust Payments - 3D Secure Payment form</title>
</head>
<body onload="document.getElementById('3dform').submit();">
<form method="POST" action="ACSURL" id="3dform">
<input type="hidden" name="threeDSSessionData" value="threedsservertransid_VALUE" />
<input type="hidden" name="creq" value="threedpayload_VALUE" />
<noscript>
<br>
<br>
<div style="text-align: center">
<h1>Processing your 3D Secure Transaction</h1>
<p>Please click continue to continue the processing of your 3D Secure transaction.</p>
<input type="submit" class="button" value="continue"/>
</div>
</noscript>
</form>
</body>
</html>

Zodra het formulier is ingediend, wordt de klant doorgestuurd naar een door de ACS gehoste pagina, waar hij geacht wordt een step-up authenticatie uit te voeren, gewoonlijk door een eerder overeengekomen pincode en/of wachtwoord in te voeren of door middel van biometrische authenticatie, zoals vingerafdruk- of gezichtsherkenning.

Vervolgens wordt de browser van de klant doorgestuurd naar de termurl gedefinieerd in stap 3 (3-D Query). Deze redirect omvat:

  • threeDSSessionData - U moet controleren of dit overeenkomt met de unieke waarde in het formulier aan de ACS, zoals hierboven beschreven.
  • cres - De geretourneerde waarde mag niet worden beschouwd als het definitieve authenticatieresultaat. U moet de waarde van dit veld loggen naast de threeDSSessionData. U ontvangt het definitieve authenticatieresultaat als onderdeel van stap 5 (3-D Resultaat).

 

             

 

Stap 5. THREEDRESULT

Je moet de THREEDRESULT alleen verifiëren als aan de volgende voorwaarden is voldaan:

  • De browser van de klant is teruggekeerd van de ACS-pagina naar de termurl gedefinieerd in stap 3 (3-D Query).
  • U hebt bevestigd dat de threeDSSessionData die naar de termurl overeenkomt met de unieke waarde in het formulier naar de ACS.

 

THREEDRESULT Voorbeeld aanvraag

Het volgende is een voorbeeld van een THREEDRESULT verzoek dat is ingediend via de Webservices API:

Voor elke 3-D Secure authenticatiesessie moet uw server worden geconfigureerd om de sessie bij te houden met het threedstransactionid veld en ervoor te zorgen dat er slechts één THREEDRESULT verzoek wordt verzonden per uniek threedstransactionid.

Ruwe JSON Ruwe XML
{
"alias":"webservices@example.com",
"version":"1.00",
"request":[{
"parenttransactionreference": "56-100-37",
"requesttypedescription": "THREEDRESULT",
"sitereference": "test_3dsapi12345"
}]
}

  THREEDRESULT Verzoek Veldspecificatie

Open de veldspecificatie in een nieuw tabblad.

 

THREEDRESULT Voorbeeld van een antwoord

Het volgende is een voorbeeld van een teruggestuurd THREEDRESULT antwoord:

Ruwe JSON Ruwe XML
{
"requestreference": "W59-3qutnaxv",
"response": [{
"accounttypedescription": "ECOM",
"baseamount": "1050",
"cavv": "dHJ1c3RwYXltZW50c2F1dGhlbnQ=",
"currencyiso3a": "GBP",
"debtrepayment": "0",
"eci": "05",
"enrolled": "Y",
"errorcode": "0",
"errormessage": "Ok",
"issuer": "SecureTrading Test Issuer1",
"issuercountryiso2a": "OM",
"livestatus": "0",
"maskedpan": "490049######0550",
"merchantcategorycode": "0000",
"merchantcountryiso2a": "GB",
"merchantname": "Test Merchant 3DS",
"merchantnumber": "9990000001",
"operatorname": "webservices@example.com",
"parenttransactionreference": "56-100-37",
"paymenttypedescription": "DELTA",
"requesttypedescription": "THREEDRESULT",
"settleduedate": "2022-06-15",
"status": "Y",
"threedacstransactionreference": "2d99ebb4-5d47-4e62-9d94-7cfbb2fa5f93",
"threeddirectorytransactionreference": "be064933-c5bd-4f76-8198-cfd99b6bedf0",
"threedversion": "2.2.0",
"transactionreference": "59-100-37",
"transactionstartedtimestamp": "2022-06-15 12:15:03"
}],
"secrand": "gh33Hh3JJD0",
"version": "1.00"
}

  THREEDRESULT Specificatie van antwoordvelden

Open de veldspecificatie in een nieuw tabblad.

 

             

 

Stap 6. AUTH

Zodra het 3-D Secure proces is voltooid, is het nu tijd om een transactie te verwerken. Indien u de betaling wenst uit te voeren via de TRU Connect gateway, dient uw server een AUTH verzoek in via Webservices API, inclusief extra velden die u hebt ontvangen in het THREEDRESULT antwoord.

 

AUTH Voorbeeld aanvraag

Hieronder volgt een voorbeeld van een AUTH verzoek dat is ingediend met de Webservices API:

Ruwe JSON Ruwe XML
{
"alias":"webservices@example.com",
"version":"1.00",
"request":[{
    "accounttypedescription":"ECOM",
   "pan":"4900490000000550",
    "expirydate":"01/2038",

"currencyiso3a":"GBP",
"requesttypedescriptions":["AUTH"],
"sitereference":"test_auth12347",
"baseamount":"1050",
"orderreference":"V2.2-TESTCASE13-VISA",
"parenttransactionreference": "59-100-37",
"securitycode":"123",
"cavv":"dHJ1c3RwYXltZW50c2F1dGhlbnQ=",
"eci":"05",
"xid":"",
"enrolled":"Y",
"status":"Y",
"threedversion":"2.2.0",
"threeddirectorytransactionreference":"65f1188b-4961-4590-a3e7-f350c22c1d45"
}]
}

 

AUTH Voorbeeld van een antwoord

Het volgende is een voorbeeld van een teruggestuurd AUTH antwoord:

Ruwe JSON Ruwe XML
{
"requestreference": "W59-0av0n4ku",
"response": [{
"accounttypedescription": "ECOM",
"acquirerresponsecode": "00",
"authcode": "TEST30",
"authmethod": "PRE",
"baseamount": "1050",
"cavv": "dHJ1c3RwYXltZW50c2F1dGhlbnQ=",
"currencyiso3a": "GBP",
"dccenabled": "0",
"debtrepayment": "0",
"eci": "05",
"enrolled": "Y",
"errorcode": "0",
"errormessage": "Ok",
"issuer": "SecureTrading Test Issuer1",
"issuercountryiso2a": "OM",
"livestatus": "0",
"maskedpan": "490049######0550",
"merchantcountryiso2a": "GB",
"merchantname": "Test Merchant",
"merchantnumber": "00000000",
"operatorname": "webservices@example.com",
"orderreference": "V2.2-TESTCASE13-VISA",
"paymenttypedescription": "DELTA",
"requesttypedescription": "AUTH",
"securityresponseaddress": "0",
"securityresponsepostcode": "0",
"securityresponsesecuritycode": "2",
"settleduedate": "2022-06-15",
"settlestatus": "0",
"splitfinalnumber": "1",
"status": "Y",
"threedversion": "2.2.0",
"tid": "27880001",
"transactionreference": "59-9-2486253",
"transactionstartedtimestamp": "2022-06-15 12:15:49"
}],
"secrand": "j7ZmqibsHXGjR",
"version": "1.00"
}

 

Terug: Overzicht wrijvingsloos stroomproces Volgende: Hulpmiddelen voor testen

 


 

Verwante artikelen


AUTH

Volledige documentatie voor onze AUTH verzoeken/antwoorden.

  Meer informatie

Met behulp van uw eigen MPI

Aanvullende documentatie voor verkopers die hun eigen MPI gebruiken.

  Meer informatie

Was dit artikel nuttig?
0 van de 0 vonden dit nuttig