• DeutschEnglish

Server-2-Server Integration

Kreditkarten - Server-2-Server Integration

Eine 3DS 2.0 Zahlungssequenz kann aus den folgenden verschiedenen Aktivitäten bestehen:

  • Versionierung

    • Anfrage von ACS- und DS-Protokol-Version(en), die mit dem Kartenkontenbereich korrespondieren sowie einer optionalen 3DS Method URL

  • 3DS Methode

    • Verbindet den Browser des Karteninhabers mit dem ACS des Issuers, um zusätzliche Browserdaten zu erhalten

  • Authentisierung

    • Übermittlung der Authentisierungs-Anfrage an den ACS des Issuers

  • Challenge

    • Challenge des Karteninhabers, falls angeordnet

  • Autorisierung

    • Autorisierung der authentisierten Transaktion beim Acquirer

Server-2-Server Sequenzdiagramm

COO 6505 1000 15 2244008 Text

Beachten Sie bitte, dass die Kommunikation zwischen Client und Access Control Server (ACS) über iFrames implementiert ist. Daher kommen die Antworten in einem HTML-Subdokument an und Sie können entsprechende Event-Listener in Ihrem Root-Dokument einrichten.

Alternativ könnten Sie alleinig auf die asynchronen Benachrichtigungen an ihr Backend vertrauen. In jenen Fällen müssen Sie eventuell Methoden wie Long Polling, SSE oder Websockets zum Update des Clients in Betracht ziehen.

Initiierung der Zahlung

Die anfängliche Anfrage an das Computop Paygate ist unabhängig vom zugrundeliegenden 3DS-Protokoll gleich.

COO 6505 1000 14 2244010

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 der Schnittstelle: allgemeine Parameter

Hinweis: Bei Kreditkartenzahlungen mit 3-D Secure beachten Sie bitte die unterschiedlichen Fälle, die im Kapitel am Anfang des Handbuchs gesondert erläutert werden. Wenn die Kreditkarte für Verified oder SecureCode oder SafeKey registriert ist, teilt sich die nächste Phase in die zwei Schritte Authentifizierung und Zahlung auf. Sie beginnt jedoch immer gleich über die Schnittstelle direct.aspx. Die erste Antwort ist allerdings der Empfang von Javascript-Code oder anderen Parametern, um einen zweiten Aufruf der Schnittstelle direct3d.aspx durchzuführen. Erst danach erhalten Sie die aufgeführten Parameter als Antwort.

Um eine Kreditkartenzahlung über eine Server-zu-Server-Verbindung auszuführen, verwenden Sie bitte folgende URL:

https://www.computop-paygate.com/direct.aspx

Aufruf-Elemente

Hinweis: Aus Sicherheitsgründen lehnt das Paygate alle Zahlungsanfragen mit Formatfehlern ab. Bitte übergeben Sie deshalb bei jedem Parameter den korrekten Datentyp.

Die folgende Tabelle beschreibt die verschlüsselten Übergabeparameter:

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.

KeyRESTFormatCNDDescription

MerchantID

BasicAuth.Username

ans..30

M

HändlerID, die von Computop vergeben wird. Dieser Parameter ist zusätzlich auch unverschlüsselt zu übergeben.

msgver

–––

ans..5

M

Computop Paygate Message-Version. Zulässige Werte:

Wert

Beschreibung

2.0

Mit 3-D Secure 2.x wurde eine Vielzahl zusätzlicher Daten (Browser-Information, Rechnungs-/Versand-Adresse, ...) erforderlich, um den Authentifizierungs-Prozess zu optimieren. Um diese Informationen zu handhaben, wurden die JSON-Objekte eingeführt. Der Parameter MsgVer zeigt an, dass diese Daten verwendet werden.

TransID

"transactionId": "..."

ans..64

M

Ihre eigene TransaktionsID, die für jede Zahlung eindeutig sein muss

ReqId

"requestId": "..."

ans..32

O

Um Doppelzahlungen (z.B. durch ETM) zu vermeiden, übergeben Sie einen alphanumerischen Wert, der Ihre Transaktion oder Aktion identifiziert und nur einmal vergeben werden darf. Falls die Transaktion oder Aktion mit derselben ReqID erneut eingereicht wird, führt das Computop Paygate keine Zahlung oder weitere Aktion aus, sondern gibt nur den Status der ursprünglichen Transaktion oder Aktion zurück.

