- Created by Peter Posse, last modified on 30. Jun 2021
You are viewing an old version of this page. View the current version.
Compare with Current View Page History
« Previous Version 3 Next »
Überblick
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
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.
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.
Oops, it seems that you need to place a table or a macro generating a table within the Table Filter macro.
The table is being loaded. Please wait for a bit ...
Key | REST | Format | CND | Description | Beschreibung |
---|---|---|---|---|---|
ans..30 | M | MerchantID, assigned by Computop. Additionally this parameter has to be passed in plain language too. | HändlerID, die von Computop vergeben wird. Dieser Parameter ist zusätzlich auch unverschlüsselt zu übergeben. |
Key | REST | Format | CND | Description | Beschreibung | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
msgver | --- | ans..5 | M | Computop Paygate Message version. Valid values:
| Computop Paygate Message-Version. Zulässige Werte:
|
Key | REST | Format | CND | Description | Beschreibung |
---|---|---|---|---|---|
TransID | "transactionId": "..." | ans..64 | M | TransactionID provided by you which should be unique for each payment | Ihre eigene TransaktionsID, die für jede Zahlung eindeutig sein muss |
Key | REST | Format | CND | Description | Beschreibung |
---|---|---|---|---|---|
ReqId | "requestId": "..." | ans..32 | O | To avoid double payments or actions (e.g. by ETM), enter an alphanumeric value which identifies your transaction and may be assigned only once. If the transaction or action is submitted again with the same ReqID, Computop Paygate will not carry out the payment or new action, but will just return the status of the original transaction or action. Please note that the Computop Paygate must have a finalized transaction status for the first initial action (authentication/authorisation). This does not apply to 3-D Secure authentications that are terminated by a timeout. The 3-D Secure Timeout status does not count as a completed status in which the ReqID functionality on Paygate does not take effect. Submissions with identical ReqID for an open status will be processed regularly. Notice: Please note that a ReqID is only valid for 12 month, then it gets deleted at the Paygate. | 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. |
Key | REST | Format | CND | Description | Beschreibung |
---|---|---|---|---|---|
RefNr | "referenceNumber": "..." | O | Merchant’s unique reference number, which serves as payout reference in the acquirer EPA file. Please note, without the own shop reference delivery you cannot read out the EPA transaction and regarding the additional Computop settlement file (CTSF) we cannot add the additional payment data.
Only ASCII characters allowed, special characters ("Umlaute", diacritics) are not allowed and must be replaced by their ASCII-representation (e.g. ü → ue, é → e, ...). | 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.
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, ...). |
Key | REST | Format | CND | Description | Beschreibung |
---|---|---|---|---|---|
schemeReferenceID | "payment": {"card": { "schemeReferenceId": "..." }} | ans..64 | C | Card scheme specific transaction ID required for subsequent credential-on-file payments, delayed authorizations and resubmissions. Mandatory: CredentialOnFile – initial false – unscheduled MIT / recurring schemeReferenceID is returned for 3DS2-payments. In case of fallback to 3DS1 you will also need to check for TransactionId. The schemeReferenceID is a unique identifier generated by the card brands and as a rule Computop merchants can continue to use the SchemeReferenceIDs for subscription plans that were created while using another PSP environment / Paygate MerchantID / Acquirer ContractID / Acquirer. | 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. |
Key | REST | Format | CND | Description | Beschreibung | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
industrySpecificTxType | "payment": {"card": { "industrySpecificTransactionType": "..." }} | ans..20 | C | This parameter is required whenever an industry specific transaction is processed according to the card brands MIT (Merchant Initiated Transactions) Framework, i.e.: specific use cases like described below.
Values accepted:
Note: It is always submitted in conjunction with the "schemeReferenceID" parameter. Please contact Computop Helpdesk for the supported Acquirer and card brands. | 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.
Zulässige Werte:
Hinweis: Das wird immer zusammen mit dem Parameter "schemeReferenceID" übermittelt. Bezüglich unterstützer Acquirer und Kartenmarken wenden Sie sich bitte an den Computop Helpdesk. |
Key | REST | Format | CND | Description | Beschreibung |
---|---|---|---|---|---|
Amount | "amount": { "value": ...} | n..10 | M | Amount in the smallest currency unit (e.g. EUR Cent). Please contact the Computop Helpdesk, if you want to capture amounts <100 (smallest currency unit). | 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. |
Key | REST | Format | CND | Description | Beschreibung |
---|---|---|---|---|---|
Currency | "amount": { "currency": "..."} | a3 | M | Currency, three digits DIN / ISO 4217, e.g. EUR, USD, GBP. Please find an overview here: A1 Currency table | Währung, drei Zeichen DIN / ISO 4217, z.B. EUR, USD, GBP. Hier eine Übersicht: A1 Währungstabelle |
Key | REST | Format | CND | Description | Beschreibung |
---|---|---|---|---|---|
card | "payment": {"card": JSON} | JSON | M | Card data | Kartendaten |
Key | REST | Format | CND | Description | Beschreibung | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Capture | an..6 | OM | Determines the type and time of capture.
| Bestimmt Art und Zeitpunkt der Buchung (engl. Capture).
|
Key | REST | Format | CND | Description | Beschreibung |
---|---|---|---|---|---|
billingDescriptor | "billing": {"addressInfo": { "descriptor": "..." }} | ans..22 | O | A descriptor to be printed on a card holder’s statement. Please also refer to the additional comments made elsewhere for more information about rules and regulations. | 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 | Order description | Beschreibung der Bestellung |
AccVerify | "payment": {"card": { "accountVerification": "..." }} | a3 | O | Indicator to request an account verification (aka zero value authorization). If an account verification is requested the submitted amount will be optional and ignored for the actual payment transaction (e.g. authorization). Values accepted:
| 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:
|
JSON | O | Object specifying authentication policies and exemption handling strategies | Objekt, dass die Authentisierungs-Richtlinien und Strategien zur Behandlung von Ausnahmen angibt | ||
JSON | C | Object detailing authentication data in case authentication was performed through a third party or by the merchant | Objekt mit Details der Authentisierungsdaten, falls die Authentisierung durch Dritte oder durch den Händler durchgeführt wurde | ||
JSON | O | Prior Transaction Authentication Information contains optional information about a 3-D Secure cardholder authentication that occurred prior to the current transaction | 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 | ||
JSON | C | Accurate browser information are needed to deliver an optimized user experience. Required for 3-D Secure 2.0 transactions. | Exakte Browserinformationen sind nötig, um eine optimierte Nutzererfahrung zu liefern. Erforderlich für 3-D Secure 2.0 Transaktionen. | ||
JSON | O | The account information contains optional information about the customer account with the merchant. Optional for 3-D Secure 2.0 transactions. | Die Kontoinformationen enthalten optionale Informationen über das Kundenkonto beim Händler | ||
JSON | C | The customer that is getting billed for the goods and / or services. Required unless market or regional mandate restricts sending this information. | 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 | The customer that the goods and / or services are sent to. Required (if available and different from billToCustomer) unless market or regional mandate restricts sending this information. | 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 | Billing address. Required for 3-D Secure 2.0 (if available) unless market or regional mandate restricts sending this information. | Rechnungsadresse. Erforderlich für 3-D Secure 2.0 (falls verfügbar), sofern nicht Markt- oder regionale Mandate das Senden dieser Informationen beschränken. | ||
JSON | C | Shipping address. If different from billingAddress, required for 3-D Secure 2.0 (if available) unless market or regional mandate restricts sending this information. | 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. | ||
JSON | C | Object specifying type and series of transactions using payment account credentials (e.g. account number or payment token) that is stored by a merchant to process future purchases for a customer. Required if applicable. | 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 | The Merchant Risk Indicator contains optional information about the specific purchase by the customer | Der Händler-Risikoindikator enthält optionale Informationen über den bestimmten Einkauf des Kunden | ||
subMerchantPF | "subMerchantPaymentFacilitator": JSON | JSON | O | Object specifying SubMerchant (Payment Facilitator) details
| Objekt, das die Details des SubMerchant (Payment Facilitator) angibt
|
Key | REST | Format | CND | Description | Beschreibung |
---|---|---|---|---|---|
TermURL | "payment": {"threeDSLegacy": { "termUrl": "..." }} | ans..256 | C | Only for 3-D Secure: URL of the shop which has been selected by the Access Control Server (ACS) of the bank to transmit the result of the authentication. The bank transmits the parameters PayID, TransID and MerchantID via GET and the PAResponse parameter via POST to the TermURL. In case of a merchant initiated recurring transaction the JSON objects (besides credentialOnFile and card), the URLNotify and TermURL are not mandatory parameters, because no 3-D Secure and no risk evaluation is done by the card issuing bank and the payment result is directly returned within the response. | 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 erfolgt innerhalb der Antwort zurückgegeben. |
Key | REST | Format | CND | Description | Beschreibung |
---|---|---|---|---|---|
URLNotify | "urls": {"notify": "..."} | ans..256 | C | Complete URL which Paygate calls up in order to notify the shop about the payment result. The URL may be called up only via port 443. It may not contain parameters: Use the UserData parameter instead. In case of a merchant initiated recurring transaction the JSON objects (besides credentialOnFile and card), the URLNotify and TermURL are not mandatory parameters, because no 3-D Secure and no risk evaluation is done by the card issuing bank and the payment result is directly returned within the response.
| Vollständige URL, die das Paygate aufruft, um den Shop zu benachrichtigen. Die URL darf nur über Port 443 aufgerufen werden. Sie darf keine Parameter enthalten: 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 erfolgt innerhalb der Antwort zurückgegeben.
|
Key | REST | Format | CND | Description | Beschreibung |
---|---|---|---|---|---|
UserData | "metadata[userData]": "..." | ans..1024 | O | If specified at request, Paygate forwards the parameter with the payment result to the shop. | Wenn beim Aufruf angegeben, übergibt das Paygate die Parameter mit dem Zahlungsergebnis an den Shop. |
Key | REST | Format | CND | Description | Beschreibung |
---|---|---|---|---|---|
--- | an64 | M | Hash Message Authentication Code (HMAC) with SHA-256 algorithm. Details can be found here: | Hash Message Authentication Code (HMAC) mit SHA-256-Algorithmus. Details finden Sie hier: |
Antwort-Elemente
Oops, it seems that you need to place a table or a macro generating a table within the Table Filter macro.
The table is being loaded. Please wait for a bit ...
Key | Format | CND | Description | Beschreibung |
---|---|---|---|---|
ans..30 | M | MerchantID, assigned by Computop | HändlerID, die von Computop vergeben wird |
Key | Format | CND | Description | Beschreibung |
---|---|---|---|---|
PayID | an32 | M | ID assigned by Paygate for the payment, e.g. for referencing in batch files as well as for capture or credit request. | Vom Paygate vergebene ID für die Zahlung; z.B. zur Referenzierung in Batch-Dateien sowie im Capture- oder Credit-Request. |
Key | Format | CND | Description | Beschreibung |
---|---|---|---|---|
XID | an32 | M | ID for all single transactions (authorisation, capture, credit note) for one payment assigned by Paygate | Vom Paygate vergebene ID für alle einzelnen Transaktionen (Autorisierung, Buchung, Gutschrift), die für eine Zahlung durchgeführt werden |
Key | Format | CND | Description | Beschreibung |
---|---|---|---|---|
TransID | ans..64 | M | TransactionID provided by you which should be unique for each payment | Ihre eigene TransaktionsID, die für jede Zahlung eindeutig sein muss |
Key | Format | CND | Description | Beschreibung |
---|---|---|---|---|
refnr | O | Reference number as given in request | Referenznummer wie im Request angegeben | |
Status | a..20 | M | Status of the transaction. Values accepted:
| Status der Transaktion. Zulässige Werte:
|
Key | Format | CND | Description | Beschreibung |
---|---|---|---|---|
Description | ans..1024 | M | Further details in the event that payment is rejected. Please do not use the Description but the Code parameter for the transaction status analysis! | Nähere Beschreibung bei Ablehnung der Zahlung. Bitte nutzen Sie nicht den Parameter Description, sondern Code für die Auswertung des Transaktionsstatus! |
Key | Format | CND | Description | Beschreibung |
---|---|---|---|---|
Code | an8 | M | Error code according to Paygate Response Codes (A4 Error codes) | Fehlercode gemäß Paygate Antwort-Codes (A4 Fehlercodes) |
Key | Format | CND | Description | Beschreibung |
---|---|---|---|---|
UserData | ans..1024 | O | If specified at request, Paygate forwards the parameter with the payment result to the shop. | Wenn beim Aufruf angegeben, übergibt das Paygate die Parameter mit dem Zahlungsergebnis an den Shop. |
Key | Format | CND | Description | Beschreibung |
---|---|---|---|---|
card | JSON | M | Card data | Kartendaten |
JSON | M | The Card Range Data data element contains information that indicates the most recent EMV 3-D Secure version supported by the ACS that hosts that card range. It also may optionally contain the ACS URL for the 3-D Secure Method if supported by the ACS and the DS Start and End Protocol Versions which support the card range. | 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. | |
JSON | C | Object containing the data elements required to construct the Payer Authentication request in case of a fallback to 3-D Secure 1.0. | 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. |
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.)
versioningData
BASEURL= https://www.computop-paygate.com/
{ "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": "BASEURL/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.
3DS Method: Keine Issuer threeDSMethodURL
<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.
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
<!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>
3DS Method Notification Form
<form name="frm" method="POST" action="3DS Method Notification URL"> <input type="hidden" name="threeDSMethodData" value="eyJ0aHJlZURTU2VydmVyVHJhbnNJRCI6ImUxYzFlYmViLTc0ZTgtNDNiMi1iMzg1LTJlNjdkMWFhY2ZhMiJ9"> </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 Paygate konfiguriert 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.
Kartzeninhaber-Challenge: Browser-Antwort
Browser Challenge-Antwort
Datenelemente
Oops, it seems that you need to place a table or a macro generating a table within the Table Filter macro.
The table is being loaded. Please wait for a bit ...
Key | Format | CND | Description | Beschreibung |
---|---|---|---|---|
acsChallengeMandated | boolean | M | Indication of whether a challenge is required for the transaction to be authorised due to local/regional mandates or other variable:
| Zeigt an, on eine Challenge für die Autorisierung einer Transaktion wegen lokaler/regionaler Vorschriften oder anderer Variablen nötig ist:
|
object | M | Challenge request object | Objekt Challenge-Anfrage | |
base64EncodedChallengeRequest | string | M | Base64-encoded Challenge Request object | Base64-codiertes Objekt Challenge-Anfrage |
acsURL | string | M | Fully qualified URL of the ACS to be used to post the Challenge Request | Vollständige URL des ACS, die für das Posten der Challenge-Anfrage verwendet werden soll |
Schema
{ "$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
{ "acsChallengeMandated": false, "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.
Oops, it seems that you need to place a table or a macro generating a table within the Table Filter macro.
The table is being loaded. Please wait for a bit ...
Key | Format | CND | Description | Beschreibung |
---|---|---|---|---|
ans..30 | M | MerchantID, assigned by Computop | HändlerID, die von Computop vergeben wird |
Key | Format | CND | Description | Beschreibung |
---|---|---|---|---|
PayID | an32 | M | ID assigned by Paygate for the payment, e.g. for referencing in batch files as well as for capture or credit request. | Vom Paygate vergebene ID für die Zahlung; z.B. zur Referenzierung in Batch-Dateien sowie im Capture- oder Credit-Request. |
Key | Format | CND | Description | Beschreibung |
---|---|---|---|---|
TransID | ans..64 | M | TransactionID provided by you which should be unique for each payment | Ihre eigene TransaktionsID, die für jede Zahlung eindeutig sein muss |
Key | Format | CND | Description | Beschreibung |
---|---|---|---|---|
Code | an8 | M | Error code according to Paygate Response Codes (A4 Error codes) | Fehlercode gemäß Paygate Antwort-Codes (A4 Fehlercodes) |
Key | Format | CND | Description | Beschreibung |
---|---|---|---|---|
an64 | M | Hash Message Authentication Code (HMAC) with SHA-256 algorithm. Details can be found here: | Hash Message Authentication Code (HMAC) mit SHA-256-Algorithmus. Details finden Sie hier: |
Key | Format | CND | Description | Beschreibung |
---|---|---|---|---|
JSON | M | Response object in return of the authentication request with the ACS | 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
<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.
3DS Challenge-Anfrage initialisieren - Beispiel
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <script src="nca-3ds-web-sdk.js" type="text/javascript"></script> <title>Init 3-D Secure Challenge Request - Example</title> </head> <body> <!-- This example will show how to initiate Challenge Reqeuests for different window sizes. --> <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"> // Load all containers 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.
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
Oops, it seems that you need to place a table or a macro generating a table within the Table Filter macro.
The table is being loaded. Please wait for a bit ...
Key | Format | CND | Description | Beschreibung |
---|---|---|---|---|
ans..30 | M | MerchantID, assigned by Computop | HändlerID, die von Computop vergeben wird |
Key | Format | CND | Description | Beschreibung | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
msgver | ans..5 | M | Computop Paygate Message version. Valid values:
| Computop Paygate Message-Version. Zulässige Werte:
|
Key | Format | CND | Description | Beschreibung |
---|---|---|---|---|
PayID | an32 | M | ID assigned by Paygate for the payment, e.g. for referencing in batch files as well as for capture or credit request. | Vom Paygate vergebene ID für die Zahlung; z.B. zur Referenzierung in Batch-Dateien sowie im Capture- oder Credit-Request. |
Key | Format | CND | Description | Beschreibung |
---|---|---|---|---|
XID | an32 | M | ID for all single transactions (authorisation, capture, credit note) for one payment assigned by Paygate | Vom Paygate vergebene ID für alle einzelnen Transaktionen (Autorisierung, Buchung, Gutschrift), die für eine Zahlung durchgeführt werden |
Key | Format | CND | Description | Beschreibung |
---|---|---|---|---|
TransID | ans..64 | M | TransactionID provided by you which should be unique for each payment | Ihre eigene TransaktionsID, die für jede Zahlung eindeutig sein muss |
Key | Format | CND | Description | Beschreibung |
---|---|---|---|---|
schemeReferenceID | ans..64 | C | Card scheme specific transaction ID required for subsequent credential-on-file payments, delayed authorizations and resubmissions. Mandatory: CredentialOnFile – initial false – unscheduled MIT / recurring schemeReferenceID is returned for 3DS2-payments. In case of fallback to 3DS1 you will also need to check for TransactionId. The schemeReferenceID is a unique identifier generated by the card brands and as a rule Computop merchants can continue to use the SchemeReferenceIDs for subscription plans that were created while using another PSP environment / Paygate MerchantID / Acquirer ContractID / Acquirer. | 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. |
Key | Format | CND | Description | Beschreibung |
---|---|---|---|---|
TrxTime | an21 | M | Transaction time stamp in format DD.MM.YYYY HH:mm:ssff | Zeitstempel der Transaktion im Format DD.MM.YYYY HH:mm:ssff |
Status | a..20 | M | Status of the transaction. Values accepted:
In case of Authentication-only the Status will be either | Status der Transaktion. Zulässige Werte:
Im Falle von nur Authentisierung ist der Status entweder |
Key | Format | CND | Description | Beschreibung |
---|---|---|---|---|
Description | ans..1024 | M | Further details in the event that payment is rejected. Please do not use the Description but the Code parameter for the transaction status analysis! | Nähere Beschreibung bei Ablehnung der Zahlung. Bitte nutzen Sie nicht den Parameter Description, sondern Code für die Auswertung des Transaktionsstatus! |
Key | Format | CND | Description | Beschreibung |
---|---|---|---|---|
Code | an8 | M | Error code according to Paygate Response Codes (A4 Error codes) | Fehlercode gemäß Paygate Antwort-Codes (A4 Fehlercodes) |
Key | Format | CND | Description | Beschreibung |
---|---|---|---|---|
an64 | M | Hash Message Authentication Code (HMAC) with SHA-256 algorithm. Details can be found here: | Hash Message Authentication Code (HMAC) mit SHA-256-Algorithmus. Details finden Sie hier: |
Key | Format | CND | Description | Beschreibung |
---|---|---|---|---|
JSON | M | Card data | Kartendaten | |
JSON | O | Object containing IP information | Objekt mit IP-Informationen | |
JSON | M | Authentication data | Authentisierungsdaten | |
JSON | C | In case the authentication process included a cardholder challenge additional information about the challenge result will be provided. | Falls der Authentisierungsprozess eine Challenge des Karteninhabers enthalten hat, werden zusätzliche Informationen über das Ergebnis der Challenge bereitgestellt | |
externalPaymentData | JSON | O | Optional additional data from acquirer/issuer/3rd party for authorization. | Optionale Daten des Acquirers/Issuers/externen Dienstleisters für eine Autorisierung |
Key | Format | CND | Description | Beschreibung |
---|---|---|---|---|
PCNr | n16 | O | Pseudo Card Number: Random number generated by Computop Paygate which represents a genuine credit card number. The pseudo card number (PCN) starts with 0 and the last 3 digits correspond to those of the real card number. The PCN can be used like a genuine card number for authorisation, capture and credits. PCNr is a response value from Computop Paygate and is sent as CCNr in Request or part of card-JSON | 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 von 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
Oops, it seems that you need to place a table or a macro generating a table within the Table Filter macro.
The table is being loaded. Please wait for a bit ...
Key | Format | CND | Description | Beschreibung |
---|---|---|---|---|
ans..30 | M | MerchantID, assigned by Computop | HändlerID, die von Computop vergeben wird |
Key | Format | CND | Description | Beschreibung |
---|---|---|---|---|
Len | integer | M | Length of the unencrypted | Länge des unverschlüsselten Strings Data |
Data | string | M | Blowfish encrypted string containing a JSON object with | Blowfish-verschlüsselter String, der ein JSON-Objekt mit MID , PayID und TransID enthält |
Schema
{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": { "MID": { "type": "string" }, "Len": { "type": "integer" }, "Data": { "type": "string" } }, "required": ["MID", "Len", "Data"], "additionalProperties": false }
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
Oops, it seems that you need to place a table or a macro generating a table within the Table Filter macro.
The table is being loaded. Please wait for a bit ...
Key | Format | CND | Description | Beschreibung |
---|---|---|---|---|
ans..30 | M | MerchantID, assigned by Computop | HändlerID, die von Computop vergeben wird |
Key | Format | CND | Description | Beschreibung |
---|---|---|---|---|
PayID | an32 | M | ID assigned by Paygate for the payment, e.g. for referencing in batch files as well as for capture or credit request. | Vom Paygate vergebene ID für die Zahlung; z.B. zur Referenzierung in Batch-Dateien sowie im Capture- oder Credit-Request. |
Key | Format | CND | Description | Beschreibung |
---|---|---|---|---|
TransID | ans..64 | M | TransactionID provided by you which should be unique for each payment | Ihre eigene TransaktionsID, die für jede Zahlung eindeutig sein muss |
Beispiel für entschlüsseltes Objekt Data
MID=YourMID&PayID=PayIDassignedbyPlatform&TransID=YourTransID
- No labels