Ablauf der Zahlung
Um Zahlungen über die Hosted Payment Page auszuführen, rufen Sie folgende URL mit HTTPS GET oder HTTPS POST auf:
https://www.computop-paygate.com/paymentPage.aspx |
Alle Daten, die für eine Zahlungsabwicklung notwendig sind, werden als Parameter übergeben. Damit weder der Kunde noch ein Dritter die Daten manipulieren kann, werden die Parameter mit Blowfish verschlüsselt.
Beim Aufruf des Formulars entschlüsselt das Paygate die Parameter und zeigt die HTML-Seite mit den Zahlarten an. Dort wählt der Kunde die Zahlart aus und startet die Weiterleitung per Mausklick auf die Schaltfläche „Weiter“.
Nach Durchführung der Zahlung leitet das Paygate den Kunden per HTTPS GET auf eine Shop-Seite zurück (URLSuccess, URLFailure) und übergibt dabei das Zahlungsergebnis als Blowfish-verschlüsselte Parameter. Zusätzlich übermittelt das Paygate das Ergebnis per HTTPS POST an die Notify-Seite des Shops (URLNotify). Der Shop nimmt das Zahlungsergebnis entgegen und entschlüsselt die Daten, um den Kunden über den Status zu informieren.
Aufruf der Hosted Payment Page
Der Aufruf der Hosted Payment Page beginnt mit der korrekten Zusammenstellung der Parameter, die aus einem Schlüssel und einem Wert bestehen und durch ein Gleichheitszeichen (=) getrennt sind:
|
Alle Parameter werden in einer Zeichenkette aneinandergereiht und durch das Zeichen & getrennt:
|
Hinweis: Da die Zeichen "=" und "&" als Trennzeichen verwendet werden, können diese Zeichen nicht als Wert übergeben werden. Alle Werte, die Sie ohne Blowfish-Verschlüsselung übergeben, müssen URL-encoded sein.
Eine korrekte Parameter-Zeichenkette für das Paygate enthält grundsätzlich drei Parameter: MerchantID, Len und Data. Die Parameter MerchantID und Len sind unverschlüsselt. Nur der Parameter Data wird Blowfish-verschlüsselt:
|
Der Parameter Data enthält die sensiblen Zahlungsdaten wie Betrag und Währung. Die verschlüsselten Bytes sind Hex-codiert und auf zwei Zeichen von links mit einer Null aufgefüllt. Die Verschlüsselung erfolgt über Blowfish ECB und steht Ihnen als Source-Code und Komponente zur Verfügung.
Für die Entschlüsselung ist der Parameter Len sehr wichtig, der die Länge der unverschlüsselten(!) Zeichenkette im Parameter Data enthält. Da bei der Verschlüsselung mit Blowfish die zu verschlüsselnde Datenmenge auf ein Vielfaches von 8 vergrößert wird, muss bei der Entschlüsselung die korrekte Länge der Zeichenkette bekannt sein. Andernfalls tauchen am Ende der Zeichenkette zufällige Zeichen auf.
Die Übergabe der Parameter erfolgt per HTTPS POST oder HTTPS GET. Die empfohlene Übertragungsmethode ist HTTPS POST, weil die Parameterzeichenkette bei GET an die URL angehängt wird, die je nach Browser auf 2048 Bytes begrenzt ist.
Hinweis: Bitte beachten Sie, dass die maximale Länge einer Zahlungsanfrage auf 5120 Zeichen begrenzt ist. Wenn Sie längere Zeichenketten benötigen, melden Sie sich bitte beim Computop Helpdesk.
Die folgenden Listings zeigen die Entwicklung eines Zahlungsaufrufs. Das erste Listing ist die unverschlüsselte Parameterzeichenkette:
|
Hinweis: Bitte beachten Sie, dass jedem Parameter ein Wert zugewiesen wird. Leere Parameter dürfen nicht übergeben werden, da andernfalls die Zahlung scheitern kann.
Diese Zeichenkette wird verschlüsselt und als Parameter Data übergeben, so dass der HTTPS GET Aufruf der Hosted Payment Page so aussieht:
<a href=https://www.computop-paygate.com/paymentPage.aspx?MerchantID=Test&Len=162&Data=E98D40FFFD622C5FE7414F73539A1852C2CE7C8B09D34DF217E27FA2E194B9968DE9ABAE3B1F44B5485EFE3EF2597C7395BADBAD4340CDFD000DD57129EEFAA0BE904A7E2339DCF9363DA6ACDBE5EF98E169FC3092B160252A037135421FD0CE092C174A7D1D63517BD45099AC2B682F5E3CD2C942A6F0E741A833C0&Language=en&URLBack=https://www.shop.com/canceled”> |
Hinweis: Bitte beachten Sie, dass Parameter wie Language oder URLBack unverschlüsselt übergeben werden. Eine Tabelle mit allen möglichen unverschlüsselten Parametern finden Sie ebenfalls in diesem Dokument.
Paygate-Schnittstelle
a alphabetisch as alphabetisch mit Sonderzeichen n numerisch an alphanumerisch ans alphanumerisch mit Sonderzeichen ns numerisch mit Sonderzeichen bool Bool’scher Ausdruck (true oder false) 3 feste Länge mit 3 Stellen/Zeichen ..3 variable Länge mit maximal 3 Stellen/Zeichen enum Aufzählung erlaubter Werte dttm ISODateTime (JJJJ-MM-TTThh:mm:ss) CND Bedingung (condition) M Pflicht (mandatory) O optional C bedingt (conditional) Hinweis: Bitte beachten Sie, dass die Bezeichnungen der Parameter in Groß- oder Kleinbuchstaben zurückgegeben werden können.Definitionen
Datenformate
Format Beschreibung Abkürzungen
Abkürzung Beschreibung Kommentar Wenn ein Parameter Pflicht ist, dann muss er vorhanden sein Wenn ein Parameter optional ist, dann kann er vorhanden sein, ist aber nicht erforderlich Wenn ein Parameter bedingt ist, dann gibt es eine Bedingungsregel, die angibt, ob er Pflicht oder optional ist
Parameter der Hosted Payment Page
Diese Parameter sind für alle Zahlarten Pflicht und müssen Blowfisch-verschlüsselt im Parameter Data an die Hosted Payment Page gesendet werden.
Hinweis: Alle weiteren, zahlartspezifischen Parameter entnehmen Sie bitte dem Handbuch der jeweiligen Zahlart.
Die folgende Tabelle beschreibt die verschlüsselten Übergabeparameter:
| Key | Format | CND | Beschreibung |
|---|---|---|---|
ans..30 | M | HändlerID, die von Computop vergeben wird. Dieser Parameter ist zusätzlich auch unverschlüsselt zu übergeben. |
| Key | Format | CND | Beschreibung |
|---|---|---|---|
| Amount | n..10 | M | Betrag in der kleinsten Währungseinheit (z.B. EUR Cent). Bitte wenden Sie sich an den Computop Helpdesk, wenn Sie Beträge < 100 (kleinste Währungseinheit) buchen möchten. |
| Key | Format | CND | Beschreibung |
|---|---|---|---|
| Currency | a3 | M | Währung, drei Zeichen DIN / ISO 4217, z.B. EUR, USD, GBP. Hier eine Übersicht: A1 Währungstabelle |
| Key | Format | CND | Beschreibung |
|---|---|---|---|
an64 | M | Hash Message Authentication Code (HMAC) mit SHA-256-Algorithmus. Details finden Sie hier: |
| Key | Format | CND | Beschreibung |
|---|---|---|---|
| TransID | ans..64 | M | Ihre eigene TransaktionsID, die für jede Zahlung eindeutig sein muss |
Key | Format | CND | Beschreibung | |
|---|---|---|---|---|
RefNr | ns..30 | O | Eindeutige Referenznummer. Das genaue Format hängt von den Zahlarten Ihrer MerchantId ab. Wählen Sie das Format so, dass alle möglichen Zahlarten kompatibel sind. | |
OrderDesc | ans..384 | M | Beschreibung der gekauften Waren, Einzelpreise etc. Bitte beachten Sie: Die ersten 27 Zeichen erscheinen auf dem Kontoauszug des Kunden. In Computop Analytics können Sie die kompletten Daten einsehen. | |
| Key | Format | CND | Beschreibung |
|---|---|---|---|
| UserData | ans..1024 | O | Wenn beim Aufruf angegeben, übergibt das Paygate die Parameter mit dem Zahlungsergebnis an den Shop. |
| Key | Format | CND | Beschreibung |
|---|---|---|---|
| URLSuccess | ans..256 | M | Vollständige URL, die das Paygate aufruft, wenn die Zahlung erfolgreich war. Die URL darf nur über Port 443 aufgerufen werden. Diese URL darf keine Parameter enthalten: Um Parameter durchzureichen nutzen Sie stattdessen den Parameter UserData.
|
| Key | Format | CND | Beschreibung |
|---|---|---|---|
| URLFailure | ans..256 | M | Vollständige URL, die das Paygate aufruft, wenn die Zahlung gescheitert ist. Die URL darf nur über Port 443 aufgerufen werden. Diese URL darf keine Parameter enthalten: Um Parameter durchzureichen nutzen Sie stattdessen den Parameter UserData.
|
| Key | Format | CND | Beschreibung |
|---|---|---|---|
| Response | a7 | O | Die Status-Rückmeldung, die das Paygate an URLSuccess und URLFailure sendet, sollte verschlüsselt werden. Dazu übergeben Sie den Parameter Response=encrypt. |
| Key | Format | CND | Beschreibung |
|---|---|---|---|
| URLNotify | ans..256 | M | 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.
|
Key | Format | CND | Beschreibung | |
|---|---|---|---|---|
ExpirationDate | ans..19 | O | Zeitstempel für den Endzeitpunkt des PaymentPage-Aufrufes, Angabe derzeit in europäischer Zeit (CET/DST). Zeitzonen-Auswertung wird demnächst einheitlich auf UTC geändert. Format: YYYY-MM-ddTHH:mm:ss | |
Parameter für Hosted Payment Page
Folgende Parameter sind optional und können unverschlüsselt an die Hosted Payment Page übergeben werden:
Key | Format | CND | Beschreibung |
|---|---|---|---|
| Template | ans..20 | O | Name der XSLT-Datei mit Ihrem individuellen Layout für das HPP-Bezahlformular. |
CCTemplate | ans..20 | O | Name der XSLT-Datei mit Ihrem individuellen Layout für das Bezahlformular. Wenn Sie das neugestaltete und abwärtskompatible Computop-Template nutzen möchten, übergeben Sie den Templatenamen „ct_compatible“. Wenn Sie das responsive Computop-Template für mobile Endgeräte nutzen möchten, übergeben Sie den Templatenamen „ct_responsive“. Die Zahlungsart "Bancontact" kann ebenfalls über die payssl.aspx aufgerufen werden. Dazu muss "template=ct_bcmc" als Pflichtparameter übergeben werden, damit das spezielle Bancontact-Template aufgerufen werden kann. Dabei ist zu beachten, dass Bancontact als Zahlungsart im Checkout-Prozess bereits auswählbar sein muss. Das Template ist nicht modifizierbar und muss genauso verwendet werden, da es sich an strikten Bancontact-Richtlinien orientiert. Diese Variante gilt nur in Verbindung mit "Omnipay: EMS payment solutions". |
SDDTemplate | ans..20 | O | Name der XSLT-Datei mit Ihrem individuellen Layout für das Lastschriftenformular. Dies greift nur, wenn der Kunde Lastschrift als Zahlart auswählt und auf die Schaltfläche „Weiter“ klickt. Wenn Sie keinen Wert übergeben, wird das responsive Computop-Lastschriftenformular-Template angezeigt. |
ECTemplate | ans..20 | O | Name einer XSLT-Vorlage, um ein individuelles Layout für Ihr EasyCollect-Formular zu erstellen, das zu Ihrem Shop-Layout passt. Diese Vorlage wird nur verwendet, wenn der Kunde EasyCollect als Zahlungsmethode auswählt und auf „Weiter“ klickt. Wenn Sie keinen Wert eingeben, wird die Standardvorlage für EasyCollect-Formulare angezeigt. |
Language | a2 (enum) | O | Sprachcode: <de> deutsch, <al> albanisch, <at> österreichisch, <cz/cs> tschechisch, <dk> dänisch, <en> englisch, <fi> finnisch, <fr> französisch, <gr> griechisch, <hu> ungarisch, <it> italienisch, <jp> japanisch, <nl> holländisch, <no> norwegisch, <pl> polnisch, <pt> portugiesisch, <ro> rumänisch, <ru> russisch, <es> spanisch, <se> schwedisch, <sk> slowakisch, <sl> slowenisch, <tr> türkisch, <zh> vereinfachtes chinesisch. Ohne Angabe ist die Sprache Deutsch.
|
| Key | Format | CND | Beschreibung |
|---|---|---|---|
| URLBack | ans..256 | O | Vollständige URL, die das Paygate aufruft, wenn der Kunde auf Abbruch klickt. Der Parameter "URLBack" kann
Wenn Sie Parameter/Werte in der URLBack übergeben möchten, so können Sie folgende Methode verwenden:
Wenn der Kunde auf Abbruch klickt, so wird die URL genauso aufgerufen, so dass Sie URL Decode verwenden können, um Parameter und Werte zu extrahieren. |
Key | Format | CND | Beschreibung | |
|---|---|---|---|---|
PayTypes | ans..256 | O | Mit diesem Parameter können Sie die anzuzeigenden Zahlarten übersteuern, d.h. sie können in diesem Parameter Pipe-getrennt entscheiden, welche der zur Verfügung stehenden Zahlarten angezeigt werden. De möglichen Werte entnehmen Sie aus der Spalte PayType in der obigen Tabelle der Zahlarten. Beispiel: …&PayTypes=CC|EDD|Alipay | |
Optionale Parameter für Hosted Payment Page
Allgemeine Antwortparameter der Hosted Payment Page
Diese Parameter sind für alle Zahlungsarten gleich. Mit dem Parameter pt können Sie sehen, welche Zahlungsmethode der Kunde verwendet hat. Bitte entnehmen Sie alle weiteren speziellen Parameter für eine Zahlungsart dem Handbuch der jeweiligen Zahlungsart.
Die folgende Tabelle beschreibt die Ergebnis-Parameter, die das Paygate an Ihre URLSuccess, URLFailure und URLNotify übergibt. Wenn Sie den Parameter Response=encrypt angegeben haben, werden die folgenden Parameter mit Blowfish verschlüsselt an Ihr System übergeben: es können jederzeit neue Parameter hinzugefügt bzw. die Reihenfolge geändert werden
die Parameter (z.B. mid, RefNr) sollten nicht auf Groß-/Kleinschreibung geprüft werden
| Key | Format | CND | Beschreibung |
|---|---|---|---|
ans..30 | M | HändlerID, die von Computop vergeben wird |
Key | Format | CND | Beschreibung |
|---|---|---|---|
| pt | ans..256 | O | Informationen über die verwendete Zahlungsart gemäß obiger Tabelle der Zahlungsarten |
| Key | Format | CND | Beschreibung |
|---|---|---|---|
| PayID | an32 | M | Vom Paygate vergebene ID für die Zahlung; z.B. zur Referenzierung in Batch-Dateien sowie im Capture- oder Credit-Request. |
| Key | Format | CND | Beschreibung |
|---|---|---|---|
| XID | an32 | M | Vom Paygate vergebene ID für alle einzelnen Transaktionen (Autorisierung, Buchung, Gutschrift), die für eine Zahlung durchgeführt werden |
| Key | Format | CND | Beschreibung |
|---|---|---|---|
| TransID | ans..64 | M | Ihre eigene TransaktionsID, die für jede Zahlung eindeutig sein muss |
| Key | Format | CND | Beschreibung |
|---|---|---|---|
| Status | a..50 | M | OK oder AUTHORIZE_REQUEST (URLSuccess) sowie FAILED (URLFailure) |
| Key | Format | CND | Beschreibung |
|---|---|---|---|
| Description | ans..1024 | M | Nähere Beschreibung bei Ablehnung der Zahlung. Bitte nutzen Sie nicht den Parameter Description, sondern Code für die Auswertung des Transaktionsstatus! |
| Key | Format | CND | Beschreibung |
|---|---|---|---|
| Code | an8 | M | Fehlercode gemäß Paygate Antwort-Codes (A4 Fehlercodes) |
| Key | Format | CND | Beschreibung |
|---|---|---|---|
an64 | M | Hash Message Authentication Code (HMAC) mit SHA-256-Algorithmus. Details finden Sie hier: |
| Key | Format | CND | Beschreibung |
|---|---|---|---|
| UserData | ans..1024 | O | Wenn beim Aufruf angegeben, übergibt das Paygate die Parameter mit dem Zahlungsergebnis an den Shop. |
| Key | Format | CND | Beschreibung |
|---|---|---|---|
| Plain | ans..50 | O | Ein einzelner Wert, der von Ihnen gesetzt werden kann, um Informationen wieder unverschlüsselt in der Antwort bzw. im Notify zurückzugeben, z.B. die MID. Da der "Plain"-Parameter Teil des verschlüsselten "Data" im Computop Paygate ist, ist dieser vor Manipulationen geschützt. |
| Key | Format | CND | Beschreibung |
|---|---|---|---|
| Custom | ans..1024 | O | Der "Custom"-Parameter wird vor der Verschlüsselung an den Aufruf angehängt und ist Teil des verschlüsselten "Data" im Computop Paygate Aufruf. Dadurch ist der Wert gegen Manipulation geschützt. Der Custom-Wert wird dann in Klartext an die Computop Paygate-Antwort angehängt und dabei wird "|" durch "&" ersetzt. Dadurch können Sie einen Custom-Wert übergeben und bekommen mehrere Key-Value-Paare zu Ihrer eigenen Verwendung in der Antwort zurück. |
Allgemeine Antwortparameter für URLNotify, URLSuccess und URLFailure
Corporate PaymentPage: XSLT-Layout für Formulare
Sie können mit dem Parameter Template ein individuelles Layout für das Formular der Hosted Payment Page nutzen, das 100%ig zu Ihrem Shop-Layout passt. Zu diesem Zweck entwirft Ihr Grafiker ein HTML-Template im Shop-Design auf Basis der XSLT-Technologie (Extensible Stylesheet Language Transformation). Der Computop Helpdesk kopiert dieses XSLT-Template auf unseren Paygate-Server. Wenn Sie den Namen Ihrer XSLT-Datei im Parameter Template übergeben, erscheint das Paygate-Formular in Ihrem Layout.
Die XSLT-Templates für das Formular der Hosted Payment Page haben gleich mehrere Vorteile:
- Sie können die aufwendige PCI-Sicherheitszertifizierung umgehen
- Die Hosted Payment Page ist responsiv, d.h. sie funktioniert auf Smartphones, Tablets oder auf dem Laptop
Allgemeine Informationen zu XSLT finden Sie unter www.w3.org.
Für die Nutzung der Corporate Paypage mit XSLT gelten die nachfolgenden Konventionen:
Dateinamen
Eine von Ihnen gestaltete XSL-Datei definiert Ihr individuelles Layout. Die zugehörige XML-Datei enthält die Texte, die auf dem Formular angezeigt werden sollen. So lässt sich problemlos eine Mehrsprachigkeit realisieren. In den Bezeichnungen der Dateien verwenden Sie stets Ihre MerchantID.
| XSL template | MerchantID_PaymentPage.xsl |
| XML text file | MerchantID_PaymentPage.xml |
| Sub folder for pictures, CSS- and JS-files | Templates/imagesMerchantID_PaymentPage |
Um keine Sicherheitshinweise zu erhalten, stellen Sie bitte bei externen Bildquellen sicher, dass diese über SSL aufgerufen werden.
Zum Aufruf des individuellen Layouts verwenden Sie den Parameter „Template“ mit Ihrer MerchantID und hängen ihn unverschlüsselt an den Aufruf des Formulars der Hosted Payment Page an, zum Beispiel: https://www.computop-paygate.com/paymentPage.aspx?MerchantID=IhreMID&Len=123&Data=AGSDJ…ASDF&template=IhreMerchantID
Hidden Fields
Folgende Hidden Fields müssen implementiert werden, damit die Werte beim Abschicken des Formulars weitergereicht werden können:
| Wert von | Name des "Hidden Fields" |
|---|---|
| MerchantID | "MerchantID" |
| Request-Länge | "Len" |
| Request-Daten | "Data" |
| Template | "Template" |
| Language | "Language" |
| Zurück-Button-URL | "URLBack" |
| Zahlart | "PaymentMethod" |
| Kreditkartenmarke | "CreditCardBrand" |
Sprachauswahl
Die Sprachauswahl auf dem Formular der Hosted Payment Page erfolgt automatisch anhand des Parameters Language. Die anderen Sprachbereiche werden herausgefiltert. Wenn Sie z.B. mit JavaScript auf das Feld eines anderen Sprachbereichs zugreifen wollen, ist das über den folgenden Pfad möglich: paygate/language/@name.
XML-Struktur
Mit dem Parameter „Language“ wird gesteuert, welcher Abschnitt der XML-Textdatei ausgelesen wird. Standardmäßig wird immer deutsch „de“ verwendet.
Die XML-Datei sollte folgendes Grundgerüst haben:
<?xml version="1.0" encoding="utf-16"?>
</languages>
<language name="de">
<title>Zahlung</title>
...
</language>
<language name="en">
<title>Payment</title>
...
</language>
</languages>
Das Encoding ist auch „UTF-8“ möglich.
Mit <xsl:variable name=““ select=“paygate/language/@name“/> können Sie direkt von der XSL-Datei einen XML-Sprachenabschnitt ansprechen.
Zum Überblick, welche Parameter zusätzlich von der Hosted Payment Page gerendert werden, sehen Sie sich bitte folgende Struktur an (XSL-Datei wird gegen folgenden XML-String gerendert):
strXML = "<?xml version='1.0' encoding='windows-1252'?>" & _
<paygate>
<merchantID>...</merchantID>
<len>257</len>
<data>E98D4...F7065</data>
<template>
<urlBack><![CDATA[http://www.google.de]]></urlBack>
<paymentMethods>
<VISA type="CC" displayName="Visa"/>
<MasterCard type="CC" displayName="MasterCard"/>
<AMEX type="CC" displayName="American Express"/>
<DINERS type="CC" displayName="Diners Club International"/>
<Discover type="CC" displayName="Discover"/>
<JCB type="CC" displayName="JCB"/>
<EDD lowercase="edd">
<PayPal lowercase=="paypal">
<iDEAL lowercase=="ideal">
</paymentMethods>
<language name="de">
<title>Zahlung</title>
...
</language>
</paygate>
Auf jeden einzelnen Wert dieser XML-Struktur, welche im Backend aus der XML-Sprachdatei und zusätzlichen Werten gerendert wird, können Sie in Ihrer XSL-Datei zugreifen.
JavaScript
Sie können individuelle JavaScript-Methoden entweder direkt im HEAD-Bereich Ihrer XSL-Datei oder in der main.js-Datei welche Sie in Ihrem Images-Ordner unter Templates/imagesMerchantID_PaymentPage/js finden.
Hinweis: Bitte verwenden Sie keine externen Links auf Ihr JavaScript!