Bitte beachten Sie, dass das Computop Paygate für die erste initiale Aktion (Authentifizierung/Autorisierung) einen abgeschlossenen Transaktionsstatus haben muss. Dies gilt nicht für 3-D Secure Authentifizierungen, die durch einem Timeout beendet werden. Der Status 3-D Secure Timeout gilt nicht als abgeschlossener Status, bei dem ReqID-Funktionalität am Paygate nicht greift. Einreichungen mit identischer ReqID auf einen offenen Status werden regulär verarbeitet.

Hinweis: Bitte beachten Sie, dass eine ReqID nur 12 Monate gültig ist, danach wird sie vom Paygate gelöscht.

RefNr

"referenceNumber": "..."

O

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.

Informationen zum unterstützten Format finden Sie weiter unten in der zahlartspezifischen Beschreibung.

Es sind ausschließlich ASCII-Zeichen erlaubt. Sonderzeichen wie ("Umlaute", ...) sind nicht erlaubt und müssen ggf. durch ASCII-Zeichen ersetzt werden (z.B. ü → ue, é → e, ...).

schemeReferenceID

"payment": {"card": { "schemeReferenceId": "..." }}

ans..64

C

Spezifische Transaktions-ID des Kartenschemas, die für nachfolgende Zahlungen mit gespeicherten Zugangsdaten, verzögerte Autorisierungen und Wiedereinreichungen erforderlich ist.

Pflicht: CredentialOnFile – initial false – unschedule MIT / recurring

schemeReferenceID wird bei 3DS2-Zahlungsvorgängen zurückgegeben. Bei einem Fallback auf 3DS1 prüfen Sie bitte zusätzlich auf TransactionId.

Die SchemeReferenceID ist eine eindeutige Kennung, die von den Kartenmarken generiert wird. In der Regel können Computop-Händler die SchemeReferenceIDs für Abonnements übergreifend verwenden, welche unter Verwendung eines anderen PSP / separater Paygate-MerchantID / separater Acquirer ContractID / Acquirer erstellt wurden.

industrySpecificTxType

"payment": {"card": { "industrySpecificTransactionType": "..." }}

ans..20

C

Dieser Parameter ist erforderlich, wenn eine branchenspezifische Transaktion entsprechend dem Kartenmarken MIT-Framework (Merchant Initiated Transactions) verarbeitet wird. Der Parameter wird nur für bestimmte Use Cases verwendet, die unten beschrieben sind.

Wird nur von Omnipay und GICC unterstützt.

CB2A unterstützt nur den Wert Reauthorization

Zulässige Werte:

Wert

Beschreibung

Resubmission

Ein Händler führt eine erneute Einreichung durch, wenn er eine Autorisierung angefordert hat, diese aber aufgrund unzureichender Mittel abgelehnt wurde; die Waren oder Dienstleistungen wurden jedoch bereits an den Karteninhaber geliefert.

In solchen Szenarien können Händler den Antrag auf Beitreibung ausstehender Forderungen von Karteninhabern erneut einreichen.

Reauthorization

Ein Händler leitet eine erneute Autorisierung ein, wenn Abschluss oder Erfüllung der ursprünglichen Bestellung oder Dienstleistung die von Visa festgelegte Gültigkeitsdauer der Autorisierung überschreitet.Es gibt zwei gängige Szenarien für die erneute Autorisierung:

• Geteilte oder verzögerte Lieferung bei E-Commerce-Händlern. Eine Teillieferung liegt vor, wenn zum Zeitpunkt des Kaufs nicht alle bestellten Waren versandbereit sind. Erfolgt die Lieferung der Ware nach der von Visa festgelegten Gültigkeitsdauer der Autorisierung, führen E-Commerce-Händler eine separate Autorisierung durch, um sicherzustellen, dass Kundengelder verfügbar sind.

• Verlängerte Hotelaufenthalte, Autovermietungen und Keuzfahrten. Eine erneute Autorisierung wird für Aufenthalte, Reisen und/oder Anmietungen verwendet, die über die von Visa festgelegte Gültigkeitsdauer der Autorisierung hinausgehen.

DelayedCharges

Verzögerte Gebühren dienen dazu, um eine zusätzliche Kontogebühr zu verarbeiten, nachdem die ursprünglichen Dienstleistungen erbracht und die entsprechende Zahlung verarbeitet wurde.

NoShow

