Verwerk testbetaling
Zodra u uw betalingsformulier hebt bijgewerkt en de bibliotheek hebt geconfigureerd, kunt u een testbetaling per kaart uitvoeren via onze sandbox. Gebruik het formulier dat u eerder hebt geconfigureerd, vul het formulier in met de volgende testbetalingsgegevens en klik op "Betalen" om een testtransactie uit te voeren.
Bij het testen kunt u de volgende testkaartgegevens gebruiken om een "Succesvol" antwoord te simuleren:
- Visa kaart "4111 1111 1111 1111" of Mastercard "5100 0000 0000 0511".
- Stel de vervaldatum in op elke geldige datum in de toekomst
- Gebruik veiligheidscode "123".
Nadat het formulier is ingediend, opent de "st.js" de overlay in de browser voor de authenticatie. De resultaten van de uitgevoerde authenticatie en de daaropvolgende betaling worden aan het formulier toegevoegd (met id=“st-form”), die dan rechtstreeks naar de server wordt gestuurd die is opgegeven in de action attribuut van het formulier, in het formaat van een application/x-www-form-urlencoded POST.
JWT-antwoord decoderen
Het resultaat van het verwerkte verzoek wordt teruggestuurd in de vorm van een nieuw JWT. Het volgende is een voorbeeld van een door Trust Payments geretourneerd antwoord:
(Gedecodeerd teken)
{
"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"
}
Als er een fout is opgetreden, kunnen wij het antwoord mogelijk niet coderen, waardoor het antwoord mogelijk slechts een errorcode en errormessage.
In dit scenario raden wij aan de klant te vragen de betaling opnieuw te proberen.
bijv. errorcode 50000, errormessage "Time-out".
Om het volledige antwoord te bekijken, moet u het teruggestuurde JWT decoderen.
We raden aan de bibliotheken te gebruiken die te vinden zijn op https://jwt.io om de JWT te decoderen.
Het antwoord JWT bestaat uit drie delen, gescheiden door punten ("."), in het volgende formaat:
Header.Payload.Signature
Voordat u het antwoord kunt vertrouwen, moet u de signature geretourneerde waarde overeenkomt met de verwachte waarde. Zo niet, dan kan deze door een onbevoegde partij zijn gewijzigd.
De signature is gehashed met SHA-256, en kan dus niet gedecodeerd worden. Dit betekent dat om de signature correct is, moet uw systeem het opnieuw berekenen met behulp van de header en payload teruggestuurd.
Mits u dezelfde secret tijdens dit proces, de herberekende signature moet overeenkomen met die in het antwoord JWT. Samengevat:
- Base64URL decoderen JWT header
- Base64URL decoderen JWT payload
- De handtekening opnieuw genereren door de header, de payload en ze ondertekenen met uw secret.
(zoals hierboven uitgelegd)
Antwoordvelden
Nadat u het antwoord hebt ontvangen, raden wij u aan de onderstaande informatie door te nemen wanneer u de betalingssessie van de klant behandelt:
Transactiereferentie
De transactionreference is een unieke identificatiecode voor de transactie. U moet deze referentie vastleggen om op een later tijdstip query's of andere acties op deze transactie uit te voeren.
Verzoektype
U moet de requesttypedescription teruggestuurd in het antwoord. Alleen waarden van "AUTH" geven de autorisatie van een betaling aan. Klik hier voor een volledige lijst van verschillende verzoektypes die door Trust Payments worden ondersteund.
Referentie bestelling
De orderreference is een aangepaste identificatiecode voor de transactie die we aanbevelen in de JWT payload van elke transactie. Als uw systeem is geconfigureerd om orderreference waarden aan uw transacties, die u kunt gebruiken om ervoor te zorgen dat u het juiste antwoord controleert na een betaling.
Foutcode
U moet de errorcode teruggestuurd in het antwoord op AUTH om het resultaat van de transactie te bepalen:
Foutcode | Beschrijving | Vereiste acties |
0 | Succesvolle transactie. | Geen enkele. |
30000 | Geeft aan dat er ongeldige gegevens zijn ingediend binnen de payload van het JWT. | Controleer de velden die in de payload van het JWT voldoen aan onze specificatie. |
60010 60034 99999 |
Dit kan het gevolg zijn van een communicatieprobleem met een bank of een derde partij. | Wij raden u aan de klant te informeren over het probleem en contact met u op te nemen om het probleem op te vragen. U moet contact opnemen met ons Support Team en een kopie verstrekken van het gehele ingediende verzoek en het teruggestuurde antwoord, en wij zullen contact opnemen met de relevante partijen om de status van het verzoek vast te stellen. Zorg er in het belang van de veiligheid voor dat u gevoelige veldwaarden, zoals kaartgegevens, weglaat of maskeert. |
60022 | De klant werd om authenticatie gevraagd, maar slaagde niet in dit deel van het proces, wat betekent dat de transactie niet werd geautoriseerd. | Geef de klant een alternatief betalingsmiddel en laat hem opnieuw proberen. |
70000 | autorisatie voor de betaling werd geprobeerd, maar werd geweigerd door de uitgevende bank. | |
Andere | Klik hier voor een volledige lijst van errorcode waarden die kunnen worden teruggegeven. | Hangt af van de errorcode teruggestuurd. |
Status betaling (settlestatus)
U moet de settlestatus in het antwoord:
Status betaling (settlestatus) | Beschrijving | Vereiste acties |
0 | In afwachting van automatische afwikkeling. | Geen enkele. |
1 | In afwachting van handmatige afwikkeling (overschrijft fraude / dubbele controles, indien ingeschakeld). | |
2 | Betaling geautoriseerd maar opgeschort op Trust Payments's systeem. | Onderzoek de transactie handmatig om de reden te bepalen waarom de betaling is opgeschort. Als je verder kunt gaan, kun je de transactie bijwerken om afwikkeling toe te staan. |
3 | Betaling geannuleerd. | Kijk naar de errorcode om de reden vast te stellen waarom de betaling niet werd voltooid. |
3-D ingeschreven
De enrolled veld informeert u of de kaart van de klant is ingeschreven op 3-D Secure:
3-D ingeschreven | Beschrijving | Vereiste acties |
Y | De kaart van de klant is geregistreerd. | Behandeld door de JavaScript Library. |
N | De kaart van de klant is niet geregistreerd. | |
U | Kan niet bepalen of de kaart geregistreerd is. | |
B | Merchant authentication rule wordt geactiveerd om de authenticatie in dit use case te omzeilen. |
3-D status
De status veld laat u weten of de klant met succes is geauthenticeerd tijdens het 3-D Secure proces:
3-D status | Beschrijving | Vereiste acties |
Y | De klant is succesvol geverifieerd. | Geen. De JavaScript Library handelt dit geval automatisch af. |
A | Authenticatie geprobeerd maar niet voltooid. | Geen. De JavaScript Library handelt dit geval automatisch af. |
U | Authenticatie kon niet worden uitgevoerd. | Geen. De JavaScript Library handelt dit geval automatisch af. |
C | Uitdaging vereist voor authenticatie. | Geen. De JavaScript Library handelt dit geval automatisch af. |
N | De klant was niet geverifieerd. De betaling zal niet worden verwerkt. |
|
R | Authenticatie werd geweigerd. De betaling zal niet worden verwerkt. |
3-D versie
De version veld specificeert de versie van 3-D Secure die wordt gebruikt voor de betaling (bijv. "2.x.x" om authenticatie via 3-D Secure v2 aan te geven).
Uw vooruitgang
Nu u uw bibliotheek hebt geconfigureerd, moet u uw Content Security Policy (CSP) bekijken.