Ablauf einer Testaufgabe - Prozessübersicht

  Zuletzt aktualisiert: 

 

Im Folgenden finden Sie zwei Beispiel-Workflows für Anfechtungstransaktionen, die mit unserem 3DS API bearbeitet wurden:

Bitte stellen Sie sicher, dass Ihr System die dokumentierten Anfragen verarbeiten und die zurückgegebenen Antworten verarbeiten kann.

  Um Ihre Anwendung lokal zu testen, müssen Sie Ihre Testanwendung mit Ihrer IPv4-Adresse und nicht mit localhost ausführen. Nachdem Sie Ihre IPv4-Adresse abgefragt haben, müssen Sie localhost in Ihrem Browser durch die ermittelte IP-Adresse ersetzen.

Wir empfehlen, die folgenden Informationen in Verbindung mit unserer Übersicht zu lesen.
Öffnen Sie die 3DS API in einer neuen Registerkarte.

 

             

 

Beispiel 1 - Herausforderung - Nein threedmethodurl

 

Schritt 1. THREEDLOOKUP

THREEDLOOKUP Anfrage Beispiel

Im Folgenden finden Sie ein Beispiel für eine THREEDLOOKUP Anfrage, die über die Webservices API übermittelt wurde:

Rohes JSON Roh-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 Feldspezifikation anfordern

Öffnen Sie die Feldspezifikation in einer neuen Registerkarte.

 

THREEDLOOKUP Beispiel für eine Antwort

Nachfolgend finden Sie ein Beispiel für eine Antwort von THREEDLOOKUP:

Rohes JSON Roh-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 Spezifikation der Antwortfelder

Öffnen Sie die Feldspezifikation in einer neuen Registerkarte.

 

             

 

Schritt 2. Methode URL

Führen Sie diesen Schritt nur aus, wenn threedmethodurl in der Antwort THREEDLOOKUP zurückgegeben wird. Da wir das Feld in diesem Ablauf nicht zurückerhalten, fahren wir mit Schritt 3 fort.

 

             

 

Schritt 3. THREEDQUERY

Es kann sein, dass es nicht möglich ist, die customerip und accept (HTTP-Accept-Header) vom Browser selbst zu erfassen. Daher müssen Sie einen Endpunkt auf Ihrem Server konfigurieren, der es Ihnen ermöglicht, eine GET-Anfrage durchzuführen, um die customerip und accept an den Browser zurückgibt.

 

THREEDQUERY Anfrage Beispiel

Im Folgenden finden Sie ein Beispiel für eine THREEDQUERY Anfrage, die über die Webservices API übermittelt wurde:

Rohes JSON Roh-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 Feldspezifikation anfordern

Öffnen Sie die Feldspezifikation in einer neuen Registerkarte.

 

THREEDQUERY Beispiel für eine Antwort

Im Folgenden finden Sie ein Beispiel für eine Antwort von THREEDQUERY:

Rohes JSON Roh-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 Spezifikation der Antwortfelder

Öffnen Sie die Feldspezifikation in einer neuen Registerkarte.

 

             

 

Schritt 4. Herausforderung

Führen Sie diesen Schritt nur aus, wenn acsurl in der Antwort THREEDQUERY zurückgegeben wird.

Um eine Step-up-Authentifizierung durchzuführen, müssen Sie ein Formular erstellen, in dem die action auf acsurl Wert, der in der Antwort von THREEDQUERY zurückgegeben wurde. Dieses Formular muss Folgendes enthalten:

  • creq - Dies ist der Wert des Parameters threedpayload der in der Antwort THREEDQUERY zurückgegeben wird.
  • threeDSSessionData - Dies ist eine eindeutige Kennung, mit der Sie die Sitzung des Kunden während des Authentifizierungsprozesses verfolgen können. Der threedstransactionid Wert, der in der Antwort THREEDLOOKUP zurückgegeben wird, kann für diesen Zweck verwendet werden, oder der Anfragende kann seinen eigenen eindeutigen Bezeichner zuweisen. Wenn ein Anfragesteller seine eigene eindeutige Kennung zuweist, empfehlen wir die Verwendung eines GUID/UUID-Formats.