Karteninhaber können mit ihren Visa-Karten eine garantierte Reservierung bei bestimmten Händlersegmenten vornehmen. Eine garantierte Reservierung stellt sicher, dass die Reservierung berücksichtigt wird und ermöglicht es einem Händler, eine No-Show-Transaktion durchzuführen, um dem Karteninhaber eine Strafe gemäß den Stornierungsbedingungen des Händlers zu berechnen.

Hinweis: Für Händler, die tokenbasierte Zahlungsinformationen akzeptieren, um eine Reservierung zu garantieren, ist es zum Zeitpunkt der Reservierung erforderlich, einen CIT (Kontoverifizierungsservice) durchzuführen, um später eine No-Show-Transaktion durchführen zu können.

Amount

"amount": { "value": ...}

n..10

M

Betrag in der kleinsten Währungseinheit (z.B. EUR Cent). Bitte wenden Sie sich an den Computop Helpdesk, wenn Sie Beträge < 100 (kleinste Währungseinheit) buchen möchten.

Currency

"amount": { "currency": "..."}

a3

M

Währung, drei Zeichen DIN / ISO 4217, z.B. EUR, USD, GBP. Hier eine Übersicht: A1 Währungstabelle

card

"payment": {"card": JSON}

JSON

M

Kartendaten

Capture

"capture": {"auto": "Yes"}

"capture": {"manual": "Yes"}

"capture": ...

an..6

OM

Bestimmt Art und Zeitpunkt der Buchung (engl. Capture).

Buchungsart

Beschreibung

AUTO

Buchung sofort nach Autorisierung (Standardwert).

MANUAL

Buchung erfolgt durch den Händler – in der Regel erfolgt die Buchung zum Zeitpunkt der Warenauslieferung bzw. Leistungserbringung.

<Zahl>

Verzögerung in Stunden bis zur Buchung (ganze Zahl; 1 bis 696).

billingDescriptor

"billing": {"addressInfo": { "descriptor": "..." }}

ans..22

O

Ein auf dem Kontoauszug des Karteninhabers zu druckender Beschreiber. Beachten Sie bitte auch die andernorts gemachten zusätzlichen Hinweise für weitere Informationen über Regeln und Vorschriften.

OrderDesc

"order": {"description": "..."}

ans..768

O

Beschreibung der Bestellung

AccVerify

"payment": {"card": { "accountVerification": "..." }}

a3

O

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

threeDSPolicy

"payment": {"card": { "threeDsPolicy": JSON }}

JSON

O

Objekt, dass die Authentisierungs-Richtlinien und Strategien zur Behandlung von Ausnahmen angibt

threeDSData

"payment": {"card": { "threeDSData": JSON }}

JSON

C

Objekt mit Details der Authentisierungsdaten, falls die Authentisierung durch Dritte oder durch den Händler durchgeführt wurde

priorAuthenticationInfo

"payment": {"card": { "priorAuthenticationInfo": JSON }}

JSON

O

Das Objekt Prior Transaction Authentication Information enthält optionale Informationen über eine 3-D Secure-Authentisierung eines Karteninhabers, die vor der aktuellen Transaktion erfolgt ist

browserInfo

"browserInfo": JSON

JSON

C

Exakte Browserinformationen sind nötig, um eine optimierte Nutzererfahrung zu liefern. Erforderlich für 3-D Secure 2.0 Transaktionen.

accountInfo

"accountInfo": JSON

JSON

O

Die Kontoinformationen enthalten optionale Informationen über das Kundenkonto beim Händler

billToCustomer

"billing": JSON

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.

shipToCustomer

"shipping": JSON

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.

billingAddress

"billing": {"addressInfo": JSON}

JSON

C

Rechnungsadresse. Erforderlich für 3-D Secure 2.0 (falls verfügbar), sofern nicht Markt- oder regionale Mandate das Senden dieser Informationen beschränken.

shippingAddress

"shipping": {"addressInfo": JSON}

JSON

C

Lieferadresse. Falls abweichend von billingAddress, erforderlich für 3-D Secure 2.0 (falls verfügbar), sofern nicht Markt- oder regionale Mandate das Senden dieser Informationen beschränken.

credentialOnFile

"credentialOnFile": JSON

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.

merchantRiskIndicator

"riskIndicator": JSON

JSON

O

Der Händler-Risikoindikator enthält optionale Informationen über den bestimmten Einkauf des Kunden

subMerchantPF

"subMerchantPaymentFacilitator": JSON

JSON

O

Objekt, das die Details des SubMerchant (Payment Facilitator) angibt

