Standardmäßig werden bei der Übermittlung des Zahlungsformulars auf st.js sensible Zahlungsdaten automatisch mit Token versehen, um eine eindeutige cachetoken. Die cachetoken wird verwendet, um die Zahlungsdetails darzustellen.
Wenn Sie jedoch die erforderliche PCI-Zertifizierung für die Verarbeitung und Übermittlung sensibler Karteninhaberdaten erhalten haben und vor der Verarbeitung einer Zahlung Zugriff auf die unverschlüsselten Kartendaten haben, können Sie diese direkt an Ihren Server übermitteln, anstatt eine cachetoken indem Sie die nachstehenden Schritte ausführen:
Übersicht
- Erfassen Sie die erforderlichen Kartendaten (und andere optionale Angaben) mit Ihrem eigenen Kassenformular.
- Beim Absenden wird dieses erste Formular an eine Zwischenseite weitergeleitet, die unser Markup enthält. Dabei handelt es sich um eine Warteseite, die vorübergehend angezeigt wird, bevor der Kunde die ACS-Seite in einem Pop-up-Fenster angezeigt und/oder auf Ihre Erfolgsseite weitergeleitet wird.
Es wird empfohlen, eine Ladeanimation und/oder eine Meldung anzuzeigen, wenn das JS mehr als ein paar Sekunden braucht, um die Anfrage abzuschließen.
- Wenn der Kunde bei 3-D Secure angemeldet ist, kann der Browser des Kunden ein Overlay anzeigen, in dem er aufgefordert wird, einige grundlegende Aktionen zur Authentifizierung seiner Identität durchzuführen.
- Nach der Überprüfung und Authentifizierung durch den Kartenaussteller des Kunden schließt sich das Overlay automatisch, und die Zahlung wird verarbeitet. Anschließend wird dem Kunden an der Kasse eine Erfolgsmeldung angezeigt.
Ändern Sie das server-seitige Zahlungsformular
Bitte vergewissern Sie sich, dass Sie die obige Übersicht gelesen und verstanden haben, bevor Sie fortfahren. Dieser Abschnitt gilt nur für Händler, die die erforderliche PCI-Zertifizierung für die Verarbeitung und Übermittlung sensibler Karteninhaberdaten erhalten haben.
Sie müssen auf der Zwischenseite ein Formular hosten, das die sensiblen Daten in ein JWT lädt und dieses an Trust Payments übermittelt, wie unten beschrieben.
startOnLoad
Sie müssen sicherstellen, dass Ihr Formular das zusätzliche Feld startOnLoad innerhalb st.Components, mit dem Wert "true". Damit entfällt die Notwendigkeit einer Kundeninteraktion, damit das Formular die Daten an Trust Payments übermittelt.
submitOnError
Sie müssen sicherstellen, dass Ihr Formular das zusätzliche Feld submitOnError, mit dem Wert "true". Dadurch wird sichergestellt, dass der Kunde im Falle eines Fehlers auf Ihre Website weitergeleitet wird, damit er seine Daten ändern und die Zahlung erneut versuchen kann.
jwt
Siehe diese Seite um zu erfahren, wie das JWT konstruiert wird (JSON Web Token). In diesem alternativen Arbeitsablauf muss das JWT auch die pan, expirydate und securitycode Felder, wie im folgenden Beispiel gezeigt:
{
"payload":{
"accounttypedescription":"ECOM",
"baseamount":"1050",
"currencyiso3a":"GBP",
"sitereference":"test_site12345",
"requesttypedescriptions":["THREEDQUERY","AUTH"],
"pan":"4111111111111111",
"expirydate":"12/2031",
"securitycode":"123"
},
"iat":1559033849,
"iss":"jwt.user"
}
Formular
Im Gegensatz zu den anderen Beispielen muss das Formular in dieser Konfiguration keine Felder zur Abfrage der Kartendaten enthalten, da diese bereits im JWT enthalten sind.
Das Formular muss auch keine Schaltfläche zum Abschicken enthalten, denn startOnLoad wird der Inhalt des Formulars automatisch übermittelt, einschließlich des JWT.
<html>
<head>
</head>
<body>
<div id="st-notification-frame"></div>
<form id="st-form" action="https://www.example.com" method="POST">
</form>
<script src="<CDN_DOMAIN>"></script>
<script>
(function() {
var st = SecureTrading({
jwt:'INSERT YOUR JWT HERE',
submitOnError: true
});
st.Components({startOnLoad: true});
})();
</script>
</body>
</html>
Ersetzen Sie <CDN_DOMAIN>
mit einer unterstützten Domäne. Klicken Sie hier für eine vollständige Liste.
Überlegungen zur Protokollierung
Bei Verwendung des startOnLoad Zahlungsflusses enthält die Antwort des Gateways die JWT-Anfrage (im Feld "jwt"), die die übermittelten sensiblen Kartendaten enthält. Aus diesem Grund müssen Sie sicherstellen, dass diese sensiblen Zahlungsfelder (wie die pan, expirydate und securitycode) werden maskiert oder ausgeschlossen, wenn sie sich in Ihren Datensätzen anmelden, um die PCI-Compliance einzuhalten.