Hier ist ein Beispiel für ein solches Formular:

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

Nach dem Absenden des Formulars wird der Kunde auf eine vom ACS gehostete Seite weitergeleitet, auf der er eine Step-up-Authentifizierung durchführen muss, in der Regel durch Eingabe einer zuvor vereinbarten PIN und/oder eines Passworts oder durch biometrische Authentifizierung, z. B. durch Fingerabdruck- oder Gesichtserkennung.

Anschließend wird der Browser des Kunden auf die in Schritt termurl weitergeleitet, die in Schritt 3 (3-D-Abfrage) definiert wurde. Dieser Redirect beinhaltet:

  • threeDSSessionData - Sie müssen überprüfen, ob dieser Wert mit dem eindeutigen Wert übereinstimmt, der im Formular für das ACS enthalten ist, wie oben beschrieben.
  • cres - Der zurückgegebene Wert sollte nicht als das endgültige Authentifizierungsergebnis behandelt werden. Sie sollten den Wert dieses Feldes zusammen mit den threeDSSessionData protokollieren. Die endgültige Authentifizierungsantwort erhalten Sie im Rahmen von Schritt 5 (3-D-Ergebnis).

 

             

 

Schritt 5. THREEDRESULT

Sie müssen die THREEDRESULT erst überprüfen, wenn die folgenden Bedingungen erfüllt sind:

  • Der Browser des Kunden ist von der von ACS gehosteten Seite zur termurl definiert in Stufe 3 (3-D-Abfrage).
  • Sie haben bestätigt, dass die threeDSSessionData die an den termurl gleicht den im Formular enthaltenen eindeutigen Wert mit dem ACS ab.

 

THREEDRESULT Anfrage Beispiel

Im Folgenden finden Sie ein Beispiel für eine THREEDRESULT Anfrage, die über die Webservices API übermittelt wurde:

Für jede 3-D Secure -Authentifizierungssitzung sollte Ihr Server so konfiguriert werden, dass er die Sitzung mithilfe des Feldes threedstransactionid Feld zu verfolgen und sicherzustellen, dass nur eine einzige THREEDRESULT Anfrage pro eindeutiger threedstransactionid.

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

  THREEDRESULT Feldspezifikation anfordern

Öffnen Sie die Feldspezifikation in einer neuen Registerkarte.

 

THREEDRESULT Beispiel für eine Antwort

Im Folgenden finden Sie ein Beispiel für eine Antwort von THREEDRESULT:

Rohes JSON Roh-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 Spezifikation der Antwortfelder

Öffnen Sie die Feldspezifikation in einer neuen Registerkarte.

 

             

 

Schritt 6. AUTH

Sobald der 3-D Secure Prozess abgeschlossen ist, ist es an der Zeit, eine Transaktion zu verarbeiten. Wenn Sie mit der Zahlung über das TRU Connect Gateway fortfahren möchten, sendet Ihr Server eine AUTH Anfrage über Webservices API, einschließlich zusätzlicher Felder, die Sie in der THREEDRESULT Antwort erhalten haben.

 

AUTH Anfrage Beispiel

Im Folgenden finden Sie ein Beispiel für eine AUTH Anfrage, die über die Webservices API übermittelt wurde:

Rohes JSON Roh-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 Beispiel für eine Antwort

Im Folgenden finden Sie ein Beispiel für eine Antwort von AUTH:

Rohes JSON Roh-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"
}

 

Beispiel 2 - Herausforderung - Mit threedmethodurl

 

Schritt 1. THREEDLOOKUP

THREEDLOOKUP Anfrage Beispiel