Wird ausschließlich von SafeCharge unterstützt.

TermURL

"payment": {"threeDSLegacy": { "termUrl": "..." }}

ans..256

M

Nur bei 3-D Secure: URL des Shops, die vom Access Control Server (ACS) der Bank aufgerufen wird, um das Ergebnis der Authentisierung zu übermitteln. Dabei übergibt die Bank per GET die Parameter PayID, TransID, MerchantID und per POST den Parameter PAResponse an die TermURL.

Im Falle einer vom Händler initiierten wiederkehrenden Transaktion sind die JSON-Objekte (außer credentialOnFile und card), URLNotify und TermURL keine obligatorischen Parameter, da kein 3-D Secure und keine Risikobewertung durch die kartenausgebende Bank erfolgt und das Zahlungsergebnis direkt innerhalb der Antwort zurückgegeben wird.

URLNotify

"urls": {"notify": "..."}

ans..256

M

Vollständige URL, die das Paygate aufruft, um den Shop zu benachrichtigen. Die URL darf nur über Port 443 aufgerufen werden. Diese URL darf keine Parameter enthalten: Um Parameter durchzureichen, nutzen Sie stattdessen den Parameter UserData.

Im Falle einer vom Händler initiierten wiederkehrenden Transaktion sind die JSON-Objekte (außer credentialOnFile und card), URLNotify und TermURL keine obligatorischen Parameter, da kein 3-D Secure und keine Risikobewertung durch die kartenausgebende Bank erfolgt und das Zahlungsergebnis direkt innerhalb der Antwort zurückgegeben wird.

Allgemeine Hinweise:

  • Bevor Folgeaktionen (Buchung / Gutschrift / Storno) auf eine bestehende Transaktion ausgeführt werden, muss zuvor das erste Notify durch den Shop beantwortet worden sein.

  • Betrüger könnten das verschlüsselte DATA-Element kopieren, welches an URLFailure gesendet wurde, und betrügerisch dasselbe DATA an URLSuccess/URLNotify senden. Überprüfen Sie daher unbedingt den "code"-Wert des DATA-Elements. Nur eine Antwort mit "code=00000000" sollte als erfolgreich angesehen werden.

UserData

"metadata[userData]": "..."

ans..1024

O

Wenn beim Aufruf angegeben, übergibt das Paygate die Parameter mit dem Zahlungsergebnis an den Shop.

MAC

–––

an64

M

Hash Message Authentication Code (HMAC) mit SHA-256-Algorithmus. Details finden Sie hier:

Allgemeine Parameter für Kreditkartenzahlungen über Socket-Verbindungen

Beachten Sie bitt die zusätzlichen Parameter für eine bestimmte Kreditkarten-Integration im Abschnitt "Spezifische Parameter"

Antwort-Elemente

In case of using REST API

In case of using REST API you will always receive a link where the merchant has to redirect the consumer to complete the payment.

REST

Format

CND

Description

"paymentId": "..."

an32

M

May be "00000000000000000000000000000000" if not yet set by Computop Paygate

"_Links.self.type": "..."

an..20

M

"application/json"

"_Links.redirect.href": "..."

an..1024

M

Merchant needs to redirect consumer to this URL to complete payment

"_Links.redirect.type": "..."

an..20

M

"text/html"

Merchant can use inquire.aspx

The following table describes the result parameters with which the Computop Paygate responds to your system

pls. be prepared to receive additional parameters at any time and do not check the order of parameters

the key (e.g. MerchantId, RefNr) should not be checked case-sentive

KeyFormatCNDDescription

mid

ans..30

M

HändlerID, die von Computop vergeben wird

PayID

an32

M

Vom Paygate vergebene ID für die Zahlung; z.B. zur Referenzierung in Batch-Dateien sowie im Capture- oder Credit-Request.

XID

an32

M

Vom Paygate vergebene ID für alle einzelnen Transaktionen (Autorisierung, Buchung, Gutschrift), die für eine Zahlung durchgeführt werden

TransID

ans..64

M

Ihre eigene TransaktionsID, die für jede Zahlung eindeutig sein muss

RefNr

O

Referenznummer wie im Request angegeben

Status

a..20

M

Status der Transaktion.

Zulässige Werte:

  • AUTHENTICATION_REQUEST

  • PENDING

  • FAILED

Description

ans..1024

M

