Testen van de uitdagingsstroom - Doorloop

  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.

Wij raden u aan het onderstaande te lezen in combinatie met onze high-level overview flow.
Klik hier om dit in een nieuw tabblad te openen.

 

             

 

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

Klik hier om de veldspecificatie in een nieuw tabblad te openen.

 

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

Klik hier om de veldspecificatie in een nieuw tabblad te openen.

 

             

 

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 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 van antwoordvelden

Klik hier om de veldspecificatie in een nieuw tabblad te openen.

 

             

 

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

Klik hier om de veldspecificatie in een nieuw tabblad te openen.

 

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

Klik hier om de veldspecificatie in een nieuw tabblad te openen.

 

             

 

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",
"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

Klik hier om de veldspecificatie in een nieuw tabblad te openen.

 

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

Klik hier om de veldspecificatie in een nieuw tabblad te openen.

 

             

 

Stap 2. Methode URL

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

Uw systeem verzendt een HTTPS POST naar de ACS met behulp van de base64-encoded threedmethodurlinclusief de threedstransactionid en threednotificationurl (teruggestuurd in stap 1). Dit is omdat bij het posten naar de ACS, het op dit punt is dat ze informatie uit de headers kunnen halen (bijvoorbeeld het browsertype). Later stuurt de ACS een POST terug naar de threeDSMethodNotificationURL die je hebt opgenomen in de initiële POST naar de ACS.

 

Bijvoorbeeld:

{
"threeDSServerTransID":"332cf48e-0ef2-44f6-9c6b-b1bdc3797310",
"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 wordt dan base64 gecodeerd, wat resulteert in:

eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjMzMmNmNDhlLTBlZjItNDRmNi05YzZiLWIxYmRjMzc5NzMxMCIsInRocmVlRFNNZXRob2ROb3RpZmljYXRpb25VUkwiOiJodHRwczovL3dlYmhvb2suc2l0ZS84NTQzZWI2NS1lNWM3LTQwZmMtYTQ3NS1hODYyYTgyNWE1NjIifQ==

 

  Zorg ervoor dat "==" tekens worden weggelaten bij de opbouw van de POST.

Het volgende is een voorbeeld van een HTTPS POST naar de ACS die de threedmethodurl:

<form name="frm" method="POST" action="threedmethodurl">
<input type="hidden" name="threeDSMethodData"
value="eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjMzMmNmNDhlLTBlZjItNDRmNi05YzZiLWIxYmRjMzc5NzMxMCIsInRocmVlRFNNZXRob2ROb3RpZmljYXRpb25VUkwiOiJodHRwczovL3dlYmhvb2suc2l0ZS84NTQzZWI2NS1lNWM3LTQwZmMtYTQ3NS1hODYyYTgyNWE1NjIifQ">
</form>

 

Methode URL verzoek Veldspecificatie

Verplicht Veld Formaat Lengte Beschrijving
X1-EN.png 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.

X1-EN.png 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
X4-EN.png

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 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

Klik hier om de veldspecificatie in een nieuw tabblad te openen.

 

             

 

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

Klik hier om de veldspecificatie in een nieuw tabblad te openen.

 

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

Klik hier om de veldspecificatie in een nieuw tabblad te openen.

 

             

 

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",
"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: Testen van wrijvingsloze stroming - Doorloop  Volgende: Testen

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