Im Folgenden finden Sie ein Beispiel für eine THREEDLOOKUP Anfrage, die über die Webservices API übermittelt wurde:

Rohes JSON Roh-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 Feldspezifikation anfordern

Öffnen Sie die Feldspezifikation in einer neuen Registerkarte.

 

THREEDLOOKUP Beispiel für eine Antwort

Nachfolgend finden Sie ein Beispiel für eine Antwort von THREEDLOOKUP:

Rohes JSON Roh-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 Spezifikation der Antwortfelder

Öffnen Sie die Feldspezifikation in einer neuen Registerkarte.

 

             

 

Schritt 2. Methode URL

Führen Sie diesen Schritt nur aus, wenn threedmethodurl in der Antwort THREEDLOOKUP zurückgegeben wird.

Wenn die threedmethodurl in der THREEDLOOKUP zurückgegeben wird, müssen Sie den ACS-Methodenaufruf abschließen.

Erstellen Sie zunächst einen versteckten iframe im Browser des Karteninhabers. Erstellen Sie dann ein HTML-Formular auf Ihrer Seite (für den Benutzer nicht sichtbar) mit einem versteckten Eingabefeld namens "threeDSMethodData".

Füllen Sie das Feld "threeDSMethodData" mit einem Base64 JSON-Objekt, das die threedstransactionid und threednotificationurl (zurückgegeben in Schritt 1).

Ihr JSON-Objekt sollte zum Beispiel so aussehen:

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

Der Standard threednotificationurl Wert, der in THREEDLOOKUP zurückgegeben wird, muss mit Ihrer eigenen Endpunkt-URL überschrieben werden. Dieser wird verwendet, um ein HTTPS POST vom ACS zu erhalten, das den Abschluss des Schritts "Method URL" bestätigt.

 

Dieses JSON-Objekt sollte dann mit Base64 kodiert werden, was folgendes ergibt:

eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6ImU4ZmMwMzQ4LTEyMTItNGU1NC04MWI2LWY4NTc0ZDM2YmQzNSIsInRocmVlRFNNZXRob2ROb3RpZmljYXRpb25VUkwiOiJodHRwczovL3dlYmhvb2suc2l0ZS84NTQzZWI2NS1lNWM3LTQwZmMtYTQ3NS1hODYyYTgyNWE1NjIifQ 

  Vergewissern Sie sich, dass alle nachgestellten "="-Zeichen beim Aufbau der POST weggelassen werden.

 

Im Folgenden finden Sie ein Beispiel für einen ausgeblendeten iframe und eine Formularstruktur:

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

 

Setzt die Aktion des Formulars auf die angegebene threedmethodurl und richten Sie es auf den versteckten iframe aus, dann übermitteln Sie das Formular mit JavaScript:

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

 

Warten Sie darauf, dass die Antwort an Ihre threeDSMethodNotificationURL gesendet wird. Wenn innerhalb von 10 Sekunden keine Antwort eingeht, betrachten Sie dies als Fehler und behandeln die Sitzung des Kunden entsprechend.

Fahren Sie auf der Grundlage des Ergebnisses mit dem Authentifizierungsprozess fort, indem Sie mit dem nächsten Schritt fortfahren.

 

Method URL Request Field Specification

Erforderlich Feld Format Länge Beschreibung
  Erforderlich threeDSMethodNotificationURL URL

Nicht definiert

Die Endpunkt-URL, die die Benachrichtigung über den Abschluss der 3DS-Methode vom ACS erhält.

Hinweis: Sie müssen den Wert von threednotificationurl der in der Antwort von THREEDLOOKUP zurückgegeben wird.

Dies wird in der ersten Anfrage an das ACS vom 3DS-Antragsteller, der die 3DS-Methode ausführt, gesendet.

  Erforderlich threeDSServerTransID Alphanumerisch mit Bindestrichen

36

Universell eindeutiger Transaktionsbezeichner, der vom 3DS-Server zugewiesen wird, um eine einzelne Transaktion zu identifizieren.