Nähere Beschreibung bei Ablehnung der Zahlung. Bitte nutzen Sie nicht den Parameter Description, sondern Code für die Auswertung des Transaktionsstatus!

Code

an8

M

Fehlercode gemäß Paygate Antwort-Codes (A4 Fehlercodes)

UserData

ans..1024

O

Wenn beim Aufruf angegeben, übergibt das Paygate die Parameter mit dem Zahlungsergebnis an den Shop.

card

JSON

M

Kartendaten

versioningdata

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 3-D Secure Methode enthalten, falls vom ACS unterstützt, sowie die DS Start- und End-Protokoll-Versionen, die den Kartenbereich unterstützen.

threeDSLegacy

JSON

C

Objekt, dass die erforderlichen Datenelemente für die Konstruktion der Anfrage zur Zahler-Authentisierung im Falle eines Fallbacks auf 3-D Secure 1.0 enthält.

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= https://www.computop-paygate.com/

1
{
2
"threeDSServerTransID": "14dd844c-b0fc-4dfe-8635-366fbf43468c",
3
"acsStartProtocolVersion": "2.1.0",
4
"acsEndProtocolVersion": "2.1.0",
5
"dsStartProtocolVersion": "2.1.0",
6
"dsEndProtocolVersion": "2.1.0",
7
"threeDSMethodURL": "http://www.acs.com/script",
8
"threeDSMethodDataForm": "eyJ0aHJlZURTTWV0aG9kTm90aWZpY2F0aW9uVVJMIjoiaHR0cHM6Ly93d3cuY29tcHV0b3AtcGF5Z2F0ZS5jb20vY2JUaHJlZURTLmFzcHg_YWN0aW9uPW10aGROdGZuIiwidGhyZWVEU1NlcnZlclRyYW5zSUQiOiIxNGRkODQ0Yy1iMGZjLTRkZmUtODYzNS0zNjZmYmY0MzQ2OGMifQ==",
9
"threeDSMethodData": {
10
"threeDSMethodNotificationURL": "BASEURL/cbThreeDS.aspx?action=mthdNtfn",
11
"threeDSServerTransID": "14dd844c-b0fc-4dfe-8635-366fbf43468c"
12
}
13
}

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

COO 6505 1000 11 2244011

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.

3DS Method: Keine Issuer threeDSMethodURL

COO 6505 1000 12 2244008

3-D Secure Method Form Post

1
<form name="frm" method="POST" action="Rendering URL">
2
<input type="hidden" name="threeDSMethodData" value="eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjNhYzdjYWE3LWFhNDItMjY2My03OTFiLTJhYzA1YTU0MmM0YSIsInRocmVlRFNNZXRob2ROb3RpZmljYXRpb25VUkwiOiJ0aHJlZURTTWV0aG9kTm90aWZpY2F0aW9uVVJMIn0">
3
</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.

Netcetera 3DS Web SDK

Sie können nach eigenem Ermessen die Operationen init3DSMethod oder createIframeAndInit3DSMethod vom nca3DSWebSDK verwenden, um die 3DS Methode zu initialisieren. Bitte beachten Sie dazu das Integrations-Handbuch unter https://mpi.netcetera.com/3dsserver/doc/current/integration.html#Web_Service_API.

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

1
<!DOCTYPE html>
2
<html lang="en">
3
<head>
4
<meta charset="UTF-8"/>
5
<title>Identifying...</title>
6
</head>
7
<body>
8
<script>
9
var tdsMethodNotificationValue = 'eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6ImUxYzFlYmViLTc0ZTgtNDNiMi1iMzg1LTJlNjdkMWFhY2ZhMiJ9';
10
11
var form = document.createElement("form");
12
form.setAttribute("method", "post");
13
form.setAttribute("action", "notification URL");
14
15
addParameter(form, "threeDSMethodData", tdsMethodNotificationValue);
16
17
document.body.appendChild(form);
18
form.submit();
19
20
function addParameter(form, key, value) {
21
var hiddenField = document.createElement("input");
22
hiddenField.setAttribute("type", "hidden");
23
hiddenField.setAttribute("name", key);
24
hiddenField.setAttribute("value", value);
25
form.appendChild(hiddenField);
26
}
27
</script>
28
</body>
29
</html>

3-D Secure Method Notification Form

1
<form name="frm" method="POST" action="3DS Method Notification URL">
2
<input type="hidden" name="threeDSMethodData" value="eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6ImUxYzFlYmViLTc0ZTgtNDNiMi1iMzg1LTJlNjdkMWFhY2ZhMiJ9">
3
</form>

