Im Folgenden finden Sie zwei Beispiel-Workflows für reibungslose Transaktionen, die über unser 3DS API abgewickelt werden:
- Beispiel 1 - Reibungslos - Nein threedmethodurl
- Beispiel 2 - Reibungslos - mit threedmethodurl - Klicken Sie hier, um zu diesem Beispiel zu scrollen
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 nachstehenden Informationen in Verbindung mit unserer Übersicht zu lesen.
Klicken Sie hier, um die Seite in einer neuen Registerkarte zu öffnen.
Beispiel 1 - Reibungslos - 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:
{
"alias":"webservices@example.com",
"version":"1.00",
"request":[{
"accounttypedescription": "ECOM",
"baseamount": "1050",
"currencyiso3a": "GBP",
"expirydate": "01/2038",
"pan": "4900490000000501",
"requesttypedescription": "THREEDLOOKUP",
"sitereference": "test_3dsapi12345"
}]
}
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="THREEDLOOKUP">
<billing>
<payment>
<expirydate>01/2038</expirydate>
<pan>4900490000000501</pan>
</payment>
<amount currencycode="GBP">1050</amount>
</billing>
<operation>
<accounttypedescription>ECOM</accounttypedescription>
<sitereference>test_3dsapi12345</sitereference>
</operation>
</request>
</requestblock>
THREEDLOOKUP Feldspezifikation anfordern
Klicken Sie hier, um die Feldspezifikation in einer neuen Registerkarte zu öffnen.
THREEDLOOKUP Beispiel für eine Antwort
Nachfolgend finden Sie ein Beispiel für eine Antwort von THREEDLOOKUP:
{
"requestreference": "W57-yag4w8fp",
"response": [{
"cachetoken": "eyJkYXRhY2VudGVydXJsIjogImh0dHBzOi8vd2Vic2VydmljZXMuc2VjdXJldHJhZGluZy5uZXQiLCAiY2FjaGV0b2tlbiI6ICI1Ny04Y2RmNmY5MmZkY2MwMmZjZTY4YTUxYjc2NGQ5NTQxZDgzNDY5ZTFjMDIxMDJjNmM0NThmYWY5M2Q2MGQ1NWYyIn0=",
"debtrepayment": "0",
"errorcode": "0",
"errormessage": "Ok",
"maskedpan": "490049######0501",
"paymenttypedescription": "DELTA",
"requesttypedescription": "THREEDLOOKUP",
"threedstransactionid": "733ab129-1126-4b80-97a4-f3d8fee9c564",
"threedversion": "2.2.0",
"transactionstartedtimestamp": "2022-05-24 12:59:27"
}],
"secrand": "VqOIoVXOJP7rZuxw",
"version": "1.00"
}
<responseblock version="3.67">
<requestreference>W57-aaf55j82</requestreference>
<response type="THREEDLOOKUP">
<billing>
<payment type="DELTA">
<pan>490049######0501</pan>
</payment>
</billing>
<error>
<code>0</code>
<message>Ok</message>
</error>
<merchant>
<debtrepayment>0</debtrepayment>
</merchant>
<operation>
<cachetoken>eyJkYXRhY2VudGVydXJsIjogImh0dHBzOi8vd2Vic2VydmljZXMuc2VjdXJldHJhZGluZy5uZXQiLCAiY2FjaGV0b2tlbiI6ICI1Ny03OTY4ZDM1Zjk1YzQyZGFlMGU5MGZiYTE4N2U4YTU4YWQyYjNiOGQzMGIxYjBlMGFhY2I3NzE2YjZlNDE4YTdkIn0=</cachetoken>
</operation>
<threedsecure>
<transactionid>d52c5270-40fa-456b-b7cd-8c2cbc8edb8c</transactionid>
<version>2.2.0</version>
</threedsecure>
<timestamp>2022-06-15 15:07:25</timestamp>
</response>
<secrand>dNs</secrand>
</responseblock>
THREEDLOOKUP Spezifikation der Antwortfelder
Klicken Sie hier, um die Feldspezifikation in einer neuen Registerkarte zu öffnen.
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:
{
"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": "eyJkYXRhY2VudGVydXJsIjogImh0dHBzOi8vd2Vic2VydmljZXMuc2VjdXJldHJhZGluZy5uZXQiLCAiY2FjaGV0b2tlbiI6ICI1Ny04Y2RmNmY5MmZkY2MwMmZjZTY4YTUxYjc2NGQ5NTQxZDgzNDY5ZTFjMDIxMDJjNmM0NThmYWY5M2Q2MGQ1NWYyIn0=",
"challengewindowsize": "02",
"currencyiso3a": "GBP",
"customerip": "1.2.3.4",
"expirydate": "01/2038",
"merchantnumber": "9990000001",
"pan": "4900490000000501",
"requesttypedescription": "THREEDQUERY",
"sitereference": "test_3dsapi12345",
"termurl": "https://webhook.site/8543eb65-e5c7-40fc-a475-a862a825a562",
"threedscompind": "U",
"threedstransactionid":"733ab129-1126-4b80-97a4-f3d8fee9c564",
"useragent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36"
}]
}
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="THREEDQUERY">
<acquirer>
<acquirerbin>111111</acquirerbin>
</acquirer>
<merchant>
<termurl>https://webhook.site/8543eb65-e5c7-40fc-a475-a862a825a562</termurl>
</merchant>
<billing>
<payment>
<expirydate>01/2038</expirydate>
<pan>4900490000000501</pan>
</payment>
<amount currencycode="GBP">1050</amount>
</billing>
<customer>
<accept>text/html,*/*</accept>
<browsercolordepth>24</browsercolordepth>
<browserjavaenabled>false</browserjavaenabled>
<browserjavascriptenabled>true</browserjavascriptenabled>
<browserlanguage>en</browserlanguage>
<browserscreenheight>864</browserscreenheight>
<browserscreenwidth>1536</browserscreenwidth>
<browsertz>120</browsertz>
<challengewindowsize>02</challengewindowsize>
<ip>1.2.3.4</ip>
<useragent>Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36</useragent>
</customer>
<operation>
<accounttypedescription>ECOM</accounttypedescription>
<cachetoken>eyJkYXRhY2VudGVydXJsIjogImh0dHBzOi8vd2Vic2VydmljZXMuc2VjdXJldHJhZGluZy5uZXQiLCAiY2FjaGV0b2tlbiI6ICI1Ny03OTY4ZDM1Zjk1YzQyZGFlMGU5MGZiYTE4N2U4YTU4YWQyYjNiOGQzMGIxYjBlMGFhY2I3NzE2YjZlNDE4YTdkIn0=</cachetoken>
<sitereference>test_3dsapi12345</sitereference>
</operation>
<threedsecure>
<threedscompind>N</threedscompind>
<transactionid>d52c5270-40fa-456b-b7cd-8c2cbc8edb8c</transactionid>
</threedsecure>
</request>
</requestblock>
THREEDQUERY Feldspezifikation anfordern
Klicken Sie hier, um die Feldspezifikation in einer neuen Registerkarte zu öffnen.
THREEDQUERY Beispiel für eine Antwort
Im Folgenden finden Sie ein Beispiel für eine Antwort von THREEDQUERY:
{
"requestreference": "W57-q6cmhhnv",
"response": [{
"accounttypedescription": "ECOM",
"acsreferencenumber": "ACS_REF",
"acstransid": "ffe304b3-c865-4e2a-a688-c711938a3ada",
"debtrepayment": "0",
"enrolled": "Y",
"errorcode": "0",
"errormessage": "Ok",
"issuer": "SecureTrading Test Issuer1",
"issuercountryiso2a": "OM",
"livestatus": "0",
"maskedpan": "490049######0501",
"merchantcategorycode": "0000",
"merchantcountryiso2a": "GB",
"merchantname": "Test Merchant 3DS",
"merchantnumber": "9990000001",
"operatorname": "webservices@example.com",
"paymenttypedescription": "DELTA",
"requesttypedescription": "THREEDQUERY",
"settleduedate": "2022-05-24",
"settlestatus": "0",
"status": "Y",
"threedsservertransid": "733ab129-1126-4b80-97a4-f3d8fee9c564",
"threedversion": "2.2.0",
"transactionreference": "57-100-16",
"transactionstartedtimestamp": "2022-05-24 13:00:27"
}],
"secrand": "w0pgmN2A0aZXSWjj",
"version": "1.00"
}
<responseblock version="3.67">
<requestreference>W60-enbex7tn</requestreference>
<response type="THREEDQUERY">
<billing>
<payment type="DELTA">
<issuer>SecureTrading Test Issuer1</issuer>
<issuercountry>OM</issuercountry>
<pan>490049######0501</pan>
</payment>
</billing>
<error>
<code>0</code>
<message>Ok</message>
</error>
<live>0</live>
<merchant>
<debtrepayment>0</debtrepayment>
<merchantcategorycode>0000</merchantcategorycode>
<merchantcountryiso2a>GB</merchantcountryiso2a>
<merchantname>Test Merchant 3DS</merchantname>
<merchantnumber>9990000001</merchantnumber>
<operatorname>webservices@example.com</operatorname>
</merchant>
<operation>
<accounttypedescription>ECOM</accounttypedescription>
</operation>
<settlement>
<settleduedate>2022-06-15</settleduedate>
<settlestatus>0</settlestatus>
</settlement>
<threedsecure>
<acsreferencenumber>ACS_REF</acsreferencenumber>
<acstransid>2d99ebb4-5d47-4e62-9d94-7cfbb2fa5f93</acstransid>
<enrolled>Y</enrolled>
<status>Y</status>
<threedsservertransid>d52c5270-40fa-456b-b7cd-8c2cbc8edb8c</threedsservertransid>
<version>2.2.0</version>
</threedsecure>
<timestamp>2022-06-15 15:09:26</timestamp>
<transactionreference>60-100-39</transactionreference>
</response>
<secrand>OcP5Q4</secrand>
</responseblock>
THREEDQUERY Spezifikation der Antwortfelder
Klicken Sie hier, um die Feldspezifikation in einer neuen Registerkarte zu öffnen.
Schritt 4. Herausforderung
Führen Sie diesen Schritt nur aus, wenn acsurl in der Antwort THREEDQUERY zurückgegeben wird. Da wir das Feld in diesem Ablauf nicht zurückerhalten, fahren wir mit Schritt 5 fort.
Schritt 5. THREEDRESULT
THREEDRESULT Anfrage Beispiel
Im Folgenden finden Sie ein Beispiel für eine THREEDRESULT Anfrage, die über die Webservices API übermittelt wurde:
{
"alias":"webservices@example.com",
"version":"1.00",
"request":[{
"parenttransactionreference": "57-100-16",
"requesttypedescription": "THREEDRESULT",
"sitereference": "test_3dsapi12345",
"status": "Y"
}]
}
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="THREEDRESULT">
<operation>
<parenttransactionreference>60-100-39</parenttransactionreference>
<sitereference>test_3dsapi12345</sitereference>
</operation>
</request>
</requestblock>
THREEDRESULT Feldspezifikation anfordern
Klicken Sie hier, um die Feldspezifikation in einer neuen Registerkarte zu öffnen.
THREEDRESULT Beispiel für eine Antwort
Im Folgenden finden Sie ein Beispiel für eine Antwort von THREEDRESULT:
{
"requestreference": "W59-bq193wm4",
"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######0501",
"merchantcategorycode": "0000",
"merchantcountryiso2a": "GB",
"merchantname": "Test Merchant 3DS",
"merchantnumber": "9990000001",
"operatorname": "webservices@example.com",
"parenttransactionreference": "57-100-16",
"paymenttypedescription": "DELTA",
"requesttypedescription": "THREEDRESULT",
"settleduedate": "2022-05-31",
"status": "Y",
"threeddirectorytransactionreference": "33457fbd-1fdd-4bbd-8396-362263e30dbd",
"threedversion": "2.2.0",
"transactionreference": "59-100-30",
"transactionstartedtimestamp": "2022-05-31 15:15:32"
}],
"secrand": "n",
"version": "1.00"
}
<responseblock version="3.67">
<requestreference>W60-ra30r948</requestreference>
<response type="THREEDRESULT">
<billing>
<amount currencycode="GBP">1050</amount>
<payment type="DELTA">
<issuer>SecureTrading Test Issuer1</issuer>
<issuercountry>OM</issuercountry>
<pan>490049######0501</pan>
</payment>
</billing>
<error>
<code>0</code>
<message>Ok</message>
</error>
<live>0</live>
<merchant>
<debtrepayment>0</debtrepayment>
<merchantcategorycode>0000</merchantcategorycode>
<merchantcountryiso2a>GB</merchantcountryiso2a>
<merchantname>Test Merchant 3DS</merchantname>
<merchantnumber>9990000001</merchantnumber>
<operatorname>webservices@example.com</operatorname>
</merchant>
<operation>
<accounttypedescription>ECOM</accounttypedescription>
<parenttransactionreference>60-100-39</parenttransactionreference>
</operation>
<settlement>
<settleduedate>2022-06-15</settleduedate>
</settlement>
<threedsecure>
<cavv>dHJ1c3RwYXltZW50c2F1dGhlbnQ=</cavv>
<directorytransactionreference>be064933-c5bd-4f76-8198-cfd99b6bedf0</directorytransactionreference>
<eci>05</eci>
<enrolled>Y</enrolled>
<status>Y</status>
<version>2.2.0</version>
</threedsecure>
<timestamp>2022-06-15 15:09:58</timestamp>
<transactionreference>60-100-40</transactionreference>
</response>
<secrand>Sc2OKT9pSdnheo</secrand>
</responseblock>
THREEDRESULT Spezifikation der Antwortfelder
Klicken Sie hier, um die Feldspezifikation in einer neuen Registerkarte zu öffnen.
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:
{
"alias":"webservices@example.com",
"version":"1.00",
"request":[{
"accounttypedescription":"ECOM",
"pan":"4900490000000501",
"expirydate":"01/2038",
"currencyiso3a":"GBP",
"requesttypedescriptions":["AUTH"],
"sitereference":"test_auth12347",
"baseamount":"1050",
"orderreference":"V2.2-TESTCASE1-VISA",
"securitycode":"123",
"cavv":"dHJ1c3RwYXltZW50c2F1dGhlbnQ=",
"eci":"05",
"xid":"",
"enrolled":"Y",
"status":"Y",
"threedversion":"2.2.0",
"threeddirectorytransactionreference":"33457fbd-1fdd-4bbd-8396-362263e30dbd"
}]
}
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="AUTH">
<merchant>
<orderreference>My_Order_123</orderreference>
</merchant>
<billing>
<payment>
<expirydate>01/2038</expirydate>
<pan>4900490000000501</pan>
<securitycode>123</securitycode>
</payment>
<amount currencycode="GBP">1050</amount>
</billing>
<operation>
<sitereference>test_auth12347</sitereference>
<accounttypedescription>ECOM</accounttypedescription>
</operation>
<threedsecure>
<cavv>dHJ1c3RwYXltZW50c2F1dGhlbnQ=</cavv>
<eci>05</eci>
<xid></xid>
<enrolled>Y</enrolled>
<status>Y</status>
<version>2.2.0</version>
<directorytransactionreference>be064933-c5bd-4f76-8198-cfd99b6bedf0</directorytransactionreference>
</threedsecure>
</request>
</requestblock>
AUTH Feldspezifikation anfordern
Klicken Sie hier, um die Feldspezifikation in einer neuen Registerkarte zu öffnen.
AUTH Beispiel für eine Antwort
Im Folgenden finden Sie ein Beispiel für eine Antwort von AUTH:
{
"requestreference": "W59-316gfj11",
"response": [{
"accounttypedescription": "ECOM",
"acquirerresponsecode": "00",
"authcode": "TEST90",
"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": "ZZ",
"livestatus": "0",
"maskedpan": "559139######0645",
"merchantcountryiso2a": "GB",
"merchantname": "Test Merchant",
"merchantnumber": "00000000",
"operatorname": "webservices@example.com",
"orderreference": "V2.2-TESTCASE1-VISA",
"paymenttypedescription": "MASTERCARD",
"requesttypedescription": "AUTH",
"securityresponseaddress": "0",
"securityresponsepostcode": "0",
"securityresponsesecuritycode": "2",
"settleduedate": "2022-05-31",
"settlestatus": "0",
"splitfinalnumber": "1",
"status": "Y",
"threedversion": "2.2.0",
"tid": "27880001",
"transactionreference": "59-9-2450082",
"transactionstartedtimestamp": "2022-05-31 15:21:02"
}],
"secrand": "Utr2h6t6mz",
"version": "1.00"
}
<responseblock version="3.67">
<requestreference>W57-4xtgkghe</requestreference>
<response type="AUTH">
<acquirerresponsecode>00</acquirerresponsecode>
<authcode>TEST46</authcode>
<billing>
<amount currencycode="GBP">1050</amount>
<dcc enabled="0"/>
<payment type="DELTA">
<issuer>SecureTrading Test Issuer1</issuer>
<issuercountry>OM</issuercountry>
<pan>490049######0501</pan>
</payment>
</billing>
<error>
<code>0</code>
<message>Ok</message>
</error>
<live>0</live>
<merchant>
<debtrepayment>0</debtrepayment>
<merchantcountryiso2a>GB</merchantcountryiso2a>
<merchantname>Test Merchant</merchantname>
<merchantnumber>00000000</merchantnumber>
<operatorname>webservices@example.com</operatorname>
<orderreference>My_Order_123</orderreference>
<tid>27880001</tid>
</merchant>
<operation>
<accounttypedescription>ECOM</accounttypedescription>
<authmethod>PRE</authmethod>
<splitfinalnumber>1</splitfinalnumber>
</operation>
<security>
<address>0</address>
<postcode>0</postcode>
<securitycode>2</securitycode>
</security>
<settlement>
<settleduedate>2022-06-15</settleduedate>
<settlestatus>0</settlestatus>
</settlement>
<threedsecure>
<cavv>dHJ1c3RwYXltZW50c2F1dGhlbnQ=</cavv>
<eci>05</eci>
<enrolled>Y</enrolled>
<status>Y</status>
<version>2.2.0</version>
</threedsecure>
<timestamp>2022-06-15 15:14:16</timestamp>
<transactionreference>57-9-2473737</transactionreference>
</response>
<secrand>HBFJeDnEIs6</secrand>
</responseblock>
AUTH Spezifikation der Antwortfelder
Klicken Sie hier, um die Feldspezifikation in einer neuen Registerkarte zu öffnen.
Beispiel 2 - Reibungslos - 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:
{
"alias": "webservices@example.com",
"version": "1.00",
"request": [{
"accounttypedescription": "ECOM",
"baseamount": "1050",
"currencyiso3a": "GBP",
"expirydate": "01/2038",
"pan": "4900490000000618",
"requesttypedescription": "THREEDLOOKUP",
"sitereference": "test_3dsapi12345"
}]
}
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="THREEDLOOKUP">
<billing>
<payment>
<expirydate>01/2038</expirydate>
<pan>4900490000000618</pan>
</payment>
<amount currencycode="GBP">1050</amount>
</billing>
<operation>
<accounttypedescription>ECOM</accounttypedescription>
<sitereference>test_3dsapi12345</sitereference>
</operation>
</request>
</requestblock>
THREEDLOOKUP Feldspezifikation anfordern
Klicken Sie hier, um die Feldspezifikation in einer neuen Registerkarte zu öffnen.
THREEDLOOKUP Beispiel für eine Antwort
Nachfolgend finden Sie ein Beispiel für eine Antwort von THREEDLOOKUP:
{
"requestreference": "W59-b5n3cdg8",
"response": [{
"cachetoken": "eyJkYXRhY2VudGVydXJsIjogImh0dHBzOi8vd2Vic2VydmljZXMuc2VjdXJldHJhZGluZy5uZXQiLCAiY2FjaGV0b2tlbiI6ICI1OS01NjE4OWVkNzY4OGI3OTA0ZjA5ZDM2OTNmNDhhN2I3MDIyMjExNTFlMTc0OWMzZDIwM2U2ZmYyNTZkMmY4ZWIwIn0=",
"debtrepayment": "0",
"errorcode": "0",
"errormessage": "Ok",
"maskedpan": "490049######0618",
"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/1d38d104-9384-489d-8ce7-2fad599d481a/41fd0370-5c5a-453b-a77c-601e8b048d29",
"threedstransactionid": "1d38d104-9384-489d-8ce7-2fad599d481a",
"threedversion": "2.2.0",
"transactionstartedtimestamp": "2022-06-15 11:45:56"
}],
"secrand": "wJ6Jlno3oldR",
"version": "1.00"
}
<responseblock version="3.67">
<requestreference>W57-j37e5x5x</requestreference>
<response type="THREEDLOOKUP">
<billing>
<payment type="DELTA">
<pan>490049######0618</pan>
</payment>
</billing>
<error>
<code>0</code>
<message>Ok</message>
</error>
<merchant>
<debtrepayment>0</debtrepayment>
</merchant>
<operation>
<cachetoken>eyJkYXRhY2VudGVydXJsIjogImh0dHBzOi8vd2Vic2VydmljZXMuc2VjdXJldHJhZGluZy5uZXQiLCAiY2FjaGV0b2tlbiI6ICI1Ny1kOWQwZGJjZTZhZjcyZGFjZmM0NzRiOGFmYzljODFkNDM2NDY5MzM4YTQ1ZDA2ZGQ2YmM2N2FhZTllNTQ3NmM5In0=</cachetoken>
</operation>
<threedsecure>
<methodurl>https://acs-mock.3ds.trustpayments.com/3ds/mock/acs/method</methodurl>
<notificationurl>https://brw.3ds.sandbox.trustpayments.com/3dss/brw/notification/threeDSMethod/cdbc6120-db20-43b5-8261-c395840f54cc/92ea8131-bd1f-48e0-a216-11ad7e649512</notificationurl>
<transactionid>cdbc6120-db20-43b5-8261-c395840f54cc</transactionid>
<version>2.2.0</version>
</threedsecure>
<timestamp>2022-06-15 15:19:03</timestamp>
</response>
<secrand>Nlc324UkK</secrand>
</responseblock>
THREEDLOOKUP Spezifikation der Antwortfelder
Klicken Sie hier, um die Feldspezifikation in einer neuen Registerkarte zu öffnen.
Schritt 2. Methode URL
Führen Sie diesen Schritt nur aus, wenn threedmethodurl in der Antwort THREEDLOOKUP zurückgegeben wird.
Ihr System sendet einen HTTPS-POST an das ACS unter Verwendung der base64-kodierten threedmethodurl einschließlich der threedstransactionid und threednotificationurl (zurückgegeben in Schritt 1). Der Grund dafür ist, dass bei der Übermittlung an das ACS an dieser Stelle Informationen aus den Kopfzeilen erfasst werden können (z. B. der Browsertyp). Später sendet das ACS ein POST zurück an die threeDSMethodNotificationURL, die Sie im ersten POST an das ACS angegeben haben.
Zum Beispiel:
{
"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.
Dies wird dann base64-kodiert, was zu einem Ergebnis führt:
eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6ImU4ZmMwMzQ4LTEyMTItNGU1NC04MWI2LWY4NTc0ZDM2YmQzNSIsInRocmVlRFNNZXRob2ROb3RpZmljYXRpb25VUkwiOiJodHRwczovL3dlYmhvb2suc2l0ZS84NTQzZWI2NS1lNWM3LTQwZmMtYTQ3NS1hODYyYTgyNWE1NjIifQ==
Achten Sie darauf, dass "=="-Zeichen beim Aufbau der POST weggelassen werden.
Nachfolgend ein Beispiel für ein HTTPS POST an das ACS, das die threedmethodurl:
<form name="frm" method="POST" action="threedmethodurl">
<input type="hidden" name="threeDSMethodData"
value="eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6ImU4ZmMwMzQ4LTEyMTItNGU1NC04MWI2LWY4NTc0ZDM2YmQzNSIsInRocmVlRFNNZXRob2ROb3RpZmljYXRpb25VUkwiOiJodHRwczovL3dlYmhvb2suc2l0ZS84NTQzZWI2NS1lNWM3LTQwZmMtYTQ3NS1hODYyYTgyNWE1NjIifQ">
</form>
Method URL Request Field Specification
Erforderlich | Feld | Format | Länge | Beschreibung |
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. |
|
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":"1d38d104-9384-489d-8ce7-2fad599d481a"}
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 |
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:
{
"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": "eyJkYXRhY2VudGVydXJsIjogImh0dHBzOi8vd2Vic2VydmljZXMuc2VjdXJldHJhZGluZy5uZXQiLCAiY2FjaGV0b2tlbiI6ICI1OS01NjE4OWVkNzY4OGI3OTA0ZjA5ZDM2OTNmNDhhN2I3MDIyMjExNTFlMTc0OWMzZDIwM2U2ZmYyNTZkMmY4ZWIwIn0=",
"challengewindowsize": "02",
"currencyiso3a": "GBP",
"customerip": "1.2.3.4",
"expirydate": "01/2038",
"pan": "4900490000000618",
"requesttypedescription": "THREEDQUERY",
"sitereference": "test_3dsapi12345",
"termurl": "https://webhook.site/8543eb65-e5c7-40fc-a475-a862a825a562",
"threedstransactionid": "1d38d104-9384-489d-8ce7-2fad599d481a",
"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"
}]
}
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="THREEDQUERY">
<acquirer>
<acquirerbin>111111</acquirerbin>
</acquirer>
<merchant>
<termurl>https://webhook.site/8543eb65-e5c7-40fc-a475-a862a825a562</termurl>
</merchant>
<billing>
<payment>
<expirydate>01/2038</expirydate>
<pan>4900490000000618</pan>
</payment>
<amount currencycode="GBP">1050</amount>
</billing>
<customer>
<accept>text/html,*/*</accept>
<browsercolordepth>24</browsercolordepth>
<browserjavaenabled>false</browserjavaenabled>
<browserjavascriptenabled>true</browserjavascriptenabled>
<browserlanguage>en</browserlanguage>
<browserscreenheight>864</browserscreenheight>
<browserscreenwidth>1536</browserscreenwidth>
<browsertz>120</browsertz>
<challengewindowsize>02</challengewindowsize>
<ip>1.2.3.4</ip>
<useragent>Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.93 Safari/537.36</useragent>
</customer>
<operation>
<accounttypedescription>ECOM</accounttypedescription>
<cachetoken>eyJkYXRhY2VudGVydXJsIjogImh0dHBzOi8vd2Vic2VydmljZXMuc2VjdXJldHJhZGluZy5uZXQiLCAiY2FjaGV0b2tlbiI6ICI1Ny1kOWQwZGJjZTZhZjcyZGFjZmM0NzRiOGFmYzljODFkNDM2NDY5MzM4YTQ1ZDA2ZGQ2YmM2N2FhZTllNTQ3NmM5In0=</cachetoken>
<sitereference>test_3dsapi12345</sitereference>
</operation>
<threedsecure>
<threedscompind>Y</threedscompind>
<transactionid>cdbc6120-db20-43b5-8261-c395840f54cc</transactionid>
</threedsecure>
</request>
</requestblock>
THREEDQUERY Feldspezifikation anfordern
Klicken Sie hier, um die Feldspezifikation in einer neuen Registerkarte zu öffnen.
THREEDQUERY Beispiel für eine Antwort
Im Folgenden finden Sie ein Beispiel für eine Antwort von THREEDQUERY:
{
"requestreference": "W56-rpkhc1fr",
"response": [{
"accounttypedescription": "ECOM",
"acsreferencenumber": "ACS_REF",
"acstransid": "2d99ebb4-5d47-4e62-9d94-7cfbb2fa5f93",
"debtrepayment": "0",
"enrolled": "Y",
"errorcode": "0",
"errormessage": "Ok",
"issuer": "SecureTrading Test Issuer1",
"issuercountryiso2a": "OM",
"livestatus": "0",
"maskedpan": "490049######0618",
"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": "Y",
"threedsservertransid": "1d38d104-9384-489d-8ce7-2fad599d481a",
"threedversion": "2.2.0",
"transactionreference": "56-100-36",
"transactionstartedtimestamp": "2022-06-15 11:52:18"
}],
"secrand": "sacb8gYe",
"version": "1.00"
}
<responseblock version="3.67">
<requestreference>W60-7bgbnxmr</requestreference>
<response type="THREEDQUERY">
<billing>
<payment type="DELTA">
<issuer>SecureTrading Test Issuer1</issuer>
<issuercountry>OM</issuercountry>
<pan>490049######0618</pan>
</payment>
</billing>
<error>
<code>0</code>
<message>Ok</message>
</error>
<live>0</live>
<merchant>
<debtrepayment>0</debtrepayment>
<merchantcategorycode>0000</merchantcategorycode>
<merchantcountryiso2a>GB</merchantcountryiso2a>
<merchantname>Test Merchant 3DS</merchantname>
<merchantnumber>9990000001</merchantnumber>
<operatorname>webservices@example.com</operatorname>
</merchant>
<operation>
<accounttypedescription>ECOM</accounttypedescription>
</operation>
<settlement>
<settleduedate>2022-06-15</settleduedate>
<settlestatus>0</settlestatus>
</settlement>
<threedsecure>
<acsreferencenumber>ACS_REF</acsreferencenumber>
<acstransid>ae6432dd-cb89-4be7-8de8-45e0afaa15b0</acstransid>
<enrolled>Y</enrolled>
<status>Y</status>
<threedsservertransid>cdbc6120-db20-43b5-8261-c395840f54cc</threedsservertransid>
<version>2.2.0</version>
</threedsecure>
<timestamp>2022-06-15 15:23:55</timestamp>
<transactionreference>60-100-41</transactionreference>
</response>
<secrand>cAdZk4S8tP</secrand>
</responseblock>
THREEDQUERY Spezifikation der Antwortfelder
Klicken Sie hier, um die Feldspezifikation in einer neuen Registerkarte zu öffnen.
Schritt 4. Herausforderung
Führen Sie diesen Schritt nur aus, wenn acsurl in der Antwort THREEDQUERY zurückgegeben wird. Da wir das Feld in diesem Ablauf nicht zurückerhalten, fahren wir mit Schritt 5 fort.
Schritt 5. THREEDRESULT
THREEDRESULT Anfrage Beispiel
Im Folgenden finden Sie ein Beispiel für eine THREEDRESULT Anfrage, die über die Webservices API übermittelt wurde:
{
"alias":"webservices@example.com",
"version":"1.00",
"request":[{
"parenttransactionreference": "56-100-36",
"requesttypedescription": "THREEDRESULT",
"sitereference": "test_3dsapi12345"
}]
}
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="THREEDRESULT">
<operation>
<parenttransactionreference>60-100-41</parenttransactionreference>
<sitereference>test_3dsapi12345</sitereference>
</operation>
</request>
</requestblock>
THREEDRESULT Feldspezifikation anfordern
Klicken Sie hier, um die Feldspezifikation in einer neuen Registerkarte zu öffnen.
THREEDRESULT Beispiel für eine Antwort
Im Folgenden finden Sie ein Beispiel für eine Antwort von THREEDRESULT:
{
"requestreference": "W59-8b4e3a4h",
"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######0618",
"merchantcategorycode": "0000",
"merchantcountryiso2a": "GB",
"merchantname": "Test Merchant 3DS",
"merchantnumber": "9990000001",
"operatorname": "webservices@example.com",
"parenttransactionreference": "56-100-36",
"paymenttypedescription": "DELTA",
"requesttypedescription": "THREEDRESULT",
"settleduedate": "2022-06-15",
"status": "Y",
"threeddirectorytransactionreference": "be064933-c5bd-4f76-8198-cfd99b6bedf0",
"threedversion": "2.2.0",
"transactionreference": "59-100-36",
"transactionstartedtimestamp": "2022-06-15 11:52:48"
}],
"secrand": "8RuFJUZNt",
"version": "1.00"
}
<responseblock version="3.67">
<requestreference>W57-1fe5va86</requestreference>
<response type="THREEDRESULT">
<billing>
<amount currencycode="GBP">1050</amount>
<payment type="DELTA">
<issuer>SecureTrading Test Issuer1</issuer>
<issuercountry>OM</issuercountry>
<pan>490049######0618</pan>
</payment>
</billing>
<error>
<code>0</code>
<message>Ok</message>
</error>
<live>0</live>
<merchant>
<debtrepayment>0</debtrepayment>
<merchantcategorycode>0000</merchantcategorycode>
<merchantcountryiso2a>GB</merchantcountryiso2a>
<merchantname>Test Merchant 3DS</merchantname>
<merchantnumber>9990000001</merchantnumber>
<operatorname>webservices@example.com</operatorname>
</merchant>
<operation>
<accounttypedescription>ECOM</accounttypedescription>
<parenttransactionreference>60-100-41</parenttransactionreference>
</operation>
<settlement>
<settleduedate>2022-06-15</settleduedate>
</settlement>
<threedsecure>
<cavv>dHJ1c3RwYXltZW50c2F1dGhlbnQ=</cavv>
<directorytransactionreference>0a458425-fea5-41a4-b094-159a69114dbe</directorytransactionreference>
<eci>05</eci>
<enrolled>Y</enrolled>
<status>Y</status>
<version>2.2.0</version>
</threedsecure>
<timestamp>2022-06-15 15:24:24</timestamp>
<transactionreference>57-100-38</transactionreference>
</response>
<secrand>Mm</secrand>
</responseblock>
THREEDRESULT Spezifikation der Antwortfelder
Klicken Sie hier, um die Feldspezifikation in einer neuen Registerkarte zu öffnen.
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:
{
"alias":"webservices@example.com",
"version":"1.00",
"request":[{
"accounttypedescription":"ECOM",
"pan":"4900490000000618",
"expirydate":"01/2038",
"currencyiso3a":"GBP",
"requesttypedescriptions":["AUTH"],
"sitereference":"test_auth12347",
"baseamount":"1050",
"orderreference":"V2.2-TESTCASE12-VISA",
"securitycode":"123",
"cavv":"dHJ1c3RwYXltZW50c2F1dGhlbnQ=",
"eci":"05",
"xid":"",
"enrolled":"Y",
"status":"Y",
"threedversion":"2.2.0",
"threeddirectorytransactionreference":"65f1188b-4961-4590-a3e7-f350c22c1d45"
}]
}
<requestblock version="3.67">
<alias>webservices@example.com</alias>
<request type="AUTH">
<merchant>
<orderreference>My_Order_123</orderreference>
</merchant>
<billing>
<payment>
<expirydate>01/2038</expirydate>
<pan>4900490000000618</pan>
<securitycode>123</securitycode>
</payment>
<amount currencycode="GBP">1050</amount>
</billing>
<operation>
<sitereference>test_auth12347</sitereference>
<accounttypedescription>ECOM</accounttypedescription>
</operation>
<threedsecure>
<cavv>dHJ1c3RwYXltZW50c2F1dGhlbnQ=</cavv>
<eci>05</eci>
<xid></xid>
<enrolled>Y</enrolled>
<status>Y</status>
<version>2.2.0</version>
<directorytransactionreference>0a458425-fea5-41a4-b094-159a69114dbe</directorytransactionreference>
</threedsecure>
</request>
</requestblock>
AUTH Feldspezifikation anfordern
Klicken Sie hier, um die Feldspezifikation in einer neuen Registerkarte zu öffnen.
AUTH Beispiel für eine Antwort
Im Folgenden finden Sie ein Beispiel für eine Antwort von AUTH:
{
"requestreference": "W56-wyqmtr42",
"response": [{
"accounttypedescription": "ECOM",
"acquirerresponsecode": "00",
"authcode": "TEST97",
"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######0618",
"merchantcountryiso2a": "GB",
"merchantname": "Test Merchant",
"merchantnumber": "00000000",
"operatorname": "webservices@example.com",
"orderreference": "V2.2-TESTCASE12-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": "56-9-2447012",
"transactionstartedtimestamp": "2022-06-15 11:53:41"
}],
"secrand": "rHL1xs6jJC",
"version": "1.00"
}
<responseblock version="3.67">
<requestreference>W60-q0hphpw8</requestreference>
<response type="AUTH">
<acquirerresponsecode>00</acquirerresponsecode>
<authcode>TEST68</authcode>
<billing>
<amount currencycode="GBP">1050</amount>
<dcc enabled="0"/>
<payment type="DELTA">
<issuer>SecureTrading Test Issuer1</issuer>
<issuercountry>OM</issuercountry>
<pan>490049######0618</pan>
</payment>
</billing>
<error>
<code>0</code>
<message>Ok</message>
</error>
<live>0</live>
<merchant>
<debtrepayment>0</debtrepayment>
<merchantcountryiso2a>GB</merchantcountryiso2a>
<merchantname>Test Merchant</merchantname>
<merchantnumber>00000000</merchantnumber>
<operatorname>webservices@example.com</operatorname>
<orderreference>My_Order_123</orderreference>
<tid>27880001</tid>
</merchant>
<operation>
<accounttypedescription>ECOM</accounttypedescription>
<authmethod>PRE</authmethod>
<splitfinalnumber>1</splitfinalnumber>
</operation>
<security>
<address>0</address>
<postcode>0</postcode>
<securitycode>2</securitycode>
</security>
<settlement>
<settleduedate>2022-06-15</settleduedate>
<settlestatus>0</settlestatus>
</settlement>
<threedsecure>
<cavv>dHJ1c3RwYXltZW50c2F1dGhlbnQ=</cavv>
<eci>05</eci>
<enrolled>Y</enrolled>
<status>Y</status>
<version>2.2.0</version>
</threedsecure>
<timestamp>2022-06-15 15:25:30</timestamp>
<transactionreference>60-9-2475947</transactionreference>
</response>
<secrand>0nifx</secrand>
</responseblock>
AUTH Spezifikation der Antwortfelder
Klicken Sie hier, um die Feldspezifikation in einer neuen Registerkarte zu öffnen.
Zurück: Umgang mit 3DS API AntwortenNächste:Prüfung der herausforderung Strömung - Durchgang