Die threeDSServerTransID wird dem Wert entnommen, der im Feld threedstransactionid Feld der Antwort THREEDLOOKUP zurückgegeben wird.

 

Empfang von HTTPS POST von ACS an threeDSMethodNotificationURL

Die threeDSMethodNotificationURL erhält den Parameter threeDSMethodData, einen base64-kodierten JSON-String, der die threeDSServerTransID.

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

Es kann bis zu 10 Sekunden dauern, bis das ACS die HTTPS POST an Ihre threeDSMethodNotificationURL sendet.

  • Wenn Sie diese vom ACS innerhalb von 10 Sekunden erhalten, fahren Sie mit Schritt 3 (3-D-Abfrage) fort und setzen threedscompind in der Anfrage THREEDQUERY auf "Y".
  • Wenn Sie nicht innerhalb von 10 Sekunden vom ACS erhalten, fahren Sie mit Schritt 3 (3-D-Abfrage) fort und setzen threedscompind in der Anfrage THREEDQUERY auf "N". (Es ist möglich, dass Sie die Meldung auch nach Ablauf von 10 Sekunden noch erhalten, aber das kann ignoriert werden).

Der Wert der base64-kodierten threeDSMethodData muss von =-Zeichen befreit werden.

 

Spezifikation der URL-Antwortfelder der Methode

Erforderlich Feld Format Länge Beschreibung
  Zurückgeschickt

threeDSMethodData

Base64-kodierter JSON-String

K.A.

Diese enthält die threeDSServerTransID die ein universell eindeutiger Transaktionsbezeichner ist, der vom 3DS-Server zugewiesen wird, um eine einzelne Transaktion zu identifizieren.

 

             

 

Schritt 3. THREEDQUERY

Es kann sein, dass es nicht möglich ist, die customerip und accept (HTTP-Accept-Header) vom Browser selbst zu erfassen. Daher müssen Sie einen Endpunkt auf Ihrem Server konfigurieren, der es Ihnen ermöglicht, eine GET-Anfrage durchzuführen, um die customerip und accept an den Browser zurückgibt.

 

THREEDQUERY Anfrage Beispiel

Im Folgenden finden Sie ein Beispiel für eine THREEDQUERY Anfrage, die über die Webservices API übermittelt wurde:

Rohes JSON Roh-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 Feldspezifikation anfordern

Öffnen Sie die Feldspezifikation in einer neuen Registerkarte.

 

THREEDQUERY Beispiel für eine Antwort

Im Folgenden finden Sie ein Beispiel für eine Antwort von THREEDQUERY:

Rohes JSON Roh-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 Spezifikation der Antwortfelder

Öffnen Sie die Feldspezifikation in einer neuen Registerkarte.

 

             

 

Schritt 4. Herausforderung

Führen Sie diesen Schritt nur aus, wenn acsurl in der Antwort THREEDQUERY zurückgegeben wird.

Um eine Step-up-Authentifizierung durchzuführen, müssen Sie ein Formular erstellen, in dem die action auf acsurl Wert, der in der Antwort von THREEDQUERY zurückgegeben wurde. Dieses Formular muss Folgendes enthalten:

  • creq - Dies ist der Wert des Parameters threedpayload der in der Antwort THREEDQUERY zurückgegeben wird.
  • threeDSSessionData - Dies ist eine eindeutige Kennung, mit der Sie die Sitzung des Kunden während des Authentifizierungsprozesses verfolgen können. Der threedstransactionid Wert, der in der Antwort THREEDLOOKUP zurückgegeben wird, kann für diesen Zweck verwendet werden, oder der Anfragende kann seinen eigenen eindeutigen Bezeichner zuweisen. Wenn ein Anfragesteller seine eigene eindeutige Kennung zuweist, empfehlen wir die Verwendung eines GUID/UUID-Formats.