Beachten SIe bitte, dass die threeDSMethodNotificationURL wie sie in den Base64-codierten threeDSMethodData eingebettet ist, auf das Computop Paygate weist und nicht verändert werden darf. Die Händler-Benachrichtigung wird an die URLNotify geliefert, wie sie in der Originalanfrage übermittelt oder für die MerchantID im Computop Paygatekonfiguriert ist.

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 Browser des Karteninhabers, sobald die Autorisierung abgeschlossen ist.

Karteninhaber-Challenge: Browser-Antwort

COO 6505 1000 13 2244009

Browser Challenge-Antwort

Datenelemente

Key

Format

CND

Beschreibung

acsChallengeMandated

boolean

M

Zeigt an, on eine Challenge für die Autorisierung einer Transaktion wegen lokaler/regionaler Vorschriften oder anderer Variablen nötig ist:

  • true → Challenge ist obligatorisch wegen lokaler/regional Vorschriften

  • false → Challenge ist nicht obligatorisch wegen lokaler/regional Vorschriften, wird aber von ACS als nötig angesehen

challengeRequest

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: Browser Challenge Response
1
{
2
"$schema": "http://json-schema.org/draft-07/schema#",
3
"type": "object",
4
"properties": {
5
"acsChallengeMandated": {"type": "boolean"},
6
"challengeRequest": {"type": "object"},
7
"base64EncodedChallengeRequest": {"type": "string"},
8
"acsURL": {"type": "string"}
9
},
10
"required": ["acsChallengeMandated", "challengeRequest", "base64EncodedChallengeRequest", "acsURL"],
11
"additionalProperties": false
12
}

Beispiel: Browser Challenge-Antwort
1
{
2
"acsChallengeMandated": false,
3
"challengeRequest": {
4
"threeDSServerTransID": "8a880dc0-d2d2-4067-bcb1-b08d1690b26e",
5
"acsTransID": "d7c1ee99-9478-44a6-b1f2-391e29c6b340",
6
"messageType": "CReq",
7
"messageVersion": "2.1.0",
8
"challengeWindowSize": "01",
9
"messageExtension": [
10
{
11
"name": "emvcomsgextInChallenge",
12
"id": "tc8Qtm465Ln1FX0nZprA",
13
"criticalityIndicator": false,
14
"data": "messageExtensionDataInChallenge"
15
}
16
]
17
},
18
"base64EncodedChallengeRequest": "base64-encoded-challenge-request",
19
"acsURL": "acsURL-to-post-challenge-request"
20
}

Authentisierungs-Benachrichtigung

Die Datenelemente der Authentisierungs-Benachrichtigung stehen in folgender Tabelle.

KeyFormatCNDDescription

mid

ans..30

M

HändlerID, die von Computop vergeben wird

PayID

an32

M

Vom Paygate vergebene ID für die Zahlung; z.B. zur Referenzierung in Batch-Dateien sowie im Capture- oder Credit-Request.

TransID

ans..64

M

Ihre eigene TransaktionsID, die für jede Zahlung eindeutig sein muss

Code

an8

M

Fehlercode gemäß Paygate Antwort-Codes (A4 Fehlercodes)

MAC

an64

M

Hash Message Authentication Code (HMAC) mit SHA-256-Algorithmus. Details finden Sie hier:

authenticationResponse

JSON

M

