Testzahlung verarbeiten
Sobald Sie Ihr Zahlungsformular aktualisiert und die Bibliothek konfiguriert haben, können Sie eine Testkartenzahlung über unsere Sandbox durchführen. Verwenden Sie das zuvor konfigurierte Formular, füllen Sie es mit den folgenden Test-Zahlungsdaten aus und klicken Sie auf "Zahlen", um eine Testtransaktion durchzuführen.
Beim Testen können Sie die folgenden Testkartendetails verwenden, um eine "Erfolgreiche" Antwort zu simulieren:
- Visa Karte "4111 1111 1111 1111" oder Mastercard "5100 0000 0000 0511
- Ablaufdatum auf ein beliebiges gültiges Datum in der Zukunft setzen
- Sicherheitscode "123" verwenden
Nach dem Absenden des Formulars öffnet die "st.js" das Overlay im Browser zur Authentifizierung. Die Ergebnisse der durchgeführten Authentifizierung und der anschließenden Zahlung werden dem Formular hinzugefügt (mit id=“st-form”), die dann direkt an den in der Option action Attribut des Formulars, im Format eines application/x-www-form-urlencoded POST.
JWT-Antwort dekodieren
Das Ergebnis der verarbeiteten Anfrage wird in Form eines neuen JWTs zurückgegeben. Es folgt ein Beispiel für eine Antwort, die von Trust Payments zurückgegeben wird:
(Dekodiertes Token)
{
"iat": 1730901715,
"payload": {
"requestreference": "W12-3456abc",
"version": "1.00",
"jwt": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJ3ZWJzZXJ2aWNlc0BleGFtcGxlLmNvbSIsImlhdCI6MTczMDkwMTcxNSwicGF5bG9hZCI6eyJjdXJyZW5jeWlzbzNhIjoiR0JQIiwib3JkZXJyZWZlcmVuY2UiOiJNeU9yZGVyMTIzIiwic2l0ZXJlZmVyZW5jZSI6InRlc3RfMTIzNDUiLCJhY2NvdW50dHlwZWRlc2NyaXB0aW9uIjoiRUNPTSIsInBhcmVudHRyYW5zYWN0aW9ucmVmZXJlbmNlIjoiMTItNzAtMTIzNDciLCJiYXNlYW1vdW50IjoiMTA1MCIsInJlcXVlc3R0eXBlZGVzY3JpcHRpb25zIjpbXSwiY2FjaGV0b2tlbiI6IjEyLTFhNDVkYmQxNDJiYjdlYmNiMTEwODU4ODA2ZGQ4YTNhNzY1ODdkZDVkZTI3YTI3MDQ4YmNkODZkNjI5N2I5MGIifX0.zeTtEM3u4kdMlsg9B53-GSKbBHd6QC1zlzjN5F6TgL8",
"response": [{
"transactionstartedtimestamp": "2024-11-06 14:01:53",
"parenttransactionreference": "12-102-12345",
"threedsservertransid": "01ea50e8-0df9-4fc5-ac7a-a823b5c6e97a",
"merchantzipcode": "TR45 6ST",
"livestatus": "1",
"issuer": "TEST ISSUER",
"acstransid": "0aa3f4df-f5b4-4aad-8daf-8e707826e3d8",
"merchantcategorycode": "1234",
"dccenabled": "0",
"settleduedate": "2024-11-06",
"errorcode": "0",
"threedversion": "2.2.0",
"merchantnumber": "00000000",
"merchantcountryiso2a": "GB",
"status": "Y",
"merchantcity": "Bangor",
"transactionreference": "12-70-12346",
"merchantname": "Test Merchant",
"paymenttypedescription": "DELTA",
"orderreference": "MyOrder123",
"accounttypedescription": "ECOM",
"acsreferencenumber": "ACS_REF",
"requesttypedescription": "THREEDQUERY",
"chargedescription": "charge",
"maskedpan": "490049######0501",
"errormessage": "Ok",
"debtrepayment": "0",
"issuercountryiso2a": "US",
"enrolled": "Y",
"operatorname": "webservices@example.com",
"settlestatus": "0"
},
{
"transactionstartedtimestamp": "2024-11-06 14:01:55",
"retrievalreferencenumber": "431114368537",
"parenttransactionreference": "12-70-12346",
"stan": "368537",
"customeroutput": "RESULT",
"merchantzipcode": "TR45 6ST",
"livestatus": "1",
"issuer": "TEST ISSUER",
"merchantcategorycode": "1234",
"dccenabled": "0",
"settleduedate": "2024-11-06",
"errorcode": "0",
"threedversion": "2.2.0",
"orderreference": "MyOrder123",
"cavv": "dHJ1c3RwYXltZW50c2F1dGhlbnQ=",
"merchantnumber": "00000000",
"merchantcountryiso2a": "GB",
"status": "Y",
"merchantcity": "Bangor",
"transactionreference": "12-70-12347",
"merchantname": "Test Merchant",
"paymenttypedescription": "DELTA",
"baseamount": "1050",
"eci": "05",
"accounttypedescription": "ECOM",
"splitfinalnumber": "1",
"acquirerresponsecode": "00",
"requesttypedescription": "AUTH",
"acquirerresponsemessage": "Approved or completed Successfully",
"securityresponsesecuritycode": "2",
"chargedescription": "charge",
"currencyiso3a": "GBP",
"authcode": "003246",
"errormessage": "Ok",
"debtrepayment": "0",
"maskedpan": "490049######0501",
"operatorname": "webservices@example.com",
"enrolled": "Y",
"securityresponseaddress": "0",
"securityresponsepostcode": "0",
"issuercountryiso2a": "US",
"settlestatus": "0"
}],
"secrand": "8qCWba0EohN7NYs"
},
"aud": "webservices@example.com"
}
Wenn ein Fehler aufgetreten ist, kann es sein, dass wir die Antwort nicht kodieren können und dass die Antwort daher nur eine errorcode und errormessage.
In diesem Fall empfehlen wir, den Kunden aufzufordern, die Zahlung erneut zu versuchen.
z.B.. errorcode 50000, errormessage "Timeout".
Um die vollständige Antwort anzuzeigen, müssen Sie das zurückgegebene JWT entschlüsseln.
Wir empfehlen die Verwendung der Bibliotheken unter https://jwt.io zur Dekodierung des JWT.
Der Antwort-JWT besteht aus drei Teilen, die durch Punkte (".") getrennt sind, im folgenden Format:
Header.Payload.Signature
Bevor Sie der Antwort vertrauen können, müssen Sie die signature der zurückgegebene Wert mit dem erwarteten Wert übereinstimmt. Ist dies nicht der Fall, wurde er möglicherweise von einer unbefugten Partei geändert.
Die signature wird mit SHA-256 gehasht und kann daher nicht entschlüsselt werden. Dies bedeutet, dass zur Überprüfung der signature korrekt ist, muss Ihr System ihn mit Hilfe der header und payload zurückgegeben.
Vorausgesetzt, Sie verwenden die gleiche secret Während dieses Prozesses werden die neu berechneten signature sollte mit dem in der Antwort zurückgegebenen JWT übereinstimmen. Zusammengefasst:
- Base64URL dekodiert JWT header
- Base64URL dekodiert JWT payload
- Generieren Sie die Signatur neu, indem Sie die header, die payload und signieren sie mit Ihrem secret.
(wie oben erläutert)
Antwortfelder
Nachdem Sie die Antwort erhalten haben, empfehlen wir Ihnen, die nachstehenden Informationen zu beachten, wenn Sie die Zahlungssession des Kunden bearbeiten:
Transaktionsnummer
Die transactionreference ist ein eindeutiger Bezeichner für die Transaktion. Sie müssen diese Referenz aufzeichnen, um zu einem späteren Zeitpunkt Abfragen oder andere Aktionen zu dieser Transaktion durchführen zu können.
Anforderungstyp
Sie müssen die requesttypedescription in der Antwort zurückgegeben. Nur Werte von "AUTH" zeigen die Autorisierung einer Zahlung an. Klicken Sie hier, um eine vollständige Liste der verschiedenen Anfragetypen zu erhalten, die von Trust Payments unterstützt werden.
Auftragsnummer
Die orderreference ist ein benutzerdefinierter Bezeichner für die Transaktion, den Sie am besten in der JWT-Payload jeder Transaktion. Wenn Ihr System so konfiguriert wurde, dass es orderreference Werte zu Ihren Transaktionen hinzufügen, können Sie diese verwenden, um sicherzustellen, dass Sie die richtige Antwort nach einer Zahlung prüfen.
Fehlercode
Sie müssen die errorcode die in der Antwort AUTH zurückgegeben wird, um das Ergebnis der Transaktion zu ermitteln:
Fehlercode | Beschreibung | Erforderliche Maßnahmen |
0 | Erfolgreiche Transaktion. | Keine. |
30000 | Zeigt an, dass ungültige Daten innerhalb der payload des JWT. | Überprüfen Sie die Felder, die in der payload des JWTs unserer Spezifikation entsprechen. |
60010 60034 99999 |
Dies kann auf ein Kommunikationsproblem mit einer Bank oder einer dritten Partei zurückzuführen sein. | Wir empfehlen, den Kunden über das Problem zu informieren und ihn zu bitten, sich mit Ihnen in Verbindung zu setzen, um das Problem zu klären. Sie müssen sich mit unserem Support-Team in Verbindung setzen und eine Kopie der gesamten Anfrage und der zurückgesandten Antwort vorlegen. Wir werden uns dann mit den entsprechenden Parteien in Verbindung setzen, um den Status der Anfrage zu ermitteln. Stellen Sie im Interesse der Sicherheit sicher, dass Sie sensible Feldwerte, wie z. B. Kartendaten, auslassen oder maskieren. |
60022 | Der Kunde wurde aufgefordert, sich zu authentifizieren, konnte diesen Teil des Vorgangs jedoch nicht durchführen, so dass die Transaktion nicht autorisiert wurde. | Bieten Sie dem Kunden eine alternative Zahlungsmethode an und ermöglichen Sie ihm, es erneut zu versuchen. |
70000 | Autorisierung für die Zahlung versucht wurde, aber von der ausstellenden Bank abgelehnt wurde. | |
Andere | Klicken Sie hier für eine vollständige Liste der errorcode Werte, die zurückgegeben werden können. | Abhängig von der errorcode zurückgegeben. |
Abrechnungsstatus (settlestatus)
Sie müssen die settlestatus in der Antwort zurückgegeben:
Abrechnungsstatus (settlestatus) | Beschreibung | Erforderliche Maßnahmen |
0 | Anstehende automatische Abrechnung. | Keine. |
1 | Ausstehende manuelle Abrechnung (übersteuert Betrugs- / Doppelprüfungen, falls aktiviert). | |
2 | Die Zahlung wurde genehmigt, aber im System von Trust Paymentsausgesetzt. | Untersuchen Sie die Transaktion manuell, um den Grund für die Aussetzung der Zahlung zu ermitteln. Wenn Sie damit einverstanden sind, können Sie die Transaktion aktualisieren, um Abrechnung zu ermöglichen. |
3 | Zahlung annulliert. | Sehen Sie sich die errorcode um den Grund zu ermitteln, warum die Zahlung nicht abgeschlossen wurde. |
3-D eingeschrieben
Die enrolled Das Feld informiert Sie darüber, ob die Karte des Kunden bei 3-D Secure angemeldet ist:
3-D eingeschrieben | Beschreibung | Erforderliche Maßnahmen |
Y | Die Karte des Kunden ist registriert. | Wird von der Website JavaScript Library verwaltet. |
N | Die Karte des Kunden ist nicht registriert. | |
U | Es kann nicht festgestellt werden, ob die Karte registriert ist. | |
B | Die Authentifizierungsregel des Händlers wird ausgelöst, um die Authentifizierung in diesem Anwendungsfall zu umgehen. |
3-D-Status
Die status Feld informiert Sie, ob der Kunde während des 3-D Secure Prozesses erfolgreich authentifiziert wurde:
3-D-Status | Beschreibung | Erforderliche Maßnahmen |
Y | Der Kunde wurde erfolgreich authentifiziert. | Keine. Die JavaScript Library wird diesen Fall automatisch behandeln. |
A | Authentifizierung wurde versucht, aber nicht abgeschlossen. | Keine. Die JavaScript Library wird diesen Fall automatisch behandeln. |
U | Die Authentifizierung konnte nicht durchgeführt werden. | Keine. Die JavaScript Library wird diesen Fall automatisch behandeln. |
C | Herausforderung für die Authentifizierung erforderlich. | Keine. Die JavaScript Library wird diesen Fall automatisch behandeln. |
N | Der Kunde wurde nicht authentifiziert. Die Zahlung wird nicht bearbeitet werden. |
|
R | Die Authentifizierung wurde abgelehnt. Die Zahlung wird nicht bearbeitet werden. |
3-D-Version
Die version gibt die für die Zahlung verwendete Version von 3-D Secure an (z. B. "2.x.x" für die Authentifizierung über 3-D Secure v2).
Ihr Fortschritt
Nachdem Sie Ihre Bibliothek konfiguriert haben, sollten Sie Ihre Content Security Policy (CSP) überprüfen.