...
width | 900px |
---|
...
...
...
Initiierung der Zahlung
Die anfängliche Anfrage an das Computop Paygate ist unabhängig vom zugrundeliegenden 3DS-Protokoll gleich.
Um eine Server-zu-Server 3-D Secure Kartenzahlungssequenz zu starten, senden Sie bitte folgende Schlüssel-Wert-Paare an https://www.computop-paygate.com/direct.aspx.
Aufruf-Elemente
Hinweis: Bei einer vom Händler initiierten, wiederkehrenden Zahlung sind die JSON-Objekte (außer credentialOnFile und card), die URLNotify und die TermURL keine Pflichtparameter, da kein 3D Secure und auch keine Risikobewertung durch die kartenausgebende Bank stattfindet und das Ergebnis der Zahlungsanfrage direkt in der Response mitgeteilt wird.
...
Message-Version.
Zulässige Werte:
2.0
...
Eindeutige Referenznummer des Händlers, welche als Auszahlungsreferenz in der entsprechenden Acquirer EPA-Datei angegeben wird. Bitte beachten Sie, ohne die Übergabe einer eigenen Auszahlungsreferenz können Sie die EPA-Transaktionen nicht zuordnen, zusätzlich kann das Computop Settlement File (CTSF) auch nicht zusätzlich angereichert werden.
...
Bestimmt Art und Zeitpunkt des Zahlungsabschlusses (d.h. Dual-Nachrichtensysteme).
Zulässige Werte:
AUTO
= Abschluss sofort nach der Autorisierung (Standardwert)MANUAL
= Abschluss erfolgt durch den Händler<Number>
= Verzögerung in Stunden bis zum Abschluss (ganze Zahl; 1 bis 696)
...
Gibt die Art der verwendeten Schnittstelle zur Initiierung der Transaktion an.
Zulässige Werte:
Browser
App
3RI
Wenn nicht angegeben, wird der Wert Browser
verwendet.
...
ans..256
...
Indikator zur Anforderung einer Konto-Verifizierung (alias Nullwert-Autorisierung). Wenn eine Konto-Verifizierung angefordert wird, ist der übermittelte Betrag optional und wird für die tatsächliche Zahlungstransaktion (d.h. Autorisierung) ignoriert.
Zulässige Werte:
Yes
...
...
JSON
...
O
...
Objekt, dass die Authentisierungs-Richtlinien und Strategien zur Behandlung von Ausnahmen angibt
...
...
JSON
...
C
...
Objekt mit Details der Authentisierungsdaten, falls die Authentisierung durch Dritte oder durch den Händler durchgeführt wurde
...
...
JSON
...
O
...
Das Objekt Prior Transaction Authentication Information enthält optionale Informationen über eine 3DS-Authentisierung eines Karteninhabers, die vor der aktuellen Transaktion erfolgt ist
...
...
JSON
...
C
...
Exakte Browserinformationen sind nötig, um eine optimierte Nutzererfahrung zu liefern. Erforderlich für 3DS 2.0 Transaktionen.
...
...
JSON
...
O
...
Die Kontoinformationen enthalten optionale Informationen über das Kundenkonto beim Händler
...
...
JSON
...
C
...
Der Kunde, dem die Waren und / oder Dienstleistungen in Rechnung gestellt werden. Erforderlich, sofern nicht Markt- oder regionale Mandate das Senden dieser Informationen beschränken.
...
...
JSON
...
C
...
Der Kunde, an den die Waren und / oder Dienstleistungen gesendet werden. Erforderlich (falls verfügbar und von billToCustomer abweichend), sofern nicht Markt- oder regionale Mandate das Senden dieser Informationen beschränken.
...
...
JSON
...
C
...
Rechnungsadresse. Erforderlich für 3DS 2.0 (falls verfügbar), sofern nicht Markt- oder regionale Mandate das Senden dieser Informationen beschränken.
...
...
JSON
...
C
...
Lieferadresse. Falls abweichend von billingAddress, erforderlich für 3DS 2.0 (falls verfügbar), sofern nicht Markt- oder regionale Mandate das Senden dieser Informationen beschränken.
...
...
JSON
...
C
...
Objekt, dass Art und Reihe der Transaktionen angibt, die unter Verwendung von beim Händler hinterlegten Zahlungsdaten (z.B. Kontonummer oder Zahlungs-Token) zur Verarbeitung künftiger Käufe eines Kunden erfolgen. Erforderlich, falls zutreffend.
...
...
JSON
...
O
...
Der Händler-Risikoindikator enthält optionale Informationen über den bestimmten Einkauf des Kunden
...
URLNotify
...
an..256
...
M
...
Die Händler-URL, die asynchrone Anfragen während des Authentisierungsprozesses empfängt
...
UserData
...
ans..1024
...
O
...
Wenn beim Aufruf angegeben, übergibt das Paygate den Parameter mit dem Zahlungsergebnis an den Shop
...
MAC
...
an64
...
M
...
Hash Message Authentication Code (HMAC) mit SHA-256 Algorithmus
Antwort-Elemente
...
MID
...
ans..30
...
M
...
HändlerID, die von Computop vergeben wird
...
PayID
...
ans32
...
M
...
Von Computop vergebene ID für die Zahlung/Transaktion
...
XID
...
ans64
...
M
...
Vom Paygate vergebene ID für die zu einer Zahlung ausgeführte Operation
...
TransID
...
ans..64
...
M
...
Transaktionsnummer des Händlers, die für jede Zahlung eindeutig sein sollte
...
Code
...
n8
...
M
...
Paygate-Antwortcode
...
Status
...
a..20
...
M
...
Status der Transaktion.
Zulässige Werte:
AUTHENTICATION_REQUEST
PENDING
FAILED
...
Description
...
ans..1024
...
M
...
Textliche Beschreibung des Codes
...
...
JSON
...
M
...
Das Datenelement Card Range Data enthält Informationen, welche die jüngste vom ACS, der den Kartenbereich hostet, unterstützte EMV 3-D Secure-Version angeben. Es kann optional auch die ACS URL für die 3DS Methode enthalten, falls vom ACS unterstützt, sowie die DS Start- und End-Protokoll-Versionen, die den Kartenbereich unterstützen.
...
...
JSON
...
M
...
Objekt, dass die erforderlichen Datenelemente für die Konstruktion der Anfrage zur Zahler-Authentisierung im Falle eines Fallbacks auf 3DS 1.0 enthält.
...
UserData
...
ans..1024
...
C
...
Wenn beim Aufruf angegeben, übergibt das Paygate den Parameter mit dem Zahlungsergebnis an den Shop
Das Objekt versioningData
gibt die EMV 3DS Protokoll-Versionen (d.h. 2.1.0 oder höher) an, die vom Access Control Server des Issuers unterstützt werden.
Wenn die entsprechenden Felder der Protokoll-Version NULL sind, bedeutet dies, dass der BIN-Bereich des Karten-Issuers nicht für 3DS 2.0 registriert ist und ein Fallback auf 3DS 1.0 für Transaktionen erforderlich ist, die unter den Geltungsbereich der PSD2 SCA fallen.
Achten Sie beim Zerlegen von versioningData
bitte auch auf das Subelement errorDetails
, das den Grund angibt, falls einige Felder nicht ausgefüllt sind (z.B. Ungültige Kontonumber des Karteninhabers übergeben, nicht verfügbare Kartenbereichsdaten, Fehler beo Codieren/Serialisieren der 3DS Methoden-Daten usw.)
Code Block | ||||
---|---|---|---|---|
| ||||
{
"threeDSServerTransID": "14dd844c-b0fc-4dfe-8635-366fbf43468c",
"acsStartProtocolVersion": "2.1.0",
"acsEndProtocolVersion": "2.1.0",
"dsStartProtocolVersion": "2.1.0",
"dsEndProtocolVersion": "2.1.0",
"threeDSMethodURL": "http://www.acs.com/script",
"threeDSMethodDataForm": "eyJ0aHJlZURTTWV0aG9kTm90aWZpY2F0aW9uVVJMIjoiaHR0cHM6Ly93d3cuY29tcHV0b3AtcGF5Z2F0ZS5jb20vY2JUaHJlZURTLmFzcHg_YWN0aW9uPW10aGROdGZuIiwidGhyZWVEU1NlcnZlclRyYW5zSUQiOiIxNGRkODQ0Yy1iMGZjLTRkZmUtODYzNS0zNjZmYmY0MzQ2OGMifQ==",
"threeDSMethodData": {
"threeDSMethodNotificationURL": "https://www.computop-paygate.com/cbThreeDS.aspx?action=mthdNtfn",
"threeDSServerTransID": "14dd844c-b0fc-4dfe-8635-366fbf43468c"
}
} |
3DS Methode
Die 3DS Methode ermöglicht das Erfassen zusätzlicher Browserinformationen durch einen ACS vor Erhalt der Authensisierungsanfrage (AReq), um die Risikobeurteilung der Transaktion zu erleichtern. Die Unterstützung der 3DS Methode ist optional und liegt im Ermessen des Issuers.
Das Objekt versioningData
enthält einen Wert für threeDSMethodURL
. Der Händler sollte die 3DS Methode über einen versteckten HTML-iFrame im Browser des Karteninhabers aufrufen und ein Formular mit einem Feld namens threeDSMethodData
über HTTP POST an die ACS 3DS Methoden-URL senden.
3DS Methode: threeDSMethodURL
Beachten Sie bitte, dass die threeDSMethodURL
vom Computop Paygate ausgefüllt wird, falls der Issuer die 3DS Methode nicht unterstützt. Der 3DS Methoden-Formular-Post wie unten dargestellt muss unabhängig davon ausgeführt werden, ob dies vom Issuer unterstützt wird. Das ist notwending, um die direkte Kommunikation zwischen dem Browser und dem Computop Paygate im Falle einer angeordneten Challenge oder eines reibungslosen Ablaufs zu erleichtern.
...
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
<form name="frm" method="POST" action="Rendering URL">
<input type="hidden" name="threeDSMethodData" value="eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjNhYzdjYWE3LWFhNDItMjY2My03OTFiLTJhYzA1YTU0MmM0YSIsInRocmVlRFNNZXRob2ROb3RpZmljYXRpb25VUkwiOiJ0aHJlZURTTWV0aG9kTm90aWZpY2F0aW9uVVJMIn0">
</form> |
Der ACS interagiert mit dem Browser des Karteninhabers über den HTML-iFrame und speichert dann die zutreffenden Werte mit der 3DS Server Transaction ID für die Verwendung, wenn eine nachfolgende Authentisierungs-Nachricht empfangen wird, welche die gleiche 3DS Server Transaction ID enthält.
...
title | Netcetera 3DS Web SDK |
---|
...
Initiierung der Zahlung
Multiexcerpt | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||
Die anfängliche Anfrage an das
|
Aufruf-Elemente
Hinweis: Bei einer vom Händler initiierten, wiederkehrenden Zahlung sind die JSON-Objekte (außer credentialOnFile und card), die URLNotify und die TermURL keine Pflichtparameter, da kein 3D Secure und auch keine Risikobewertung durch die kartenausgebende Bank stattfindet und das Ergebnis der Zahlungsanfrage direkt in der Response mitgeteilt wird.
Table Filter | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||
|
Antwort-Elemente
Table Filter | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||
|
versioningData
Das Objekt versioningData
gibt die EMV 3DS Protokoll-Versionen (d.h. 2.1.0 oder höher) an, die vom Access Control Server des Issuers unterstützt werden.
Wenn die entsprechenden Felder der Protokoll-Version NULL sind, bedeutet dies, dass der BIN-Bereich des Karten-Issuers nicht für 3DS 2.0 registriert ist und ein Fallback auf 3DS 1.0 für Transaktionen erforderlich ist, die unter den Geltungsbereich der PSD2 SCA fallen.
Achten Sie beim Zerlegen von versioningData
bitte auch auf das Subelement errorDetails
, das den Grund angibt, falls einige Felder nicht ausgefüllt sind (z.B. Ungültige Kontonumber des Karteninhabers übergeben, nicht verfügbare Kartenbereichsdaten, Fehler beo Codieren/Serialisieren der 3DS Methoden-Daten usw.)
BASEURL=
Multiexcerpt include | ||||||
---|---|---|---|---|---|---|
|
Multiexcerpt include | ||||||
---|---|---|---|---|---|---|
|
3DS Methode
Die 3DS Methode ermöglicht das Erfassen zusätzlicher Browserinformationen durch einen ACS vor Erhalt der Authensisierungsanfrage (AReq), um die Risikobeurteilung der Transaktion zu erleichtern. Die Unterstützung der 3DS Methode ist optional und liegt im Ermessen des Issuers.
Das Objekt versioningData
enthält einen Wert für threeDSMethodURL
. Der Händler sollte die 3DS Methode über einen versteckten HTML-iFrame im Browser des Karteninhabers aufrufen und ein Formular mit einem Feld namens threeDSMethodData
über HTTP POST an die ACS 3DS Methoden-URL senden.
3DS Methode: threeDSMethodURL
Multiexcerpt include SpaceWithExcerpt EN MultiExcerptName threeDSMethodURL PageWithExcerpt EN:Server-2-Server Integration
Beachten Sie bitte, dass die threeDSMethodURL
vom
Multiexcerpt include | ||||||
---|---|---|---|---|---|---|
|
Multiexcerpt include | ||||||
---|---|---|---|---|---|---|
|
3DS Method: Keine IssuerthreeDSMethodURL
Multiexcerpt include SpaceWithExcerpt EN MultiExcerptName No issuer threeDSMethodURL PageWithExcerpt EN:Server-2-Server Integration
3-D Secure Method Form Post
Multiexcerpt include | ||||||
---|---|---|---|---|---|---|
|
Der ACS interagiert mit dem Browser des Karteninhabers über den HTML-iFrame und speichert dann die zutreffenden Werte mit der 3DS Server Transaction ID für die Verwendung, wenn eine nachfolgende Authentisierungs-Nachricht empfangen wird, welche die gleiche 3DS Server Transaction ID enthält.
Info | ||
---|---|---|
| ||
Sie können nach eigenem Ermessen die Operationen |
Nachdem die 3DS Methode abgeschlossen ist, weist der ACS den Browser des Karteninhabers über das iFrame-Antwortdokument an, threeDSMethodData
als ein verstecktes Formularfeld an die 3DS Method Notification URL zu übermitteln.
ACS Response Document
Multiexcerpt include | ||||||
---|---|---|---|---|---|---|
|
3-D Secure Method Notification Form
Multiexcerpt include | ||||||
---|---|---|---|---|---|---|
|
Note | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Beachten SIe bitte, dass die
|
Authentisierung
Wenn die 3DS-Methode vom ACS des Issuers unterstützt wird und vom Händler aufgerufen wurde, setzt das
Multiexcerpt include | ||||||
---|---|---|---|---|---|---|
|
Das Ergebnis der Authentisierung wird per HTTP POST an die URLNotify
übertragen. Es kann anzeigen, dass der Karteninhaber authentisiert worden ist oder dass eine weitere Interaktion des Karteninhabers (d.h. Challenge) für den Abschluss der Authentisierung erforderlich ist.
Falls für den Karteninhaber eine Challenge für nötig angesehen ist, überträgt das
Multiexcerpt include | ||||||
---|---|---|---|---|---|---|
|
acsChallengeMandated
, challengeRequest
, base64EncodedChallengeRequest
und acsURL
. Anderenfalls setzt das Multiexcerpt include | ||||||
---|---|---|---|---|---|---|
|
Karteninhaber-Challenge: Browser-Antwort
Multiexcerpt include SpaceWithExcerpt EN MultiExcerptName Challenge - Browser Response PageWithExcerpt EN:Server-2-Server Integration
Browser Challenge-Antwort
Datenelemente
Table Filter | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||
|
Schema Browser Challenge-Antwort
Multiexcerpt include | ||||||
---|---|---|---|---|---|---|
|
Beispiel Browser Challenge-Antwort
Multiexcerpt include | ||||||
---|---|---|---|---|---|---|
|
Authentisierungs-Benachrichtigung
Die Datenelemente der Authentisierungs-Benachrichtigung stehen in folgender Tabelle.
Table Filter | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||
|
Browser Challenge
Wenn eine Challenge für nötig angesehen wird (siehe challengeRequest), erfolgt die Browser Challenge im Browser des Karteninhabers. Zum Erzeugen einer Challenge ist es erforderlich, den Wert base64EncodedChallengeRequest
über ein HTML-iFrame an die ACS URL zu posten.
Challenge-Anfrage
Multiexcerpt include | ||||||
---|---|---|---|---|---|---|
|
Sie können die Operationen init3DSChallengeRequest
oder createIFrameAndInit3DSChallengeRequest
aus dem nca3DSWebSDK verwenden, um die Challenge-Nachricht an den Browser des Karteninhabers zu übermitteln.
3DS Challenge-Anfrage initialisieren - Beispiel
Multiexcerpt include | ||||||
---|---|---|---|---|---|---|
|
Sobald die Challenge des Karteninhabers abgeschlossen, abgebrochen oder per Zeitüberschreitung beendet ist, weist der ACS den Browser an, die Ergebnisse per Post an die in der Challenge-Anfrage angegebene Benachrichtigungs-URL zu senden und eine Ergebnis-Anfrage (RReq) über den Directory Server an den 3DS Server zu senden.
Note | ||||||||
---|---|---|---|---|---|---|---|---|
Beachten Sie bitte, dass die in der Challenge-Anfrage übergebene Benachrichtigungs-URL auf das
|
Autorisierung
Nachdem die erfolgreiche Authentisierung des Karteninhabers oder der Nachweis der versuchten Authentisierung/Verifizierung bereitgestellt ist, setzt das
Multiexcerpt include | ||||||
---|---|---|---|---|---|---|
|
Falls die Authentisierung des Karteninhabers nicht erfolgreich war oder der Nachweise der versuchten Authentisierung/Verifizierung nicht bereitgestellt werden kann, setzt das
Multiexcerpt include | ||||||
---|---|---|---|---|---|---|
|
In beiden Fällen liefert das
Multiexcerpt include | ||||||
---|---|---|---|---|---|---|
|
URLNotify
mit den Datenelementen gemäß nachstehender Tabelle.Zahlungs-Benachrichtigung
Table Filter | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||
|
Browser Zahlungs-Antwort
Zusätzlich werden nachstehende Datenelemente im JSON-Format im Body der HTTP-Antwort zum Browser des Karteninhabers übertragen. Beachten Sie bitte, dass die Datenelemente (d.h. MID
, Len
, Data
) base64-codiert sind.
Datenelemente
Table Filter | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||
|
Schema
Multiexcerpt include | ||||||
---|---|---|---|---|---|---|
|
Nachdem die 3DS Methode abgeschlossen ist, weist der ACS den Browser des Karteninhabers über das iFrame-Antwortdokument an, threeDSMethodData
als ein verstecktes Formularfeld an die 3DS Method Notification URL zu übermitteln.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<title>Identifying...</title>
</head>
<body>
<script>
var tdsMethodNotificationValue = 'eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6ImUxYzFlYmViLTc0ZTgtNDNiMi1iMzg1LTJlNjdkMWFhY2ZhMiJ9';
var form = document.createElement("form");
form.setAttribute("method", "post");
form.setAttribute("action", "notification URL");
addParameter(form, "threeDSMethodData", tdsMethodNotificationValue);
document.body.appendChild(form);
form.submit();
function addParameter(form, key, value) {
var hiddenField = document.createElement("input");
hiddenField.setAttribute("type", "hidden");
hiddenField.setAttribute("name", key);
hiddenField.setAttribute("value", value);
form.appendChild(hiddenField);
}
</script>
</body>
</html> |
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
<form name="frm" method="POST" action="3DS Method Notification URL">
<input type="hidden" name="threeDSMethodData" value="eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6ImUxYzFlYmViLTc0ZTgtNDNiMi1iMzg1LTJlNjdkMWFhY2ZhMiJ9">
</form> |
Note |
---|
Beachten SIe bitte, dass die |
Authentisierung
Wenn die 3DS-Methode vom ACS des Issuers unterstützt wird und vom Händler aufgerufen wurde, setzt das Computop Paygate automatisch mit der Authentisierungsanfrage fort, nachdem die 3DS-Methode abgeschlossen ist (d.h. 3DS Methoden-Benachrichtigung).
Das Ergebnis der Authentisierung wird per HTTP POST an die URLNotify
übertragen. Es kann anzeigen, dass der Karteninhaber authentisiert worden ist oder dass eine weitere Interaktion des Karteninhabers (d.h. Challenge) für den Abschluss der Authentisierung erforderlich ist.
Falls für den Karteninhaber eine Challenge für nötig angesehen ist, überträgt das Computop Paygate ein JSON-Objekt im Body der HTTP Browser-Antwort mit den Elementen acsChallengeMandated
, challengeRequest
, base64EncodedChallengeRequest
und acsURL
. Anderenfalls setzt das Computop Paygate in einem reibungslosen Ablauf automatisch fort und antwortet dem Broser des Karteninhabers, sobald die Autorisierung abgeschlossen ist.
Kartzeninhaber-Challenge: Browser-Antwort
Browser Challenge-Antwort
Datenelemente
...
acsChallengeMandated
...
boolean
...
M
...
Zeigt an, ob für die Autorisierung der Transaktion eine Challenge erforderlich ist wegen örtlicher/regionaler Vorgaben oder anderen Variablen
...
...
object
...
M
...
Objekt Challenge-Anfrage
...
base64EncodedChallengeRequest
...
string
...
M
...
Base64-codiertes Objekt Challenge-Anfrage
...
acsURL
...
string
...
M
...
Vollständige URL des ACS, die für das Posten der Challenge-Anfrage verwendet werden soll
Schema
Code Block | ||||
---|---|---|---|---|
| ||||
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"acsChallengeMandated": {"type": "boolean"},
"challengeRequest": {"type": "object"},
"base64EncodedChallengeRequest": {"type": "string"},
"acsURL": {"type": "string"}
},
"required": ["acsChallengeMandated", "challengeRequest", "base64EncodedChallengeRequest", "acsURL"],
"additionalProperties": false
} |
Beispiel
Code Block | ||||
---|---|---|---|---|
| ||||
{
"acsChallengeMandated": true,
"challengeRequest": {
"threeDSServerTransID": "8a880dc0-d2d2-4067-bcb1-b08d1690b26e",
"acsTransID": "d7c1ee99-9478-44a6-b1f2-391e29c6b340",
"messageType": "CReq",
"messageVersion": "2.1.0",
"challengeWindowSize": "01",
"messageExtension": [
{
"name": "emvcomsgextInChallenge",
"id": "tc8Qtm465Ln1FX0nZprA",
"criticalityIndicator": false,
"data": "messageExtensionDataInChallenge"
}
]
},
"base64EncodedChallengeRequest": "base64-encoded-challenge-request",
"acsURL": "acsURL-to-post-challenge-request"
} |
Authentisierungs-Benachrichtigung
Die Datenelemente der Authentisierungs-Benachrichtigung stehen in folgender Tabelle.
...
MID
...
ans..30
...
M
...
HändlerID, die von Computop vergeben wird
...
PayID
...
ans32
...
M
...
Von Computop vergebene ID für die Zahlung/Transaktion
...
TransID
...
ans..64
...
M
...
ransaktionsnummer des Händlers, die für jede Zahlung eindeutig sein sollte
...
Code
...
n8
...
M
...
Paygate-Antwortcode
...
...
JSON
...
M
...
Antwort-Objekt als Rückgabe zur Authentisierungs-Anfrage beim ACS
...
MAC
...
an64
...
M
...
Hash Message Authentication Code (HMAC) mit SHA-256 Algorithmus
Browser Challenge
Wenn eine Challenge für nötig angesehen wird (siehe challengeRequest), erfolgt die Browser Challenge im Browser des Karteninhabers. Zum Erzeugen einer Challenge ist es erforderlich, den Wert base64EncodedChallengeRequest
über ein HTML-iFrame an die ACS URL zu posten.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
<form name="challengeRequestForm" method="post" action="acsChallengeURL">
<input type="hidden" name="creq" value="ewogICAgInRocmVlRFNTZXJ2ZXJUcmFuc0lEIjogIjhhODgwZGMwLWQyZDItNDA2Ny1iY2IxLWIwOGQxNjkwYjI2ZSIsCiAgICAiYWNzVHJhbnNJRCI6ICJkN2MxZWU5OS05NDc4LTQ0YTYtYjFmMi0zOTFlMjljNmIzNDAiLAogICAgIm1lc3NhZ2VUeXBlIjogIkNSZXEiLAogICAgIm1lc3NhZ2VWZXJzaW9uIjogIjIuMS4wIiwKICAgICJjaGFsbGVuZ2VXaW5kb3dTaXplIjogIjAxIiwKICAgICJtZXNzYWdlRXh0ZW5zaW9uIjogWwoJCXsKCQkJIm5hbWUiOiAiZW12Y29tc2dleHRJbkNoYWxsZW5nZSIsCgkJCSJpZCI6ICJ0YzhRdG00NjVMbjFGWDBuWnByQSIsCgkJCSJjcml0aWNhbGl0eUluZGljYXRvciI6IGZhbHNlLAoJCQkiZGF0YSI6ICJtZXNzYWdlRXh0ZW5zaW9uRGF0YUluQ2hhbGxlbmdlIgoJCX0KICAgIF0KfQ==">
</form> |
Sie können die Operationen init3DSChallengeRequest
oder createIFrameAndInit3DSChallengeRequest
aus dem nca3DSWebSDK verwenden, um die Challenge-Nachricht an den Browser des Karteninhabers zu übermitteln.
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<script src="nca-3ds-web-sdk.js" type="text/javascript"></script>
<title>Init 3DS Challenge-Anfrage - Beispiel</title>
</head>
<body>
<!-- Dieses Beispiel zeigt, wie Challenge-Anfragen für verschiedenen Fenstergrößen initialisiert werden. -->
<div id="frameContainer01"></div>
<div id="frameContainer02"></div>
<div id="frameContainer03"></div>
<div id="frameContainer04"></div>
<div id="frameContainer05"></div>
<iframe id="iframeContainerFull" name="iframeContainerFull" width="100%" height="100%"></iframe>
<script type="text/javascript">
// All Container laden
iFrameContainerFull = document.getElementById('iframeContainerFull');
container01 = document.getElementById('frameContainer01');
container02 = document.getElementById('frameContainer02');
container03 = document.getElementById('frameContainer03');
container04 = document.getElementById('frameContainer04');
container05 = document.getElementById('frameContainer05');
// nca3DSWebSDK.init3DSChallengeRequest(acsUrl, creqData, container);
nca3DSWebSDK.init3DSChallengeRequest('http://example.com', 'base64-encoded-challenge-request', iFrameContainerFull);
// nca3DSWebSDK.createIFrameAndInit3DSChallengeRequest(acsUrl, creqData, challengeWindowSize, frameName, rootContainer, callbackWhenLoaded);
nca3DSWebSDK.createIFrameAndInit3DSChallengeRequest('http://example.com', 'base64-encoded-challenge-request', '01', 'threeDSCReq01', container01);
nca3DSWebSDK.createIFrameAndInit3DSChallengeRequest('http://example.com', 'base64-encoded-challenge-request', '02', 'threeDSCReq02', container02);
nca3DSWebSDK.createIFrameAndInit3DSChallengeRequest('http://example.com', 'base64-encoded-challenge-request', '03', 'threeDSCReq03', container03);
nca3DSWebSDK.createIFrameAndInit3DSChallengeRequest('http://example.com', 'base64-encoded-challenge-request', '04', 'threeDSCReq04', container04);
nca3DSWebSDK.createIFrameAndInit3DSChallengeRequest('http://example.com', 'base64-encoded-challenge-request', '05', 'threeDSCReq05', container05, () => {
console.log('Iframe loaded, form created and submitted');
});
</script>
</body>
</html> |
Sobald die Challenge des Karteninhabers abgeschlossen, abgebrochen oder per Zeitüberschreitung beendet ist, weist der ACS den Browser an, die Ergebnisse per Post an die in der Challenge-Anfrage angegebene Benachrichtigungs-URL zu senden und eine Ergebnis-Anfrage (RReq) über den Directory Server an den 3DS Server zu senden.
Note |
---|
Beachten Sie bitte, dass die in der Challenge-Anfrage übergebene Benachrichtigungs-URL auf das Computop Paygate zeigt und nicht verändert werden darf. |
Autorisierung
Nachdem die erfolgreiche Authentisierung des Karteninhabers oder der Nachweis der versuchten Authentisierung/Verifizierung bereitgestellt ist, setzt das Computop Paygate die Zahlungsautorisierung automatisch fort.
Falls die Authentisierung des Karteninhabers nicht erfolgreich war oder der Nachweise der versuchten Authentisierung/Verifizierung nicht bereitgestellt werden kann, setzt das Computop Paygate nicht mit einer Autorisierungsanfrage fort.
In beiden Fällen liefert das Paygate eine endgültige Benachrichtigung an die vom Händler angegebene URLNotify
mit den Datenelementen gemäß nachstehender Tabelle.
Zahlungs-Benachrichtigung
...
MID
...
ans..30
...
M
...
HändlerID, die von Computop vergeben wird
...
MsgVer
...
ans..5
...
M
...
Message-Version.
Zulässige Werte:
2.0
...
PayID
...
ans32
...
M
...
Von Computop vergebene ID für die Zahlung/Transaktion
...
XID
...
an32
...
M
...
Vom Paygate vergebene ID für die zu einer Zahlung ausgeführte Operation
...
TransID
...
ans..64
...
M
...
Transaktionsnummer des Händlers, die für jede Zahlung eindeutig sein sollte
...
schemeReferenceID
...
ans..64
...
C
...
Kartensystemspezifische Transaktions-ID, die für nachfolgende Zahlungen mit hinterlegten Daten, verzögerte Autorisierungen und Wiedereinreichungen erforderlich ist
...
TrxTime
...
an21
...
M
...
Transaction time stamp in format DD.MM.YYYY HH:mm:ssff.
...
Status
...
a..20
...
M
...
Status der Transaktion.
Zulässige Werte:
Authorized
OK
(Sale)PENDING
FAILED
Im Falle von nur Authentisierung ist der Status entweder OK
oder FAILED
.
...
Description
...
ans..1024
...
M
...
Textliche Beschreibung des Codes
...
Code
...
n8
...
M
...
Paygate-Antwortcode
...
...
JSON
...
M
...
Kartendaten
...
...
JSON
...
O
...
Objekt mit IP-Informationen
...
...
JSON
...
M
...
Authentisierungsdaten
...
...
JSON
...
C
...
Falls der Authentisierungsprozess eine Challenge des Karteninhabers enthalten hat, werden zusätzliche Informationen über das Ergebnis der Challenge bereitgestellt
...
MAC
...
an64
...
M
...
Hash Message Authentication Code (HMAC) mit SHA-256 Algorithmus
Browser Zahlungs-Antwort
Zusätzlich werden nachstehende Datenelemente im JSON-Format im Body der HTTP-Antwort zum Browser des Karteninhabers übertragen. Beachten Sie bitte, dass die Datenelemente (d.h. MID
, Len
, Data
) base64-codiert sind.
Datenelemente
...
MID
...
string
...
M
...
HändlerID, die von Computop vergeben wird
...
Len
...
integer
...
M
...
Länge des unverschlüsselten Strings Data
...
Data
...
string
...
M
...
Blowfish-verschlüsselter String, der ein JSON-Objekt mit MID
, PayID
und TransID
enthält
Schema
...
linenumbers | true |
---|
...
Händler sollten diese Datenelemente zur Entschlüsselung und für den Abgleich mit der Zahlungs-Benachrichtigung am ihren Server weiterleiten. Basierend auf dem Zahlungsergebnis kann der Händler-Server eine entsprechende Antwort an den Browser des Karteninhabers senden (z.B. Erfolgsseite).
Entschlüsseltes Objekt Data
...
MID
...
ans..30
...
M
...
HändlerID, die von Computop vergeben wird
...
PayID
...
ans32
...
M
...
Von Computop vergebene ID für die Zahlung/Transaktion
Table Filter | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||
|
...
TransID
...
ans..64
...
M
...
Beispiel für entschlüsseltes Objekt Data
...
Code Block | ||
---|---|---|
| ||
MID=YourMID&PayID=PayIDassignedbyPaygate&TransID=YourTransID |
...
Multiexcerpt include SpaceWithExcerpt EN MultiExcerptName sample_decrypted_data PageWithExcerpt EN:Server-2-Server Integration