Antwort-Objekt als Rückgabe zur Authentisierungs-Anfrage beim ACS

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
1
<form name="challengeRequestForm" method="post" action="acsChallengeURL">
2
<input type="hidden" name="creq" value="ewogICAgInRocmVlRFNTZXJ2ZXJUcmFuc0lEIjogIjhhODgwZGMwLWQyZDItNDA2Ny1iY2IxLWIwOGQxNjkwYjI2ZSIsCiAgICAiYWNzVHJhbnNJRCI6ICJkN2MxZWU5OS05NDc4LTQ0YTYtYjFmMi0zOTFlMjljNmIzNDAiLAogICAgIm1lc3NhZ2VUeXBlIjogIkNSZXEiLAogICAgIm1lc3NhZ2VWZXJzaW9uIjogIjIuMS4wIiwKICAgICJjaGFsbGVuZ2VXaW5kb3dTaXplIjogIjAxIiwKICAgICJtZXNzYWdlRXh0ZW5zaW9uIjogWwoJCXsKCQkJIm5hbWUiOiAiZW12Y29tc2dleHRJbkNoYWxsZW5nZSIsCgkJCSJpZCI6ICJ0YzhRdG00NjVMbjFGWDBuWnByQSIsCgkJCSJjcml0aWNhbGl0eUluZGljYXRvciI6IGZhbHNlLAoJCQkiZGF0YSI6ICJtZXNzYWdlRXh0ZW5zaW9uRGF0YUluQ2hhbGxlbmdlIgoJCX0KICAgIF0KfQ==">
3
</form>

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
1
<!DOCTYPE html>
2
<html lang="en">
3
<head>
4
<meta charset="UTF-8">
5
<script src="nca-3ds-web-sdk.js" type="text/javascript"></script>
6
<title>Init 3-D Secure Challenge Request - Example</title>
7
</head>
8
<body>
9
<!-- This example will show how to initiate Challenge Reqeuests for different window sizes. -->
10
<div id="frameContainer01"></div>
11
<div id="frameContainer02"></div>
12
<div id="frameContainer03"></div>
13
<div id="frameContainer04"></div>
14
<div id="frameContainer05"></div>
15
<iframe id="iframeContainerFull" name="iframeContainerFull" width="100%" height="100%"></iframe>
16
17
<script type="text/javascript">
18
// Load all containers
19
iFrameContainerFull = document.getElementById('iframeContainerFull');
20
container01 = document.getElementById('frameContainer01');
21
container02 = document.getElementById('frameContainer02');
22
container03 = document.getElementById('frameContainer03');
23
container04 = document.getElementById('frameContainer04');
24
container05 = document.getElementById('frameContainer05');
25
26
27
// nca3DSWebSDK.init3DSChallengeRequest(acsUrl, creqData, container);
28
nca3DSWebSDK.init3DSChallengeRequest('http://example.com', 'base64-encoded-challenge-request', iFrameContainerFull);
29
30
// nca3DSWebSDK.createIFrameAndInit3DSChallengeRequest(acsUrl, creqData, challengeWindowSize, frameName, rootContainer, callbackWhenLoaded);
31
nca3DSWebSDK.createIFrameAndInit3DSChallengeRequest('http://example.com', 'base64-encoded-challenge-request', '01', 'threeDSCReq01', container01);
32
nca3DSWebSDK.createIFrameAndInit3DSChallengeRequest('http://example.com', 'base64-encoded-challenge-request', '02', 'threeDSCReq02', container02);
33
nca3DSWebSDK.createIFrameAndInit3DSChallengeRequest('http://example.com', 'base64-encoded-challenge-request', '03', 'threeDSCReq03', container03);
34
nca3DSWebSDK.createIFrameAndInit3DSChallengeRequest('http://example.com', 'base64-encoded-challenge-request', '04', 'threeDSCReq04', container04);
35
nca3DSWebSDK.createIFrameAndInit3DSChallengeRequest('http://example.com', 'base64-encoded-challenge-request', '05', 'threeDSCReq05', container05, () => {
36
console.log('Iframe loaded, form created and submitted');
37
});
38
</script>
39
40
</body>
41
</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.

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 Benachrichtigung mit dem Ergebnis der Authentifizierung an die vom Händler angegebene URLNotify mit den Datenelementen gemäß nachstehender Tabelle.

Zahlungs-Benachrichtigung

In case of using REST API

In case of using REST API you will always receive a link where the merchant has to redirect the consumer to complete the payment.

REST

Format

CND

Description

"paymentId": "..."

an32

M

May be "00000000000000000000000000000000" if not yet set by Computop Paygate

"_Links.self.type": "..."

an..20

M

"application/json"

"_Links.redirect.href": "..."

an..1024

M

Merchant needs to redirect consumer to this URL to complete payment

"_Links.redirect.type": "..."

an..20

M

"text/html"

Merchant can use inquire.aspx

In case of using Key-Value-Pair API

The following table gives the result parameters which Computop Paygate transmits to URLSuccess or URLFailure and URLNotify. If you have specified the Response=encrypt parameter, the following parameters are sent Blowfish encrypted to your system:

pls. be prepared to receive additional parameters at any time and do not check the order of parameters

the key (e.g. MerchantId, RefNr) should not be checked case-sentive

KeyFormatCNDDescription

mid

ans..30

M

HändlerID, die von Computop vergeben wird

msgver

ans..5

M

