Integration mit Nexi Payengine DirectLink (Server-zu-Server)
1. Einleitung
DirectLink ermöglicht die Einrichtung speziell angepasster Verbindungen zwischen Ihren eigenen Applikationen und unserem System, so als wäre unser System einfach ein lokaler Server. Es bietet einen Programm-zu-Programm (Server-zu-Server) -Zugriff der Händlersoftware auf unsere Plattform für Zahlungen und Administration. Das Programm des Händlers interagiert dabei direkt und ohne menschlichen Eingriff mit unserer Remote-API.
Bei Verwendung von DirectLink gibt es keinen Kontakt zwischen unserem System und dem Kunden des Händlers. Der Händler sendet alle für die Zahlung erforderlichen Informationen in einer HTTPS Posting-Anfrage direkt an unser System. Unser System fragt die Finanztransaktion (synchron oder asynchron) beim betreffenden Akzeptanzpartner an und sendet dessen Antwort im XML-Format an den Händler zurück. Das Programm des Händlers liest die Antwort und setzt seine Verarbeitung fort.
Der Händler ist darum für die Sammlung und Speicherung sensibler Zahlungsdaten seiner Kunden verantwortlich. Er muss die Vertraulichkeit und Sicherheit dieser Daten durch verschlüsselte Web-Kommunikation und Sicherung seines Servers gewährleisten. Wenn der Händler keine sensiblen Daten wie beispielsweise Kartennummern speichern möchte, empfehlen wir die Nutzung der Alias-Option innerhalb seines Kontos (weitere Informationen hierzu finden Sie im Alias-Manager Integrationsleitfaden).
Der Händler kann neue Bestellungen verarbeiten, die Daten bestehender Bestellungen pflegen und den Status einer Bestellung mit DirectLink abfragen.
Auch wenn der Händler Anfragen mit DirectLink automatisiert hat, kann er die Historie einer Transaktion manuell im Back-Office einsehen. Hierzu kann er seinen Web-Browser verwenden oder einen Bericht herunterladen. Lesen Sie Informationen zur Konfiguration und Funktionalität des Administrator-Standortes bitte im Back-Office Anwenderhandbuch nach.
2. Allgemeine Vorgehensweisen und Sicherheitseinstellungen
Die folgenden allgemeinen Vorgehensweisen und Sicherheitskontrollen gelten für alle DirectLink-Anfragen: neue Bestellanfragen, Datenpflegeanfragen und Direktabrufe.
Die oben stehende Grafik zeigt die einzelnen Schritte einer solchen Transaktion mit DirectLink.
2.1 API-Benutzer
Ein API (Application Program Interface)-Benutzer wird benötigt, an den DirectLink-Anfragen gerichtet werden können.Im Allgemeinen handelt es sich dabei um einen speziell erstellten Benutzer, der von einer Anwendung verwendet wird, um automatische Anfragen an die Zahlungsplattform zu richten.
Sie können in Ihrem Ingenico-Konto über „Konfiguration" > „Benutzer" einen API-Benutzer erstellen. Wählen Sie „Neuer Benutzer" und füllen Sie die Pflichtfelder aus.
Um den neuen Benutzer zu einem API-Benutzer zu machen, vergewissern Sie sich, dass Sie das Kästchen „Sonderbenutzer für API (Kein Zugriff auf Administration)" abhaken.
Wenn für einen API-Benutzer auch die verschiedenen Benutzerprofile zur Verfügung stehen, empfehlen wir Ihnen dringend, diesen Benutzer mit dem „Admin"-Profil zu konfigurieren. |
2.2 Anfrageformat
Für neue Bestellanfragen, Datenpflegeanfragen und Direktabrufe muss der Händler die Anfragen mit bestimmten Parametern an bestimmte URLs senden. Die Parameter für Zahlung/Datenpflege/Abruf müssen in einer Posting-Anfrage wie folgt gesendet werden:
PSPID=value1&USERID=value2&PSWD=value3&…
Der Type/Subtyp zur Anzeige des Medientyps im Content-Type Entity-Header Feld der POST-Anfrage muss „application/x-www-form-urlencoded" lauten.
DirectLink arbeitet im Modus „eine Anfrage - eine Antwort". Jede Zahlung wird einzeln verarbeitet. Unser System handhabt individuelle Anfragen via DirectLink und kann synchron arbeiten (wenn diese Option technisch unterstützt wird). D. h. wir warten auf die Antwort der Bank, ehe wir eine XML-Antwort auf die Anfrage zurücksenden.
2.3 Sicherheit
Wenn wir auf unseren Servern eine Anfrage empfangen, prüfen wir das Verschlüsselungsniveau und die IP-Adresse, von der die Anfrage stammt.
2.3.1 Verschlüsselung
DirectLink baut auf einem robusten und sicheren Kommunikationsprotokoll auf. Die API ist ein Instruktionsbestand, der über normale HTTPS Posting-Anfragen übermittelt wird. Wir erlauben dem Händler eine Verbindungsaufnahme mit uns nur im sicheren HTTPS-Modus.
Ein clientseitiges TLS-Zertifikat ist nicht notwendig.
2.3.2 Zusätzliche Sicherheit: SHA-Signatur
Für jede Bestellung erzeugt der Server des Händlers eine eindeutige Zeichenfolge, aus der mittels SHA1-, SHA-256- oder SHA-512-Algorithmus ein Hashcode generiert wird. Das Resultat dieses Hashvorgangs wird in der Bestellanfrage des Händlers an uns gesendet. Unser System rekonstruiert diesen Hashcode, um so die Datenintegrität der Bestellinformationen zu überprüfen, die an uns gesendet worden sind.
2.3.3 IP-Adresse
Für jede Anfrage prüft unser System die IP-Adresse, von der die Anfrage kam, um sicherzustellen, dass die Anfragen wirklich vom Server des Händlers stammen. Im IP-Adressenfeld des Bereichs „Daten- und Ursprungsüberprüfung", Abschnitt „Überprüfungen für DirectLink" der Seite „Technische Informationen" Ihres Kontos müssen Sie die IP-Adressen oder IP-Adressbereiche der Server eintragen, die Ihre Anfragen an uns senden.
Wenn die IP-Adresse, von der die Anfrage stammt, im IP-Adressenfeld des Bereichs „Daten- und Ursprungsüberprüfung", Abschnitt „Überprüfungen für DirectLink", Seite „Technische Informationen" Ihres Kontos nicht angegeben ist, erhalten Sie die Fehlermeldung „unknown order/1/i". Die IP-Adresse, von der die Anfrage gesendet wurde, wird ebenfalls in dieser Fehlermeldung angezeigt.
2.4 Auswertung der Antwort (Parsing)
Wir reagieren mit einer XML-Antwort auf Ihre Anfrage. Bitte sorgen Sie dafür, dass Ihre Systeme diese XML-Antwort mit größtmöglicher Toleranz auswerten (parsen). Vermeiden Sie beispielsweise Attributnamen, bei denen die Unterscheidung von Groß- und Kleinschreibung notwendig ist, schreiben Sie keine spezifische Reihenfolge für die in Antworten zurückgelieferten Attribute vor, sorgen Sie dafür, dass neue Attribute in der Antwort nicht zu Problemen führen, usw.
3. Neue Bestellungen anfragen
3.1 Anfrage-URL
- Die Anfrage-URL in der TESTUMGEBUNG lautet https://secure.payengine.de/ncol/test/orderdirect.asp.
- Die Anfrage-URL in der PRODUKTIVUMGEBUNG lautet https://secure.payengine.de/ncol/prod/orderdirect.asp.
Wichtig
Vergessen Sie nicht, in der Anfrage-URL die Zeichenfolge „test" durch „prod" zu ersetzen, wenn Sie auf Ihr reguläres Produktivkonto umstellen. Wenn Sie vergessen, die Anfrage-URL zu ändern und den regulären Betrieb mit realen Bestellungen aufnehmen, laufen Ihre Transaktionen weiter in die Testumgebung und werden nicht an die Akzeptanzpartner bzw. Banken gesendet. |
3.2 Anfrageparameter
Die folgende Tabelle enthält die Anfrageparameter für das Senden einer neuen Bestellung:
Format: AN=alphanumerisch / N=numerisch, die maximal erlaubte Anzahl der Zeichen
Feld | Nutzung |
---|---|
PSPID |
Name Ihres Händlerkontos in unserem System. Format: AN, 30 Obligatorisch |
ORDERID |
Ihre eindeutige Bestellnummer (Händlerreferenz). Format: AN, 40 Obligatorisch |
USERID |
Name Ihres applikationsgebundenen (API-) Anwenders. Wie Sie einen API-Anwender anlegen, ist in der Benutzer ManagerDokumentation beschrieben. Format: AN, 20 (min2) Obligatorisch |
PSWD |
Passwort des API-Anwenders (USERID). Format: AN Obligatorisch |
AMOUNT |
Zu zahlender Betrag, MULTIPLIZIERT MIT 100, da die Betragsangabe keine Dezimalstellen oder andere Trennzeichen enthalten darf. Format: N, 15 Obligatorisch |
CURRENCY |
Alphanumerischer Währungswert nach ISO, beispielsweise: EUR, USD, GBP, CHF, … Format: AN, 3 Obligatorisch |
CARDNO |
Karten-/Kontonummer. Format: AN, 21 Obligatorisch |
ED |
Ablaufdatum Format: MM/YY oder MMYY Obligatorisch |
COM |
Beschreibung der Bestellung |
CN |
Name des Kunden Format: AN, 35 Obligatorisch |
E-Mail-Adresse des Kunden. Wenn Sie 3DSv2.1 anfragen, sorgen Sie dafür, dass das Format der E-Mail-Adresse korrekt ist. Anderfalls wird der Authentifizierungsprozess über 3DSv1 ausgerollt werden. |
|
SHASIGN |
Signatur (gehashte Zeichenfolge) zur Authentifizierung der Daten (siehe SHA-Signatur). |
CVC |
Kartenverifikationscode. Je nach Kartenmarke entspricht der Verifikationscode einer 3- oder 4-stelligen Ziffernfolge auf der Vorder- oder Rückseite der Karte, einer Ausgabenummer, einem Beginndatum oder einem Geburtsdatum. Format: N, 5 Obligatorisch |
ECOM_PAYMENT_ CARD_VERIFICATION |
Identisch mit CVC Format: N, 5 Optional |
OWNERADDRESS |
Straße und Hausnummer des Kunden. Format: AN, 50 Optional |
OWNERZIP |
PLZ des Kunden Format: AN, 10 Optional |
OWNERTOWN |
Ortsname des Kunden Format: AN, 40 Optional |
OWNERCTY |
Land des Kunden, z. B. AT, DE, CH, Format: AN, 2 Optional |
OWNERTELNO |
Telefonnummer des Kunden. Format: AN, 30 Optional |
OPERATION |
Bestimmt den Typ der angefragten Transaktion. Sie können eine Standardoperation (Zahlungsprozedur) im Bereich „Globale Transaktionsparameter", Abschnitt „Standardoperationswert", auf der Seite „Technische Informationen" konfigurieren. Wenn Sie einen expliziten Operationswert in der Anfrage mitsenden, erhält dieser Vorrang vor dem Standardwert. Mögliche Werte:
Format: A, 3 Obligatorisch |
WITHROOT |
Fügt ein Root-Element in Ihre XML-Antwort ein. Mögliche Werte: ‘Y’ oder leer. Format: Y or<emtpy> Optional |
REMOTE_ADDR |
IP-Adresse des Kunden (nur für Betrugserkennungsmodul). Wenn für die IP-Adresse keine Prüfung des Absenderlandes erforderlich ist, senden Sie 'NONE'. Format: AN Optional |
RTIMEOUT |
Zeitüberschreitung für die Transaktion (in Sekunden, Wert zwischen 30 und 90). Wichtig: Der hier angegebene Wert muss kleiner als der Zeitüberschreitungswert in Ihrem System sein! Format: N, 2 Optional |
ECI |
Electronic Commerce Indicator. Sie können einen ECI-Standardwert im Bereich „Globale Transaktionsparameter", Abschnitt „Standard-ECI-Wert" der Seite „Technische Informationen" festlegen. Wenn Sie in der Anfrage einen ECI-Wert senden, erhält dieser Vorrang vor dem ECI-Standardwert. Zulässige (numerische) Werte: 0 - Karte durch Lesegerät gezogen 1 - Manuelle Eingabe: Post-/ Telefon- Bestellung (MOTO) (ohne Vorlage der Karte) 2 - Wiederkehrende Zahlungen, von MOTO stammend 3 - Ratenzahlungen 4 - Manuelle Eingabe, Karte hat vorgelegen 7 - E-Commerce mit SSL-Verschlüsselung 9 - Wiederkehrend nach erster E-Commerce-Transaktion Format: AN, 21 Optional |
Weitere informationen zu diesen Feldern finden Sie in Ihrem Nexi Payengine konto. Melden Sie sich einfach an und gehen Sie zu : Support > Integrations & Benutzerhandbucher > Technische Handbucher > Paramater Cookbook. |
Wenn Sie wiederkehrende Zahlungen abwickeln, müssen Sie in Ihrer Anfrage Credentials-on-file (COF)-Parameter hinzufügen.
Im Alias Manager-Leitfaden erhalten Sie weitere Informationen zur Abwicklung von COF-Transaktionen.
Die Liste der für die Sendung zulässigen Parameter kann für Händler länger sein, die in ihren Konten bestimmte Optionen aktiviert haben. Bitte lesen Sie in der betreffenden Dokumentation weitere Informationen über zusätzliche Parameter nach, die mit diesen Optionen verbunden sind.
Die folgenden Parameter sind in neuen Bestellungen obligatorisch:
-
PSPID und USERID
-
PSWD
-
ORDERID
-
AMOUNT (x100)
-
CURRENCY
-
CARDNO
-
ED
-
CVC
-
OPERATION (der Operationscode ist nicht streng obligatorisch, aber dringend empfohlen).
3.3 Testseite
Ein Beispiel für eine Bestellanfrage (eine Testseite) finden Sie unter https://secure.payengine.de/ncol/test/testodl.asp.
3.4 Ausschluss spezifischer Zahlungsmethoden
Wenn Sie verhindern möchten, dass ein Kunde bestimmte Zahlungsverfahren nutzt, können Sie dazu einen bestimmten Parameter nutzen.
Dies ist insbesondere bei Unter-Marken nützlich, wenn Sie eine Marke (z. B. MasterCard) akzeptieren möchten, nicht aber eine ihrer Unter-Marken (z. B. Maestro).
Der Parameter ist wie folgt zu verwenden:
Feld | Verwendung |
---|---|
EXCLPMLIST | Liste der Zahlungsverfahren bzw. Kreditkartenmarken, getrennt durch Semikolon (;), die NICHT verwendet werden sollen. |
Versucht ein Kunde, mit einer Karte zu bezahlen, die mit einem bestimmten Zahlungsverfahren bzw. einer (Unter-)Marke verknüpft ist, aber von Ihnen mittels Parameter EXCLPMLIST vom Gebrauch ausgeschlossen wurde, wird im Feld NCERRORPLUS die Fehlermeldung „Card number incorrect or incompatible“ („Falsche Kartennummer oder nicht zulässig“) zurückgesendet.
3.5 Bestellanforderungen mit 3-D Secure
Unser System unterstützt die Nutzung von 3-D Secure über DirectLink. Weitere Informationen zu diesem Feature finden Sie im Integrationsleitfaden für DirectLink mit 3-D Secure.
Wichtig
|
3.6 Aufteilung Kredit/Debit
Die Funktionalität zur Aufteilung von VISA und MasterCard in ein Debit- und ein Kreditkarten-Zahlungsverfahren erlaubt es Ihnen, Ihren Kunden diese Programme als zwei unterschiedliche Zahlungsverfahren anzubieten (z. B. VISA Debit und VISA Kredit). Sie können auch entscheiden, nur eines der Teilverfahren für beide Marken zu akzeptieren.
Um die Aufteilung von Kredit- und Debit-Karten via DirectLink zu nutzen, müssen Sie den Parameter CREDITDEBIT in die verborgenen Felder aufnehmen, die Sie an die Seite orderdirect.asp senden (und daher auch in die SHA-IN-Berechnung einschließen!).
Feld | Format |
---|---|
CREDITDEBIT | "C": credit card (Kreditkarte) "D": debit card (Debitkarte) |
Zugehörige Fehlermeldung: Wenn ein Käufer das Debitkarten-Zahlungsverfahren auswählt, aber die Nummer einer Kreditkarte eingibt, wird ein Fehler zurückgemeldet: „Wrong brand/Payment method was chosen“ (Falsche Marke/falsches Zahlungsverfahren ausgewählt).
Wenn die Zahlung mit dem Parameter CREDITDEBIT erfolgreich verarbeitet worden ist, wird der gleiche Parameter auch in der XML-Rückmeldung zurückgegeben bzw. kann mit einem Direct Query angefordert werden. Lauten die eingereichten Parameterwerte C bzw. D, ist der zurückgemeldete Wert "CREDIT" bzw. "DEBIT".
Sie finden diese Rückmeldungswerte in der Transaktionsübersicht über „View transactions“ (Transaktionen anzeigen) und „Financial history“ (Zahlungshistorie) sowie in den Berichten, die Sie nachfolgend herunterladen.
Konfiguration in Ihrem Konto Die Aufteilungsfunktion kann auch in Ihrem Nexi Payengine-Konto pro Zahlungsverfahren aktiviert und konfiguriert werden. Weitere Informationen finden Sie unter Split Credit/Debit Cards. |
3.7 Transaktionen mit gespeicherten Anmeldedaten abwickeln
Im Alias Manager-Leitfaden erhalten Sie weitere Informationen zur Abwicklung von COF-Transaktionen.
4. Rückmeldung zur Bestellung
Unser Server sendet als Rückmeldung zur Anfrage eine XML-Antwort:
Beispiel einer XML-Antwort auf eine Bestellanfrag
<?xml version="1.0"?> <ncresponse orderID="99999" PAYID="1111111" NCSTATUS="0" NCERROR="" NCERRORPLUS="" ACCEPTANCE="12345" STATUS="5" ECI="7" amount="125" currency="EUR" PM="CreditCard" BRAND="VISA"/> |
Die folgende Tabelle enthält eine Attributliste zum ncresponse-tag:
Feld | Nutzung |
---|---|
ACCEPTANCE |
Vom Akzeptanzpartner zurückgesendeter Akzeptanzwert. |
amount |
Betrag der Bestellung (nicht mit 100 multipliziert) |
BRAND |
Kartenmarke oder vergleichbare Informationen für andere Zahlungsmethoden. |
currency |
Währung der Bestellung. |
ECI | Electronic Commerce Indicator. |
NCERROR |
Fehlerwert. |
NCERRORPLUS |
Erklärung des Fehlercodes. |
NCSTATUS |
Transaktionsstatus. |
orderID |
Ihre Bestellnummer. |
PAYID |
Bezahlungs-ID als Referenz in unserem System. |
PM |
Zahlungsmethode. |
STATUS |
Die Attributliste kann bei Händlern länger sein, die in ihren Konten bestimmte Optionen (z. B. Betrugserkennungsmodul) aktiviert haben. Bitte lesen Sie in der betreffenden Dokumentation weitere Informationen über zusätzliche Rückmeldungsattribute nach, die mit dieser Option verbunden sind. |
4.1 Duplicate request
If you request processing for an already existing (and correctly processed) orderID, our XML response will contain the PAYID corresponding to the existing orderID, the ACCEPTANCE given by the acquirer in the previous processing, STATUS “0” and NCERROR “50001113”.5. Direkte Datenpflege: Pflege bestehender Bestellungsdaten
Eine direkte Datenpflegeanfrage von ihrer Applikation aus ermöglicht Ihnen:
- Eine Kontobelastung (Zahlung) einer autorisierten
- Bestellung automatisch vorzunehmen (anstatt manuell im Back-Office)
- Autorisierung einer Bestellung zu stornieren
- Autorisierung einer Bestellung zu erneuern oder eine bezahlte Bestellung wieder gutzuschreiben.
5.1 Datenpflege-Anfrage
5.1.1 Anfrage-URL
- Die Anfrage-URL in der TESTUMGEBUNG lautet https://secure.payengine.de/ncol/test/maintenancedirect.asp.
- Die Anfrage-URL in der PRODUKTIVUMGEBUNG lautet https://secure.payengine.de/ncol/prod/maintenancedirect.asp.
Wichtig Vergessen Sie nicht, in der Anfrage-URL die Zeichenfolge „test" durch „prod" zu ersetzen, wenn Sie auf Ihr reguläres PRODUKTIVKONTO umstellen. Wenn Sie vergessen, die Anfrage-URL zu ändern und den regulären Betrieb mit realen Bestellungen aufnehmen, laufen Ihre Datenpflege-Transaktionen weiter in die Testumgebung und werden nicht an die Akzeptanzpartner bzw. Banken gesendet. |
5.1.2 Anfrageparameter
Die folgende Tabelle enthält die obligatorische Aufforderung Parameter zur Durchführung einer Wartungsarbeit:
Feld |
Nutzung |
---|---|
AMOUNT |
Betrag der Bestellung, mit 100 multipliziert. Nur obligatorisch, wenn der Betrag in der Datenpflegeanfrage sich von dem in der Originalautorisierung unterscheidet. Wir empfehlen jedoch, den Betrag immer anzugeben. Unser System prüft, ob der Betrag in der Datenpflegeanfrage nicht zu hoch im Vergleich zum Betrag in der Originalautorisierung bzw. -zahlung ist. |
OPERATION |
Mögliche Werte:
Bitte beachten Sie bei DEL und DES, dass nicht alle Akzeptanzpartner das Löschen einer Autorisierung unterstützen. Wenn Ihr Akzeptanzpartner DEL/DES nicht unterstützt, können wir dennoch die Löschung der Autorisierung im Back-Office simulieren. |
ORDERID |
Sie können die PAYID oder die orderID zur Identifikation der Originalbestellung senden. Wir empfehlen die Verwendung der PAYID. |
PAYID |
|
PSPID |
Anmeldedaten: PSPID und (API) USERID mit dem zur USERID gehörenden Passwort |
PSWD |
|
USERID | |
SHASIGN | Mit dem Secure Hash Algorithmus gehashte Zeichenfolge (siehe SHA-IN-Signatur) |
5.2 Datenpflege-Antwort
Beispiel einer XML-Antwort auf eine direkte Datenpflegeanfrage: <?xml version="1.0"?> <ncresponse orderID="99999" PAYID="1111111" PAYIDSUB="3" NCSTATUS="0" NCERROR="" NCERRORPLUS="" ACCEPTANCE="12345" STATUS="91" amount="125" currency="EUR"/> |
Die folgende Tabelle enthält eine Attributliste zum ncresponse-tag:
Feld | Nutzung |
---|---|
ACCEPTANCE |
Vom Akzeptanzpartner zurückgesendeter Akzeptanzwert. |
AMOUNT |
Betrag der Bestellung (nicht mit 100 multipliziert). |
CURRENCY |
Währung der Bestellung. |
NCERROR |
Fehlerwert. |
NCERRORPLUS |
Erklärung des Fehlercodes. |
NCSTATUS |
Erste Ziffer von NCERROR. |
ORDERID |
Ihre Bestellnummer |
PAYID |
Bezahlungs-ID als Referenz in unserem System. |
PAYIDSUB |
Die PAYID der angewendeten Datenpflegeoperation auf Historien-Ebene |
STATUS |
Weitere technische Einzelheiten zu diesen Feldern finden Sie im Parameter Cookbook.
Die Standardattribute des ncresponse-tags sind identisch mit denen der XML-Antwort auf eine neue Bestellung mit Ausnahme des zusätzlichen Attributs PAYIDSUB.
5.3 Doppelte Anfrage
Geht eine Datenpflegeanfrage für die gleiche Bestellung zweimal ein, wird die zweite theoretisch mit der Fehlermeldung „50001127" (Bestellung nicht autorisiert) abgelehnt, weil die erste erfolgreiche Transaktion den Bestellstatus geändert hat.
6. Direktabruf: Bestellstatus abrufen
Eine Direktabruf-Abfrage von Ihrer Applikation ermöglicht Ihnen, den Status einer Bestellung automatisch abzurufen (anstatt manuell im Back-Office). Sie können immer nur eine Zahlung gleichzeitig abrufen und erhalten nur in begrenztem Umfang Informationen über die Bestellung.
Wenn Sie weitere Details über die Bestellung benötigen, können Sie die Transaktion im Back-Office aufrufen oder einem manuellen bzw. automatischen Dateidownload vornehmen (siehe hierzu Transaktionen Ansehen und Advanced Batch Integrationsleitfaden).
6.1 Abruf-Anfrage
6.1.1 Anfrage-URL
- Die Anfrage-URL in der TESTUMGEBUNG lautet https://secure.payengine.de/ncol/test/querydirect.asp.
- Die Anfrage-URL in der PRODUKTIVUMGEBUNG lautet https://secure.payengine.de/ncol/prod/querydirect.asp.
Wichtig Vergessen Sie nicht, in der Anfrage-URL die Zeichenfolge „test" durch „prod" zu ersetzen, wenn Sie auf Ihr reguläres PRODUKTIVKONTO umstellen. |
6.1.2 Anfrageparameter
Die folgende Tabelle enthält die obligatorischen Anfrageparameter für die Durchführung eines Direktabrufs:
Feld |
Nutzung |
---|---|
ORDERID |
Sie können die PAYID oder die ORDERID zur Identifikation der Originalbestellung senden. Wir empfehlen die Verwendung der PAYID.
|
PAYID |
|
PAYIDSUB |
Sie können die ID der Historien-Ebene angeben, wenn Sie die PAYID zur Identifikation der Originalbestellung verwenden (optional). |
PSPID |
Anmeldedaten: PSPID und (API) USERID mit dem zur USERID gehörenden Passwort |
PSWD |
|
USERID |
6.1.3 Testseite
Ein Beispiel für eine Direktabruf-Anfrage (eine Testseite) finden Sie unter: https://secure.payengine.de/ncol/test/testdq.asp.
6.2 Abruf-Antwort
Unser Server sendet als Rückmeldung zur Anfrage eine XML-Antwort:
Beispiel einer XML-Antwort auf eine Direktabruf-Anfrage: <?xml version=”1.0”?><ncresponse orderID=”99999” PAYID=”1111111” PAYIDSUB=”3” NCSTATUS=”0” NCERROR=”” NCERRORPLUS=”” ACCEPTANCE=”12345” STATUS="9" ECI=”7” amount="125" currency="EUR" PM="CreditCard" BRAND="VISA" CARDNO="XXXXXXXXXXXX1111" IP="212.33.102.55"/> |
Die folgende Tabelle enthält eine Attributliste des ncresponse-tags:
Feld |
Nutzung |
---|---|
ACCEPTANCE | Vom Akzeptanzpartner zurückgesendeter Akzeptanzwert. |
amount | Betrag der Bestellung (nicht mit 100 multipliziert). |
BRAND | Kartenmarke oder vergleichbare Informationen für andere Zahlungsmethoden. |
CARDNO | Maskierte Kartennummer. |
currency | Währung der Bestellung. |
ECI | Electronic Commerce Indicator. |
IP | IP-Adresse des Kunden, wie von unserem System in einer 3-Ebenen-Integration ermittelt oder uns vom Händler in einer 2-Ebenen-Integration gesendet. |
NCERROR | Fehlerwert. |
NCERRORPLUS | Erklärung des Fehlercodes. |
NCSTATUS | Erste Ziffer von NCERROR. |
orderID | Ihre Bestellnummer. |
PAYID | Zahlungsreferenz in unserem System. |
PAYIDSUB | Die PAYID der angewendeten Datenpflegeoperation auf Historien-Ebene. |
PM | Zahlungsmethode. |
STATUS | Transaktionsstatus |
Die Standardattribute des ncresponse-tags sind identisch mit denen für die XML-Antwort auf eine neue Bestellung mit Ausnahme der zusätzlichen Attribute PAYIDSUB, CARDNO und IP.
Die Attributliste kann bei Händlern länger sein, die in ihren Konten bestimmte Optionen (z. B. das Betrugserkennungsmodul) aktiviert haben. Bitte lesen Sie in der Dokumentation der betreffenden Option weitere Informationen über zusätzliche Antwortattribute nach, die mit dieser Option verbunden sind.
6.2.1 Mit e-Commerce verarbeitete Transaktionen
Wenn die Transaktion, deren Status Sie abrufen möchten, mit e-Commerce verarbeitet wurde, erhalten Sie die folgenden zusätzlichen Attribute (vorausgesetzt, Sie haben mit der ursprünglichen e-Commerce Transaktion diese Felder gesendet).
Feld |
Nutzung |
---|---|
COMPLUS |
Ein Wert, den Sie in der Antwort zurückgesendet bekommen wollten. |
(paramplus Inhalt) |
The parameters and their values you wanted to have returned |
Beispiel einer XML-Antwort auf den Direktabruf bezüglich einer e-Commerce-Transaktion: <ncresponse orderID=”99999” PAYID=”1111111” PAYIDSUB=”3” NCSTATUS=”0” NCERROR=”” NCERRORPLUS=”” ACCEPTANCE=”12345” STATUS="9" amount="125" currency="EUR" PM="CreditCard" BRAND="VISA" CARDNO="XXXXXXXXXXXX1111" IP="212.33.102.55" COMPLUS="123456789123456789123456789" SessionID="126548354" ShopperID="73541312"/> |
6.3 Mögliche rückgemeldete Statuszustände
Das Feld STATUS enthält den Status der Transaktion. Eine vollständige Liste der möglichen Statuszustände finden Sie im Back-Office: Support > Integrations & Benutzerhandbücher > Benutzerhandbücher > Liste der Status- und Fehlermeldungen.
Nur der folgende Status bezieht sich speziell auf den Abruf selbst:
Status | NCERROR | NCSTATUS | Description |
---|---|---|---|
88 |
Der Abruf an querydirect.asp ist fehlgeschlagen. |
6.4 Direktabruf als Fallback
Die Antwortzeit für die Anfrage bezüglich einer DirectLink Transaktion beträgt generell nur wenige Sekunden. Einige Akzeptanzpartner haben jedoch möglicherweise längere Antwortzeiten.
Wenn Sie innerhalb von 30 Sekunden keine Antwort von unserem System erhalten haben, können Sie eine Anfrage an querydirect.asp senden, die den Status der gerade an orderdirect.asp gesendeten Transaktion abruft. Wenn Sie eine sofortige Antwort erhalten, die für die Transaktion einen noch nicht abgeschlossenen Status meldet, liegen eventuell Probleme auf Akzeptanzpartnerseite vor.
Wenn Sie nach 10 Sekunden noch keine Antwort auf den Direktabruf erhalten haben, liegen eventuell Probleme auf unserer Seite vor. Sie können diese Anfrage an querydirect.asp alle 30 Sekunden wiederholen, bis Sie feststellen, dass eine Antwort innerhalb von 10 Sekunden bei Ihnen eintrifft.
Bitte beachten Sie:
-
Dieses Prüfsystem kann nur dann Probleme auf unserer Seite anzeigen, wenn gleichzeitig eine Prüfung auf Ihrer Seite sicherstellt, dass die Anfragen Ihre Server korrekt verlassen.
-
Ein Problem auf unserer Seite ist nicht notwendigerweise durch einen Systemausfall begründet, sondern kann auch das Ergebnis langer Antwortzeiten aufgrund von Datenbankproblemen sein.
-
Bitte nutzen Sie diese Prüfmöglichkeiten mit Zurückhaltung, um ein Dauerbelastung unserer Server mit derartigen Anfragen zu vermeiden. Andernfalls sind wir eventuell gezwungen, Ihren Zugriff auf die Seite querydirect.asp zu sperren.
Wichtig Um unser System vor unnötiger Überlastung zu schützen, unterbinden wir Prüfungen der Systemverfügbarkeit, die mit dem Senden vorgetäuschter Transaktionen oder systematischer Anfragen sowie mit systematischen Anfragen verbunden sind, die für jede Transaktion eine Transaktionsrückmeldung erfordern. |
7. Datenschutzrichtlinie-Anforderung
Nach Artikel 12, 13 und 14 DSGVO ist der Datenverantwortliche verpflichtet, seine Endkunden über die zukünftige Verarbeitung ihrer persönlichen Daten zu informieren. Diese Informationen sollten auf der Grundlage der Art der für eine bestimmte Transaktion einzugebenden persönlichen Daten (z.B.: gewählte Zahlungsmethode, Controller/Verarbeiter, Acquirer, Betrug) spezifiziert werden. Das Ergebnis sollte zum Zeitpunkt der Datenerhebung verfügbar und sichtbar sein und dem Karteninhaber mit einer druckbaren und herunterladbaren Version angeboten werden. Gemäß der Datenschutz-Grundverordnung (DSGVO) müssen Sie Ihren Kunden vor deren Transaktionsbestätigung diese Informationen darlegen. Diese Informationen sind idealerweise auf derselben Seite anzuzeigen, auf der Ihre Kunden ihre Kreditkarten-/Kontoangaben eingeben.Mit der folgenden Anfrage nach der Datenschutzrichtlinie erhalten Sie alle Informationen, die Sie Ihren Kunden für die Einhaltung der Datenschutz-Grundverordnung (DSGVO) über unsere Dienstleistungen anzeigen müssen.
7.1 Abruf-Anfrage
7.1.1 Query-Anforderung
• Die URL-Anforderung in der TEST-Umgebung ist https://secure.payengine.de/ncol/test/privacy-policy.asp
• Die URL-Anforderung in der PRODUKTIONS-Umgebung ist https://secure.payengine.de/ncol/prod/privacy-policy.asp„Test“ in "Prod“ ändern
7.1.2 Anforderungsparameter
In der folgenden Tabelle sind die obligatorischen Anforderungsparameter aufgelistet, die Ihren Kunden hinsichtlich der Nutzung ihrer Datenschutzinformationen übermittelt werden:
Feld | Format |
Beschreibung |
USERID | Zeichenfolge | Ihr API-Benutzer |
PSWD | Zeichenfolge |
Ihr API-Benutzer-Password |
PSPID |
Zeichenfolge |
Ihre Konto-PSPID |
BRAND | String (e.g. Visa) | Optional: Zahlungsmethode Marke Sie können dieses Feld mehrmals übermitteln, um das Ergebnis mehrerer Marken zugleich zu erhalten. • Wird keine Marke übermittelt entspricht dies der Übermittlung aller Ihrer aktiven Marken • Leere/fehlerhaft formatierte Marken werden ignoriert |
LANGUAGE | ISO 639-1: Zwei-Buchstaben-Codes (z.B. FR) | Optional: Die Sprache, in der Sie den Text erhalten möchten. Wenn nicht angegeben, wird der Text in der ursprünglich eingestellten Sprache des Händlers angezeigt. |
7.1.3 Testseite
Sie können direkte Query-Anforderungen hier testen: https://secure.payengine.de/ncol/test/privacy-policy.asp
7.2 Abruf-Antwort
Im Folgenden finden Sie ein Verzeichnis von XML-Elementen und die zurückübermittelten XML-Antwortbeispiele für verschiedene Ergebnisse.
Name | Format | Beschreibung |
Response | Complex | Root node, always present |
Response.Status | String, possible values : Success, SuccessWithWarnings, Error | Always present |
Response.Body | Complex | Present only when Response.Status = Success or SuccessWithWarnings |
Response.Body.Html | String / html | Empty if Response.Status = SuccessWithWarnings & Response.Warnings.Warning.Code = NoContent |
Response.Errors | Complex | Present only when Response.Status = Error |
Response.Errors.Error | Complex | Can occur multiple times inside an <Errors> node |
Response.Warnings | Complex | Present only when Response.Status = SuccessWithWarnings or Error |
Response.Warnings.Warning | Complex | Occurs multiple times inside a <Warnings> node |
Response.Errors.Error.Code Response.Warnings.Warning.Code |
String, possible values : •Inside an <Error> node : Unauthorized, InternalServerError •Inside a <Warning> node : NoContent |
Always present in an <Error> or <Warning> node |
Response.Errors.Error.Message Response.Warnings.Warning.Message |
String | Optional |
Im Folgenden zwei erfolgreiche Beispiele:
1. Beispiel einer XML-Antwort für einen Erfolg mit Warnungen. Wird zurückgegeben, wenn keine Datenschutzinformationen dem Kunden offengelegt werden müssen.
<Response>
<Status>SuccessWithWarnings</Status>
<Warnings>
<Warning>
<Code>NoContent</Code>
</Warning>
</Warnings>
<Body>
<Html/>
</Body>
</Response>
2. Beispiel einer XML-Antwort für einen Erfolg mit Inhalt. Das Beispiel zeigt eine in 2 Bereiche aufgeteilte Anzeige.
<?xml version="1.0" encoding="utf-8"?>
<Response>
<Status>Success</Status>
<Body>
<Html><![CDATA[<ul><li><h2>Title 1</h2><p>Content 1</p></li><li><h2>Title 2 (VISA, American Express)</h2><p>Content 2</p></li></ul>]]></Html>
</Body>
</Response>
8. PM-Ausnahmen
Bei bestimmten Zahlungsmethoden weichen die Parameterwerte von den Kreditkarten-Standardwerten ab.
8.1 Direct Debits
8.1.1 Direct Debits AT
Die folgende Tabelle enthält die spezifischen Parameterwerte, die eine Übertragung von Direct Debits AT Transaktionen via DirectLink erlauben.
Feld |
Beschreibung |
Format/Wert |
---|---|---|
CARDNO |
Bankkontonummer |
AN, 21 Format: XXXXXXXXXXXBLZYYYYY XXXXXXXXXXX: Kontonummer, numerisch, 11 Stellen.YYYYY: Bankleitzahl, 5 Stellen. |
CN | Name des Karteninhabers | AN, 35 |
ED |
Verfallsdatum
|
„99/99“ oder „9999“ |
OPERATION |
Operationscode (Auszuführende Aktion) |
A, 3 Mögliche Werte:
|
OWNERADDRESS | Anschrift des Kontoinhabers | AN, 50 |
OWNERTOWN | Wohnort des Bankkontoinhabers | AN, 40 |
OWNERZIP | Kontoinhabers Postleitzahl | AN, 10 |
PM | Zahlungsmethode | AN, 25 “Direct Debits AT” |
(* Falls die Gutschrift Option verfügbar und aktiv ist, und DTAUS-Gutschrift verfügbar ist)
8.1.2 Direct Debits DE (ELV)
(* Falls die Gutschrift Option verfügbar und aktiv ist, und DTAUS-Gutschrift verfügbar ist)Die folgende Tabelle enthält die spezifischen Parameterwerte, welche die Übertragung von ELV-Transaktionen über DirectLink (not Wirecard/Billpay).
Feld |
Beschreibung | Format/Wert |
Obligatorisch |
---|---|---|---|
CARDNO |
Bankkontonummer |
IBAN: alphanumerische Zeichen ODER Bankkontonummer + BLZ. Format: XXXXXXXXXBLZYYYYYYYYXXXXXXXXXX: Kontonummer, numerisch, 1 bis 10 Stellen. YYYYYYYY: Bankleitzahl), 8 Stellen. |
J |
CN |
Name des Bankkontoinhabers |
AN, 35 |
J |
ED |
Verfallsdatum |
„99/99“ oder „9999“ | J |
MANDATEID |
Eindeutige Auftragsreferenz. Telego: Ohne Angabe übernimmt die Plattform die ORDERID oder PAYID |
Telego: AN, 35 / Zeichensatz: “A-Z a-z 0-9 Leerzeichen /-?:().,'+”
|
N |
OPERATION |
Operationscode (Auszuführende Aktion) |
A, 3 Mögliche Werte:
|
N |
OWNERADDRESS |
Adresse des Kontoinhabers |
AN, 50 | J |
OWNERTOWN |
Stadt/Ort des Kontoinhabers |
AN, 40 | J |
OWNERZIP |
Postleitzahl des Kontoinhabers |
AN, 10 | J |
PM |
Zahlungsmethode |
AN, 25 "Direct Debits DE” |
J |
Note: Diese Felder können in der DirectLink XML-Antwort zurückgegeben werden und müssen in die SHA-IN-Berechnung eingeschlossen werden (optional auch SHA-OUT).
(* Falls die Gutschrift Option verfügbar und aktiv ist, und DTAUS-Gutschrift verfügbar ist)
8.1.3 Direct Debits NL
Die folgende Tabelle enthält die spezifischen Parameterwerte, welche die Übertragung von Bankeinzug NL-Transaktionen (Direct Debits NL) über DirectLink ermöglichen.
Feld |
Beschreibung |
Format/Wert |
---|---|---|
CARDNO |
Bankkontonummer
|
Reguläre holländische Kontonummer: max. 10 alphanumerische Zeichen (falls weniger, links mit Nullen auffüllen). ODER IBAN-Kontonummer: max. 35 alphanumerische Zeichen (SEPA) |
CN |
Name des Bankkontoinhabers |
AN, 35 |
ED |
Verfallsdatum |
„99/99“ oder „9999“ |
OPERATION |
Operationscode (Auszuführende Aktion) |
A, 3 Mögliche Werte:
|
OWNERTOWN |
Stadt des Bankkontoinhabers |
AN, 40 |
PM | Zahlungsmethode |
AN, 25 “Direct Debits NL” |
Nur relevant für SEPA-Transaktionen (*): |
||
BIC |
Bankidentifikationscode. |
AN, 11 |
MANDATEID |
Eindeutige Auftragsreferenz. Note: Ohne Angabe wird die ORDERID verwendet. |
AN, 35 Keine Leerzeichen; darf nicht mit einem Schrägstrich "/" beginnen oder enden, und darf keine zwei aufeinanderfolgende Schrägstriche enthalten. |
SEQUENCETYPE |
Typs der Bankeinzugstransaktion Note: Ohne Angabe wird die Transaktion als einmalig („OOFF“) betrachtet. |
Mögliche Werte zur Angabe des Typs der Bankeinzugstransaktion (AN, 4):
|
SIGNDATE |
Datum, an dem der Auftrag vom Kunden unterschrieben wurde. Note: Ohne Angabe wird das Transaktionsdatum verwendet |
JJJJMMTT |
(*SEPA: Single Euro Payments Area)
Hinweis: Diese Felder können in der DirectLink XML-Antwort zurückgegeben werden und müssen in die SHA-IN-Berechnung (optional auch SHA-OUT) eingeschlossen werden.
8.2 PM nur mit Datenpflege möglich über DirectLink
Bei bestimmten (nicht mit Kreditkarten verbundenen) Zahlungsmethoden können Sie keine neuen Transaktionen via DirectLink senden. Sie haben jedoch die Möglichkeit, bestimmte Datenpflegeanfragen via DirectLink zu senden. Dies ist der Fall bei: PostFinance Card, PostFinance e-finance, PayPal Express Checkout und TUNZ. Beim Senden einer Datenpflegeanfrage müssen PM/BRAND/CARDNO/ED nicht angegeben werden. Damit ist es auch nicht erforderlich, bestimmte Werte für diese Zahlungsmethoden zu senden.
9. 3-D Secure v1.0
9.1 Einleitung
Das 3-D Secure-Protokoll gestattet es, den Karteninhaber während des Kaufprozesses zu identifizieren. Der Karteninhaber muss während des Identifikationsprozesses mit dem Internet verbunden sein. Deshalb funktioniert 3-D Secure nicht für Callcenter- oder wiederkehrende Zahlungen.
Visa hat das Protokoll 3-D Secure unter dem Namen Verified By Visa implementiert, MasterCard unter dem Namen SecureCode, JCB unter dem Namen J-Secure und American Express unter dem Namen SafeKey.
Das Prinzip der Integration von DirectLink mit 3-D Secure ist, eine Zahlung im DirectLink-Modus zu initiieren und sie im e-Commerce-Modus zu beenden, wenn eine Authentifizierung des Karteninhabers verlangt wird.
Dieses Dokument beschreibt die Integration des Protokolls 3-D Secure in DirectLink. Weitere Informationen über DirectLink oder e-Commerce entnehmen Sie bitte der Dokumentation zu DirectLink oder e-Commerce.
9.2 Ablauf der 3-D-Transaktion über DirectLink
Der Transaktionsablauf umfasst folgende Schritte:
- Sie senden uns für die Transaktion eine DirectLink-Anfrage mit einer Reihe von zusätzlichen Parametern (vgl. Zusätzliche Anfrageparameter).
- Unser System empfängt die Kartennummer in Ihrer Anfrage und prüft online, ob die Karte im VISA-, Mastercard-, JCB- bzw. AmEx-Verzeichnis eingetragen ist (eingetragen bedeutet, dass eine Identifikation für die Kartennummer möglich ist, d. h. die Karte ist eine 3-D Secure-Karte).
- Ist der Karteninhaber registriert, enthält die Antwort auf die DirectLink-Anfrage einen bestimmten Zahlungsstatus und HTML-Code, der an den Kunden zurückgegeben muss, um den Identifikationsprozess zu starten (vgl. Zusätzliche Rückgabefelder). Der Block aus HTML-Code startet automatisch den Identifikationsprozess zwischen dem Karteninhaber (Kunde) und seiner ausstellenden Bank.
- Der Karteninhaber identifiziert sich selbst auf der Seite der ausstellenden Bank.
- Unser System empfängt die Identifikationsantwort vom Aussteller.
- Wenn die Identifikation erfolgreich war, übermittelt unser System die eigentliche Finanztransaktion an den Acquirer.
- Das Ergebnis der globalen Identifikation und des Online-Autorisierungsvorgangs erhalten Sie über e-Commerce-Modus-Rückmeldungskanäle.
Anmerkungen:
- Ob die Haftungsumkehr gilt, hängt von Ihrem Acquirer-Vertrag ab. Daher empfehlen wir Ihnen, die Allgemeinen Geschäftsbedingungen Ihres Acquirers zu prüfen.
- Wenn der Karteninhaber nicht (in Schritt 3) registriert wurde, erhalten Sie die XML-Standardantwort mit dem Ergebnis des Online-Autorisierungsprozesses.
- Um die genauen Zahlungsstatus-/Fehlercodes (in Schritt 7) zu erhalten, müssen Sie die Online- oder Offline-Post-Sale-Rückmeldungen wie in der E-Commerce-Dokumentation beschrieben implementieren.
9.2.1 Zusätzliche Anfrageparameter
Neben den DirectLink-Standardparametern müssen auch folgende Informationen gesendet werden:
Feld | Beschreibung |
---|---|
FLAG3D |
Fester Wert: "Y" Weist unser System an, bei Bedarf 3-D Secure-Identifikation auszuführen. |
HTTP_ACCEPT | Das Feld „Accept request header“ im Browser des Karteninhabers, mit dem angegeben wird, welche Medientypen für die Antwort angenommen werden können. Mit diesem Wert kontrolliert der Aussteller, ob der Browser des Karteninhabers mit dem Identifikationssystem des Ausstellers kompatibel ist. Zum Beispiel: Accept: */* |
HTTP_USER_AGENT | Das Feld „User-Agent request-header“ im Browser des Karteninhabers mit Informationen über den User Agent, von dem die Anfrage ausgeht. Mit diesem Wert kontrolliert der Aussteller, ob der Browser des Karteninhabers mit dem Identifikationssystem des Ausstellers kompatibel ist. Zum Beispiel: User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0). |
WIN3DS |
Möglichkeit, dem Kunden die Identifikationsseite anzuzeigen. Mögliche Werte:
|
ACCEPTURL | URL der Webseite, die dem Kunden angezeigt wird, wenn die Zahlung autorisiert ist. |
DECLINEURL | URL, an die der Kunde weitergeleitet wird, wenn die maximale Anzahl an fehlgeschlagenen Autorisierungsversuchen erreicht ist (Standardwert 10, er kann aber auf der Seite „Technische Informationen“, Registerkarte „Globale Transaktionsparameter“, Abschnitt „Zahlungswiederholungsversuche“ geändert werden). |
EXCEPTIONURL | URL der Webseite, die dem Kunden angezeigt wird, wenn das Zahlungsergebnis unsicher ist. |
PARAMPLUS | Feld zum Senden der verschiedenen Parameter und ihrer Werte, die in der Post-Sale-Anfrage oder in der endgültigen Weiterleitung zurückgegeben werden sollen. |
COMPLUS | Feld zum Senden eines Wertes, der in der Post-Sale-Anfrage oder in der Ausgabe zurückgegeben werden soll. |
LANGUAGE | Sprache des Kunden, zum Beispiel: "en_US" |
Optional | |
TP | Um das Layout der "order_A3DS"-Seite zu ändern, können Sie eine(n) Templatenamen/-URL mit diesem Parameter senden. e-Commerce: Dynamische Vorlage). |
Für weitere Informationen siehe Transaction-feedback.
9.2.2 Zusätzliche Rückgabefelder
Wenn der Karteninhaber nicht registriert ist, wird die normale DirectLink-Antwort zurückgegeben. Wenn der Karteninhaber registriert ist, werden die folgenden (zusätzlichen) Felder zurückgegeben:
Field | Beschreibung |
---|---|
STATUS |
Neuer Wert: "46" (Warten auf Identifikation) |
HTML_ANSWER |
BASE64-codierter HTML-Code zum Einfügen auf der HTML-Seite, die an den Kunden zurückgegeben wird.
Dieser Tag wird als untergeordnetes Element des globalen XML-Tags <ncresponse> hinzugefügt. Das Feld HTML_ANSWER enthält HTML-Code, der in die HTML-Seite, die an den Kunden zurückgegeben wird, eingefügt werden muss.
Dieser Code lädt automatisch die Identifikationsseite der ausstellenden Bank in einem Pop-up im Hauptfenster in Abhängigkeit vom Parameterwert WIN3DS. Damit es nicht zu Wechselwirkungen zwischen HTML-Tags im Inhalt des XML-Tags HTML_ANSWER mit dem übrigen XML-Code kommt, der als Antwort auf die DirectLink-Anfrage ausgegeben wird, wird der Inhalt von HTML_ANSWER vor Ausgabe der Antwort BASE64-codiert. Deshalb muss dieser Inhalt BASE64-decodiert werden, bevor er in die HTML-Seite, die an den Karteninhaber gesendet wird, eingefügt wird. |
9.2.3 Anmerkungen
Testkarten
Mit den folgenden Testkarten können Sie eine registrierte 3-D Secure-Karte in unserer Testumgebung simulieren:
Marke | Kartenummer | Ablaufdatum |
Passwort |
---|---|---|---|
VISA | 4000000000000002 | Beliebiges Datum in der Zukunft | 1111 |
MasterCard | 5300000000000006 | Beliebiges Datum in der Zukunft | 11111 |
American Express | 371449635311004 | Beliebiges Datum in der Zukunft |
11111 |
Falsche Identifikation
Wenn eine Transaktion wegen einer fehlerhaften Identifikation blockiert ist, hat die Transaktion das Ergebnis:
STATUS = 0
NCSTATUS = 5
NCERROR = 40001134
10. 3-D Secure v2.1
10.1 Introduction
Im Jahr 2013 veröffentlichte die Europäische Kommission einen Vorschlag für die überarbeitete Version der Richtlinie über Zahlungsdienste (PSD2) zur Vereinfachung der Zahlungsabwicklung und Erstellung von Regeln und Vorschriften für Zahlungsdienste in der EU. Dort wurde auch die Notwendigkeit einer neuen Version von 3D Secure v2.1 erkannt.
Die größte Änderung besteht darin, dass Sie als Händler aufgefordert werden, mehr Daten zu teilen: Die Emittenten verlangen nach Datenpunkten zur Verbesserung der Genauigkeit ihrer Entscheidung, was letztendlich zu einem reibungslosen Szenario führt, aber Sie sind an der vordersten Front, um die Daten zu erfassen. Der 3DS v2-Ansatz zur Risikobewertung ist effektiver, erfordert jedoch eine Änderung des gesamten Ökosystems, sodass Sie die Daten an den Emittenten weitergeben können.
Die Kreditkartenunternehmen haben mit der Einführung dieser neuen Richtlinie außerdem ihre 3DS-Logos aktualisiert. Da Sie Ihre eigene Zahlungsseite erstellen, sollten Sie dafür sorgen, dass Sie diese neuen Logos Ihrer Zahlungsseite hinzufügen (Visa / Mastercard / JCB /… ).
10.2 Ablauf der 3-D-Transaktion über DirectLink
Der Transaktionsfluss umfasst die folgenden Schritte:
1. Sie senden uns eine DirectLink-Anfrage für die Transaktion mit einer Reihe zusätzlicher Parameter.
Diese Parameter können aus drei Sätzen bestehen:
a. Erforderliche Parameter, die auf der Zahlungsseite erfasst werden müssen, auf der der Karteninhaber die Kartendaten eingibt.
Parameter Beschreibung Format Verpflichtend browserAcceptHeader Exakter Inhalt des von HTTP akzeptierten Headers, die vom Browser des Karteninhabers an den Händler gesendet werden.*
Länge: variabel, maximal 2.048 Zeichen Datentyp: String Gültiger Wert: Wenn die Gesamtlänge des vom Browser gesendeten akzeptierten Headers 2.048 Zeichen überschreitet, schneidet der 3DS-Server den überschüssigen Teil ab. Ja browserColorDepth Wert, der die Bittiefe der Farbpalette für die Anzeige von Bildern in Bit pro Pixel darstellt. Wird vom Karteninhaber-Browser unter Verwendung der Bildschirmfarbeigenschaft ‚Tiefe‘ abgerufen. Datentyp: String
Gültige Werte:
1 = 1 Bit
4 = 4 Bit
8 = 8 Bit
5 = 15 Bit
16 = 16 Bit
24 = 24 Bit
32 = 32 Bit
48 = 48 BitJa browserJavaEnabled Boolescher Wert, ob der Karteninhaber-Browser Java ausführen kann. Der Wert wird vom Attribut „Navigator-Java aktiviert“ zurückgegeben. Datentyp: Boolescher Wert
Gültige Werte:
true
falseJa browserLanguage Wert, der die Browser-Sprache wie in IETF BCP47 definiert darstellt. Aus dem Attribut „Navigatorsprache“ zurückgegeben. JSON-Datentyp: String
Länge: variabel, 1–8 ZeichenJa browserScreenHeight Gesamthöhe des Karteninhaber-Bildschirms in Pixeln. Der Wert wird vom Attribut „Bildschirmhöhe“ wiedergegeben. Datentyp: Int
Zwischen 0 und 999999Ja browserScreenWidth Gesamtbreite des Karteninhaber-Bildschirms in Pixeln. Der Wert wird vom Attribut „Bildschirmbreite“ wiedergegeben. Datentyp: Int
Zwischen 0 und 999999Ja browserTimeZone Zeitunterschied zwischen UTC-Zeit und Ortszeit des Karteninhaber-Browsers in Minuten. Datentyp: Int
Zwischen -840 und 720Ja browserUserAgent Genauer Inhalt des HTTP-Benutzeragent-Headers. * Datentyp: String
Länge: variabel, maximal 2.048 Zeichen
Hinweis: Wenn die Gesamtlänge des vom Browser gesendeten Benutzeragents 2.048 Zeichen überschreitet, schneidet der 3DS-Server den überschüssigen Teil ab.Ja CN Name des Karteninhabers (Kunden) Name des Karteninhabers (Kunden)
Länge: variabel,max. 35
Sonderzeichen sind erlaubt, außer Anführungszeichen. Die meisten Käufer überprüfen den Kundennamen nicht, da Namen auf verschiedene Arten geschrieben werden könnenJa *HTTP_ACCEPT und HTTP_USER_AGENT müssen nicht mit browserAcceptHeader und browserUserAgent gesendet werden, da wir sie sonst mit den Browserparametern füllen.
- Alle Parameternamen sollten in GROSSSCHREIBUNG stehen (um Verwirrung durch Groß-/Kleinschreibung vorzubeugen)
- Bitte vergessen Sie nicht, die Parameter in Ihrer SHA-Signatur zu berechnen
Sie können den folgenden Javascript-Code verwenden, um diese Parameter zu erfassen.
<script type="text/javascript" language="javascript">
function createHiddenInput(form, name, value)
{
var input = document.createElement("input");
input.setAttribute("type", "hidden");
input.setAttribute("name", name);
input.setAttribute("value", value);
form.appendChild(input);
}
var myCCForms = document.getElementsByName("MyForm");
if (myCCForms != null && myCCForms.length > 0)
{
var myCCForm = myCCForms[0];
createHiddenInput(myCCForm, "browserColorDepth", screen.colorDepth);
createHiddenInput(myCCForm, "browserJavaEnabled", navigator.javaEnabled());
createHiddenInput(myCCForm, "browserLanguage", navigator.language);
createHiddenInput(myCCForm, "browserScreenHeight", screen.height);
createHiddenInput(myCCForm, "browserScreenWidth", screen.width);
createHiddenInput(myCCForm, "browserTimeZone", new Date().getTimezoneOffset());
}
</script>b. Zusätzliche benötigte Parameter (vgl. Zusätzliche Anfrageparameter).
c. Empfohlene Parameter (Liste der Parameter) die, wenn gesendet, sich positiv auf die Transaktions-Conversion-Rate auswirken. Basierend auf den in diesen Parametern enthaltenen Informationen kann ein potenzieller reibungsloser Authentifizierungsablauf stattfinden. Dabei muss sich der Karteninhaber nicht mehr authentifizieren und daher wird ein schnellerer Abschluss der Transaktion erwartet. Wenn jedoch keiner dieser Parameter angegeben wird, findet die normale Umleitung in Bezug auf die Authentifizierung statt.
Obwohl diese Parameter optional sind, wird jedoch von den großen Kartenanbietern dringend empfohlen, dass die folgenden Parameter in Ihrer Anfrage enthalten sein sollten, da dadurch die Chancen für einen reibungslosen Fluss steigen.
ECOM_BILLTO_POSTAL_CITY
ECOM_BILLTO_POSTAL_COUNTRYCODE
ECOM_BILLTO_POSTAL_STREET_LINE1
ECOM_BILLTO_POSTAL_STREET_LINE2
ECOM_BILLTO_POSTAL_STREET_LINE3
ECOM_BILLTO_POSTAL_POSTALCODE
REMOTE_ADDR
CN
Unser System empfängt die Kartennummer in Ihrer Anfrage und prüft online, ob die Karte im VISA-, Mastercard-, JCB- bzw. AmEx-Verzeichnis eingetragen ist (eingetragen bedeutet, dass eine Identifikation für die Kartennummer möglich ist, d. h. die Karte ist eine 3-D Secure-Karte).
2. Basierend auf der Systemverzeichnisantwort werden zwei potenzielle Flüsse erwartet, wenn der Karteninhaber registriert wird (in 3D Secure), wobei zu berücksichtigen ist, ob die zusätzlichen Parameter in 1.c (Empfohlene Parameter-Liste der Parameter) oben angegeben wurden:
2.1. Ein reibungsloser Fluss: Der Karteninhaber muss sich nicht physisch authentifizieren, da die Authentifizierung im Hintergrund ohne Eingabe erfolgt. In diesem Fall erfolgt die Haftungsschicht bei der ausstellenden Bank.2.2. Ein problematischer Fluss: Der Karteninhaber muss sich weiter ausweisen.
i. Die Antwort auf die DirectLink-Anfrage enthält einen bestimmten Zahlungsstatus und einen HTML-Code. Dieser muss an den Kunden zurückgegeben werden, um den Identifikationsprozess zu starten (siehe Zusätzliche Rückgabefelder). Der HTML-Code-Block startet automatisch den Identifikationsprozess zwischen dem Karteninhaber (Kunden) und seiner ausstellenden Bank.
ii. Der Karteninhaber identifiziert sich selbst auf der Seite der ausstellenden Bank.
iii. Unser System empfängt die Identifikationsantwort vom Aussteller.
iv. Wenn die Identifikation erfolgreich war, übermittelt unser System die eigentliche Finanztransaktion an den Acquirer.
3. Das Ergebnis der globalen Identifikation und des Online-Autorisierungsvorgangs erhalten Sie über e-Commerce-Modus-Rückmeldungskanäle.
Abgelehnte Transaktionen nachvollziehen
PSD2 erhöht die Transparenz des Zahlungsprozesses für Sie und Ihre Kunden. Dies ist besonders hilfreich bei Transaktionen mit dem Status 2.
Durch das Feedbackparameter CH_AUTHENTICATION_INFO erhalten Sie genauere Informationen von den Emittenten, wenn diese die Transaktionen Ihrer Kunden ablehnen.
Leiten Sie diese Informationen an Ihre Kunden weiter, damit sie nachvollziehen können, warum ihre Bank die Transaktion abgelehnt hat. This information might also help you to recover the transaction using our Soft Decline feature.
Damit Sie CH_AUTHENTICATION_INFO sowohl in der XML-Antwort als auch in Ihren Weiterleitungs-URLs erhalten können, wählen Sie diesen Parameter im Back Office unter Konfiguration > Technische Informationen > Transaktions-Feedback > Dynamische e-Commerce parameter und DirectLink > Dynamische parameter aus. Dadurch wird außerdem sichergestellt, dass diese Informationen in der Transaktionsübersicht unter Vorgänge > Transaktionsansicht / Finanzielle Historie sichtbar sind.
Verwenden Sie CH_AUTHENTICATION_INFO für die folgenden Szenarien:
- Wenn die Transaktion über den reibungslosen Fluss verarbeitet wird, enthält unsere XML-Antwort diesen Parameter. Fügen Sie die Informationen entsprechend zu Ihrer Transaktionsergebnisseite hinzu.
- Wenn die Transaktion über den problematischen Fluss verarbeitet wird, erhalten Sie diesen Parameter über die Feedbackkanäle des Modus e-Commerce. Da Sie die Informationen nicht früh genug erhalten, um Ihre Weiterleitungs-URLs nach Abschluss einer Transaktion entsprechend zu ändern, empfehlen wir, im Back Office "Bei der Umleitung auf eine der URLs soll auf der Bezahlseite ein Hinweis zur Umleitung durch Nexi Payengine ausgegeben werden." via Konfiguration > Technische Informationen > Transaktions-Feedback > eCommerce >Standardwerte für die HTTP-Umleitungen nach der Zahlung zu markieren. Unsere Plattform leitet Ihre Kunden dann auf unsere Zwischenergebnisseite mit den Informationen weiter, bevor sie schließlich auf Ihren Weiterleitungs-URLs landen.
Simulieren Sie in unserer Testumgebung mit diesen Kartennummern eine Emittentenantwort:
Amex: 349586710563469
MasterCard: 5111823134937549
Visa: 4010759044222272
10.2.1 Zusätzliche Anfrageparameter
Neben den DirectLink-Standardparametern müssen auch folgende Informationen gesendet werden:
Feld | Beschreibung |
---|---|
FLAG3D |
Fester Wert: "Y" Weist unser System an, bei Bedarf 3-D Secure-Identifikation auszuführen. |
HTTP_ACCEPT | Das Feld „Accept request header“ im Browser des Karteninhabers, mit dem angegeben wird, welche Medientypen für die Antwort angenommen werden können. Mit diesem Wert kontrolliert der Aussteller, ob der Browser des Karteninhabers mit dem Identifikationssystem des Ausstellers kompatibel ist. * Zum Beispiel: Accept: */* |
HTTP_USER_AGENT | Das Feld „User-Agent request-header“ im Browser des Karteninhabers mit Informationen über den User Agent, von dem die Anfrage ausgeht. Mit diesem Wert kontrolliert der Aussteller, ob der Browser des Karteninhabers mit dem Identifikationssystem des Ausstellers kompatibel ist. * Zum Beispiel: User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0). |
WIN3DS |
Möglichkeit, dem Kunden die Identifikationsseite anzuzeigen. Mögliche Werte:
|
ACCEPTURL | URL der Webseite, die dem Kunden angezeigt wird, wenn die Zahlung autorisiert ist. |
DECLINEURL | URL, an die der Kunde weitergeleitet wird, wenn die maximale Anzahl an fehlgeschlagenen Autorisierungsversuchen erreicht ist (Standardwert 10, er kann aber auf der Seite „Technische Informationen“, Registerkarte „Globale Transaktionsparameter“, Abschnitt „Zahlungswiederholungsversuche“ geändert werden). |
EXCEPTIONURL | URL der Webseite, die dem Kunden angezeigt wird, wenn das Zahlungsergebnis unsicher ist. |
PARAMPLUS | Feld zum Senden der verschiedenen Parameter und ihrer Werte, die in der Post-Sale-Anfrage oder in der endgültigen Weiterleitung zurückgegeben werden sollen. |
COMPLUS | Feld zum Senden eines Wertes, der in der Post-Sale-Anfrage oder in der Ausgabe zurückgegeben werden soll. |
LANGUAGE | Sprache des Kunden, zum Beispiel: "en_US" |
Optional | |
TP | Um das Layout der "order_A3DS"-Seite zu ändern, können Sie eine(n) Templatenamen/-URL mit diesem Parameter senden. e-Commerce: Dynamische Vorlage). |
*HTTP_ACCEPT und HTTP_USER_AGENT müssen beim Senden von browserAcceptHeader und browserUserAgent nicht gesendet werden.
Für weitere Informationen siehe Transaction-feedback.
10.2.2 Zusätzliche Rückgabefelder
Wenn der Karteninhaber nicht registriert ist, wird die normale DirectLink-Antwort zurückgegeben. Wenn der Karteninhaber registriert ist, werden die folgenden (zusätzlichen) Felder zurückgegeben:
Field | Beschreibung |
---|---|
STATUS |
Neuer Wert: "46" (Warten auf Identifikation) |
HTML_ANSWER |
BASE64-codierter HTML-Code zum Einfügen auf der HTML-Seite, die an den Kunden zurückgegeben wird.
Dieser Tag wird als untergeordnetes Element des globalen XML-Tags <ncresponse> hinzugefügt. Das Feld HTML_ANSWER enthält HTML-Code, der in die HTML-Seite, die an den Kunden zurückgegeben wird, eingefügt werden muss.
Dieser Code lädt automatisch die Identifikationsseite der ausstellenden Bank in einem Pop-up im Hauptfenster in Abhängigkeit vom Parameterwert WIN3DS. Damit es nicht zu Wechselwirkungen zwischen HTML-Tags im Inhalt des XML-Tags HTML_ANSWER mit dem übrigen XML-Code kommt, der als Antwort auf die DirectLink-Anfrage ausgegeben wird, wird der Inhalt von HTML_ANSWER vor Ausgabe der Antwort BASE64-codiert. Deshalb muss dieser Inhalt BASE64-decodiert werden, bevor er in die HTML-Seite, die an den Karteninhaber gesendet wird, eingefügt wird. |
11. Sicher bezahlen mit 3-D Secure
Allgemeine Informationen zu 3-D Secure v2 finden Sie in unserer Anleitung zu PSD2.
Erfahren Sie hier, wie Sie 3-D Secure sicher in den Zahlungsprozess integrieren.