Hier ist ein Beispiel für ein solches Formular:

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

Nach dem Absenden des Formulars wird der Kunde auf eine vom ACS gehostete Seite weitergeleitet, auf der er eine Step-up-Authentifizierung durchführen muss, in der Regel durch Eingabe einer zuvor vereinbarten PIN und/oder eines Passworts oder durch biometrische Authentifizierung, z. B. durch Fingerabdruck- oder Gesichtserkennung.

Anschließend wird der Browser des Kunden auf die in Schritt termurl weitergeleitet, die in Schritt 3 (3-D-Abfrage) definiert wurde. Dieser Redirect beinhaltet:

  • threeDSSessionData - Sie müssen überprüfen, ob dieser Wert mit dem eindeutigen Wert übereinstimmt, der im Formular für das ACS enthalten ist, wie oben beschrieben.
  • cres - Der zurückgegebene Wert sollte nicht als das endgültige Authentifizierungsergebnis behandelt werden. Sie sollten den Wert dieses Feldes zusammen mit den threeDSSessionData protokollieren. Die endgültige Authentifizierungsantwort erhalten Sie im Rahmen von Schritt 5 (3-D-Ergebnis).

 

             

 

Schritt 5. THREEDRESULT

Sie müssen die THREEDRESULT erst überprüfen, wenn die folgenden Bedingungen erfüllt sind:

  • Der Browser des Kunden ist von der von ACS gehosteten Seite zu der termurl die in Schritt 3 (3-D-Abfrage) definiert wurde.
  • Sie haben bestätigt, dass die threeDSSessionData, die an den termurl mit dem eindeutigen Wert übereinstimmen, der im Formular an das ACS enthalten ist.

 

THREEDRESULT Anfrage Beispiel

Im Folgenden finden Sie ein Beispiel für eine THREEDRESULT Anfrage, die über die Webservices API übermittelt wurde:

Für jede 3-D Secure -Authentifizierungssitzung sollte Ihr Server so konfiguriert werden, dass er die Sitzung mithilfe des Feldes threedstransactionid Feld zu verfolgen und sicherzustellen, dass nur eine einzige THREEDRESULT Anfrage pro eindeutiger threedstransactionid.

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

  THREEDRESULT Feldspezifikation anfordern

Öffnen Sie die Feldspezifikation in einer neuen Registerkarte.

 

THREEDRESULT Beispiel für eine Antwort

Im Folgenden finden Sie ein Beispiel für eine Antwort von THREEDRESULT:

Rohes JSON Roh-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 Spezifikation der Antwortfelder

Öffnen Sie die Feldspezifikation in einer neuen Registerkarte.

 

             

 

Schritt 6. AUTH

Sobald der 3-D Secure Prozess abgeschlossen ist, ist es an der Zeit, eine Transaktion zu verarbeiten. Wenn Sie mit der Zahlung über das TRU Connect Gateway fortfahren möchten, sendet Ihr Server eine AUTH Anfrage über Webservices API, einschließlich zusätzlicher Felder, die Sie in der THREEDRESULT Antwort erhalten haben.

 

AUTH Anfrage Beispiel

Im Folgenden finden Sie ein Beispiel für eine AUTH Anfrage, die über die Webservices API übermittelt wurde:

Rohes JSON Roh-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 Beispiel für eine Antwort

Im Folgenden finden Sie ein Beispiel für eine Antwort von AUTH:

Rohes JSON Roh-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"
}

 

Zurück: Überblick über den Frictionless-Flow-Prozess Nächste: Ressourcen für Tests

 


 

Ähnliche Artikel


AUTH

Vollständige Dokumentation für unsere AUTH Anfragen/Antworten.

  Mehr erfahren

Verwendung der eigenen MPI

Ergänzende Dokumentation für Händler, die ihre eigene MPI verwenden.

  Mehr erfahren

War dieser Artikel hilfreich?
0 von 0 Personen fanden dies hilfreich