Computop Paygate Message-Version. Zulässige Werte:

Wert

Beschreibung

2.0

Mit 3-D Secure 2.x wurde eine Vielzahl zusätzlicher Daten (Browser-Information, Rechnungs-/Versand-Adresse, ...) erforderlich, um den Authentifizierungs-Prozess zu optimieren. Um diese Informationen zu handhaben, wurden die JSON-Objekte eingeführt. Der Parameter MsgVer zeigt an, dass diese Daten verwendet werden.

PayID

an32

M

Vom Paygate vergebene ID für die Zahlung; z.B. zur Referenzierung in Batch-Dateien sowie im Capture- oder Credit-Request.

XID

an32

M

Vom Paygate vergebene ID für alle einzelnen Transaktionen (Autorisierung, Buchung, Gutschrift), die für eine Zahlung durchgeführt werden

TransID

ans..64

M

Ihre eigene TransaktionsID, die für jede Zahlung eindeutig sein muss

schemeReferenceID

ans..64

C

Spezifische Transaktions-ID des Kartenschemas, die für nachfolgende Zahlungen mit gespeicherten Zugangsdaten, verzögerte Autorisierungen und Wiedereinreichungen erforderlich ist.

Pflicht: CredentialOnFile – initial false – unschedule MIT / recurring

schemeReferenceID wird bei 3DS2-Zahlungsvorgängen zurückgegeben. Bei einem Fallback auf 3DS1 prüfen Sie bitte zusätzlich auf TransactionId.

Die SchemeReferenceID ist eine eindeutige Kennung, die von den Kartenmarken generiert wird. In der Regel können Computop-Händler die SchemeReferenceIDs für Abonnements übergreifend verwenden, welche unter Verwendung eines anderen PSP / separater Paygate-MerchantID / separater Acquirer ContractID / Acquirer erstellt wurden.

TrxTime

an21

M

Zeitstempel der Transaktion im 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

Nähere Beschreibung bei Ablehnung der Zahlung. Bitte nutzen Sie nicht den Parameter Description, sondern Code für die Auswertung des Transaktionsstatus!

Code

an8

M

Fehlercode gemäß Paygate Antwort-Codes (A4 Fehlercodes)

MAC

an64

M

Hash Message Authentication Code (HMAC) mit SHA-256-Algorithmus. Details finden Sie hier:

card

JSON

M

Kartendaten

ipinfo

JSON

O

Objekt mit IP-Informationen

threedsdata

JSON

M

Authentisierungsdaten

resultsresponse

JSON

C

Falls der Authentisierungsprozess eine Challenge des Karteninhabers enthalten hat, werden zusätzliche Informationen über das Ergebnis der Challenge bereitgestellt

externalPaymentData

JSON

O

Optionale Daten des Acquirers/Issuers/externen Dienstleisters für eine Autorisierung

PCNr

n16

O

Pseudo Card Number: Vom Computop Paygate generierte Zufallszahl, die eine reale Kreditkartennummer repräsentiert. Die Pseudokartennummer (PKN) beginnt mit 0, und die letzten 3 Stellen entsprechen denen der realen Kartennummer. Die PKN kann wie eine Kreditkartennummer für Autorisierung, Buchung und Gutschriften verwendet werden.

PCNr ist ein Antwortwert vom Computop Paygate und kann ebenfalls als CCNr im Request oder als Teil von card-JSON verwendet werden.

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
KeyFormatCNDDescription

mid

ans..30

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
1
{
2
"$schema": "http://json-schema.org/draft-07/schema#",
3
"type": "object",
4
"properties": {
5
"MID": {
6
"type": "string"
7
},
8
"Len": {
9
"type": "integer"
10
},
11
"Data": {
12
"type": "string"
13
}
14
},
15
"required": ["MID", "Len", "Data"],
16
"additionalProperties": false
17
}

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
KeyFormatCNDDescription

mid

ans..30

M

HändlerID, die von Computop vergeben wird

PayID

an32

M

Vom Paygate vergebene ID für die Zahlung; z.B. zur Referenzierung in Batch-Dateien sowie im Capture- oder Credit-Request.

TransID

ans..64

M

Ihre eigene TransaktionsID, die für jede Zahlung eindeutig sein muss

Beispiel für entschlüsseltes Objekt Data
1
MID=YourMID&PayID=PayIDassignedbyPlatform&TransID=YourTransID

Paygate

Documentation (EN)

Dokumentation (DE)

Paygate Status