Payment Page - B+S Card Service

Transcrição

Payment Page - B+S Card Service
Payment Page
Spezifikation
Version 5
110.0089
© SIX Payment Services
Inhaltsverzeichnis
1
Einleitung ............................................................................................................................................................ 4
1.1
Voraussetzungen ................................................................................................................................................ 4
1.2
Anzeige der Payment Page ................................................................................................................................ 4
1.3
Datensicherheit und PCI DSS............................................................................................................................. 5
1.4
Unterstützte Zahlungsmittel ............................................................................................................................... 5
1.5
Formatangaben ................................................................................................................................................... 5
2
Saferpay Client Library ....................................................................................................................................... 6
2.1
Voraussetzungen ................................................................................................................................................ 6
2.1.1
.NET Client Library................................................................................................................................................ 6
2.1.2
Java Client Library ................................................................................................................................................ 6
2.2
Installation ........................................................................................................................................................... 6
2.2.1
.NET Client Library................................................................................................................................................ 6
2.2.2
Java Client Library ................................................................................................................................................ 6
2.3
Proxy-Server Konfiguration ............................................................................................................................... 7
2.3.1
.NET Client Library................................................................................................................................................ 7
2.3.2
Java Client Library ................................................................................................................................................ 8
2.4
Schlüsselerzeugung ........................................................................................................................................... 9
2.4.1
.NET Client Library................................................................................................................................................ 9
2.4.2
Java Client Library ................................................................................................................................................ 9
3
Klassen und Methoden der Client Library ....................................................................................................... 10
3.1
Zusammenfassung ........................................................................................................................................... 10
3.1.1
Erzeugung des Zahlungslinks ............................................................................................................................. 10
3.1.2
Prüfung der Autorisationsantwort ........................................................................................................................ 10
3.1.3
Verbuchung einer Reservation ............................................................................................................................ 10
3.2
MessageFactory Klasse ................................................................................................................................... 10
3.3
MessageObject Klasse ..................................................................................................................................... 11
3.4
Open() Methode................................................................................................................................................. 11
3.5
CreatePayInit() Methode ................................................................................................................................... 11
3.6
VerifyPayConfirm() Methode ............................................................................................................................ 11
3.7
CreateRequest() Methode ................................................................................................................................. 11
3.8
SetAttribute() Methode ..................................................................................................................................... 11
3.9
GetAttribute() Methode ..................................................................................................................................... 11
3.10
GetPostURL() Methode ..................................................................................................................................... 11
3.11
GetPostData() Methode .................................................................................................................................... 11
3.12
GetPostSignature() Methode ............................................................................................................................ 12
3.13
Capture() Methode ............................................................................................................................................ 12
4
Saferpay https Interface ................................................................................................................................... 13
4.1
https Interface Adressen .................................................................................................................................. 13
4.2
Transaktionsverlauf .......................................................................................................................................... 13
4.3
Erzeugung des Zahlungs-URL über die CreatePayInit-Adresse .................................................................... 14
4.4
Prüfung der Autorisationsantwort über die VerifyPayConfirm-Adresse ....................................................... 14
4.5
Beispiel VerifyPayConfirm ................................................................................................................................ 15
4.6
Verbuchung einer Zahlung über die PayComplete-Adresse .......................................................................... 15
4.7
Aufruf der Payment Page über die Redirect-Adresse ..................................................................................... 16
4.7.1
Nachteile von Redirect ........................................................................................................................................ 16
4.7.2
https Interface Adresse ....................................................................................................................................... 16
4.7.3
Transaktionsverlauf mit Redirect ......................................................................................................................... 16
5
Verarbeitungsschritte ....................................................................................................................................... 17
5.1
Übersicht ........................................................................................................................................................... 17
Saferpay – Payment Page
Seite 2
5.2
Prozessbeschreibung ....................................................................................................................................... 17
6
Parameter .......................................................................................................................................................... 19
6.1
PayInit Parameter.............................................................................................................................................. 19
6.1.1
Sprachen-Codes für LANGID .............................................................................................................................. 24
6.1.2
Zahlungsmittel-IDs für PAYMENTMETHODS ..................................................................................................... 24
6.1.3
PayConfirm Parameter der Autorisationsantwort ........................................................................................... 25
6.1.4
Adressparameter bei der Verwendung von Masterpass ................................................................................ 28
6.2
VerifyPayConfirm Anfrage ................................................................................................................................ 29
6.3
PayComplete Anfrage ....................................................................................................................................... 30
6.4
PayComplete Antwort ....................................................................................................................................... 31
7
Anpassung mit Cascading Style Sheets ......................................................................................................... 32
7.1
Styling Varianten ............................................................................................................................................... 32
7.1.1
Saferpay Mobile Payment Page anpassen .......................................................................................................... 32
7.1.2
Komplett neues Design für die Payment Page .................................................................................................... 32
7.2
Größe des Inline Frame .................................................................................................................................... 33
7.3
Verwendung des CSS ....................................................................................................................................... 33
7.3.1
Element Name .................................................................................................................................................... 33
7.3.2
Class Name ........................................................................................................................................................ 33
7.3.3
Element ID .......................................................................................................................................................... 33
7.3.4
Element Attribute ................................................................................................................................................ 33
7.3.5
CSS Selektoren .................................................................................................................................................. 34
7.4
Wichtige Informationen für die Verwendung von CSS ................................................................................... 34
7.5
CSS- Klassennamen ......................................................................................................................................... 34
7.5.1
Allgemeine Klassen ............................................................................................................................................ 34
7.5.2
Spezifisch für Payment Selection ........................................................................................................................ 36
7.5.3
Spezifisch für Kartenformular .............................................................................................................................. 36
7.5.4
Spezifisch für Lastschriftformular ........................................................................................................................ 36
7.5.5
Spezifisch für Online Banking ............................................................................................................................. 37
7.5.6
Spezifisch für Rechnungsformular....................................................................................................................... 37
7.5.7
Spezifisch für Adressformular (inkl. Billpay Adressformular) ................................................................................ 37
7.5.8
Spezifisch für AGB .............................................................................................................................................. 37
7.5.9
Spezifisch für Redirect Seiten (incl. 3D-Secure) .................................................................................................. 37
7.5.10 Spezifisch für Fehlerseiten .................................................................................................................................. 37
7.5.11 Spezifisch für Confirmation Page ........................................................................................................................ 37
7.6
CSS- Beispiele .................................................................................................................................................. 37
8
Saferpay Testumgebung .................................................................................................................................. 38
9
Beispiele ............................................................................................................................................................ 39
9.1
Wichtiger Hinweis ............................................................................................................................................. 39
9.2
C# mit der .NET LIB........................................................................................................................................... 39
9.3
Java mit der Java LIB ....................................................................................................................................... 41
9.4
Kommandozeilenaufrufe mit der Java LIB ...................................................................................................... 43
9.5
https Interface ................................................................................................................................................... 45
10
Fehler-Codes ..................................................................................................................................................... 47
11
Kontakt .............................................................................................................................................................. 48
11.1
Saferpay Integration Team ............................................................................................................................... 48
11.2
Saferpay Support Team .................................................................................................................................... 48
Saferpay – Payment Page
Seite 3
1
Einleitung
Die Saferpay Payment Page, in der Folge auch PP genannt, ist ein Online-Bezahlformular, das von
Saferpay bereit gestellt wird. Dieses Dokument beschreibt die Integration der PP in bestehende ShopSysteme mit der Saferpay Client Library und dem Saferpay https Interface. Zur Vereinfachung werden
in diesem Dokument die Saferpay Client Library auch mit LIB und das Saferpay https Interface auch
mit HI abgekürzt.
1.1
Voraussetzungen
Die Nutzung der PP setzt Folgendes voraus:

Eine entsprechende Saferpay eCommerce-Lizenz und somit das Vorhandensein einer gültigen
Kennung mit Benutzername und Passwort für das Saferpay System.

Mindestens ein aktives Saferpay Terminal, über das die Zahlungen durchgeführt werden können
ist vorhanden und die dazugehörige Saferpay TERMINALID beziehungsweise die Saferpay
ACCOUNTID liegt vor.

Ein gültiger Akzeptanzvertrag für Kreditkarten oder ein anderes Zahlungsmittel liegt vor.

Um das Saferpay HI nutzen zu können, müssen die Händlerdaten auf dem HI eingerichtet
werden. Nach der Einrichtung werden die für den Händler erzeugten Zertifikate zur SSLverschlüsselten Kommunikation dort von Saferpay bereit gestellt. Die Einrichtung ist kostenfrei,
muss jedoch für jeden Saferpay Account beantragt werden. Senden Sie dazu bitte eine formlose
Email mit der Bitte um Einrichtung an [email protected], wenn Sie Ihren SaferpayVertrag in der Schweiz abgeschlossen haben und an [email protected], wenn Sie Ihren Vertrag in einem anderen Land (D, NL, A, und so weiter)
abgeschlossen haben. Bei Verwendung der Redirect-Adresse teilen Sie den Kollegen bitte
unbedingt die vollständige Web-Adresse für den SUCCESSLINK mit, da diese dann fest bei
Saferpay hinterlegt werden muss.
1.2
Anzeige der Payment Page
Saferpay unterstützt neben der ganzseitigen Anzeige der Payment Page auch die Einbettung der PP
in einen Inline Frame (Iframe). Für das Öffnen der PP als Pop-Up, leistet Saferpay keinen Support.
Auch wenn Saferpay die Anzeige der PP in einem Iframe unterstützt, empfehlen wir die ganzseitige
Darstellung. Sie stellt aus unserer Sicht eine wesentliche Verbesserung der Benutzerfreundlichkeit für
den Kunden dar, weil der URL und das SSL-Zertifikat jederzeit sichtbar sind. Dem Kunden wird so
deutlich, bei welchem Anbieter beziehungsweise, auf welcher Website er sich befindet. Hinzu kommt
die Reduzierung von Zahlungsabbrüchen durch Sicherheitsabfragen der Verarbeiter.
PayPal blockt Zahlungsanfragen aus einem Iframe!
Aus diesem Grunde vollzieht die Saferpay Payment Page bei PayPal einen Ausbruch aus dem iFrame
und ruft PayPal dann ganzseitig auf. Dadurch erfolgt auch der Aufruf der SUCCESSS-Page nicht
mehr im iFrame, sondern ganzseitig. Bitte beachten sie dies bei der Integration von PayPal.
Es kann nicht ausgeschlossen werden, dass weitere Zahlungsmittelanbieter und Betreiber von
Authentifizierungsseiten für 3-D Secure PayPal folgen. Fragen sie zur Sicherheit ihren
Zahlungsmittelverarbeiter, ob er die Anzeige der PP in einem Iframe gestattet oder aus
Sicherheitsgründen eine Integration im Iframe untersagt!
Saferpay – Payment Page
Seite 4
1.3
Datensicherheit und PCI DSS
Die Kreditkartenorganisationen haben das Sicherheitsprogramm PCI DSS (Payment Card Industry
Data Security Standard) ins Leben gerufen, um Betrug mit Kreditkarten und deren Missbrauch
vorzubeugen.
Bei Verwendung der PP erfasst der Karteninhaber seine Kreditkartennummer und das Verfalldatum
nicht innerhalb der E-Commerce-Applikation des Händlers, sondern innerhalb des Saferpay
Zahlungsfensters (PP). Da die E-Commerce-Applikation und Saferpay auf physisch getrennten
Plattformen betrieben werden, besteht keine Gefahr, dass die Kreditkartendaten in der Datenbank des
Händler-Systems gespeichert werden können. Das Risiko eines Missbrauchs der Kreditkartendaten
wird dadurch reduziert und der Aufwand der PCI DSS Zertifizierung verringert sich für den Händler
deutlich.
Fragen zu PCI DSS kann Ihnen Ihr Verarbeiter oder ein darauf spezialisiertes Unternehmen
beantworten (siehe https://www.pcisecuritystandards.org).
1.4
Unterstützte Zahlungsmittel
Die Saferpay Payment Page kann aktuell folgende Zahlungsmittel verarbeiten:

Visa (inklusive der 3-D Secure Sicherheitstechnologie Verified by Visa)

MasterCard (inklusive der 3-D Secure Sicherheitstechnologie MasterCard SecureCode)

Maestro international

V PAY

American Express (inklusive der Sicherheitstechnologie American Express Safekey)

Diners Club

J.C.B.

Elektronisches Lastschriftverfahren ELV (nur Deutschland)

giropay

iDEAL

PayPal

eps

PostFinance Card und PostFinance E-Finance

Przelewy Online

MasterPass *
* Kein Zahlungsmittel im eigentlichen Sinne. Es handelt sich vielmehr um eine elektronische Geldbörse (Wallet),
die die Zahlungsmitteldaten des Kunden beinhaltet.
1.5
Formatangaben
Folgende Abkürzungen für die Formatangaben werden in diesem Dokument verwendet:
a
Buchstaben (a - z, A - Z)
n
numerische Zeichen (0 - 9)
an
alphanumerische Zeichen (a - z, A - Z, 0 - 9)
s
Sonderzeichen (:?,-(+‘.)/ und Leerzeichen)
ans
alphanumerische und Sonderzeichen
Saferpay – Payment Page
Seite 5
2
Saferpay Client Library
Die Saferpay LIB wird auf dem Server, der die E-Commerce-Applikation des Händlers bereitstellt
installiert. Nach der Installation stehen auf dem Server die Saferpay Klassen und Methoden zur
Verfügung.
Für die Installation der LIB und die damit mögliche Schlüsselerzeugung werden auf dem ZielServer Root- beziehungsweise Administratorrechte benötigt!
Die LIB gibt es als .NET- oder Java-Version. Die entsprechenden Dateien können im DownloadBereich des Saferpay Backoffices unter folgender Adresse heruntergeladen werden:
https://www.saferpay.com/download/
Kann weder die .NET LIB, noch die Java LIB genutzt werden oder ist keine lokale Installation möglich,
steht alternativ das Saferpay https Interface zur Verfügung.
2.1
2.1.1
Voraussetzungen
.NET Client Library
Da die Saferpay .Net Client LIB im .Net Framework 2.0 kompiliert wurde, muss dieses ebenfalls auf
dem Zielserver installiert sein.
2.1.2
Java Client Library
Auf dem Zielserver muss eine Sun Java Runtime Environment (JRE) ab der Version 1.3.1 oder neuer
installiert sein. Alternative Java Umgebungen, wie OpenJDK oder von IBM sind nicht ohne weiteren
Aufwand verwendbar.
2.2
2.2.1
Installation
.NET Client Library
Starten Sie die geladene Installationsdatei und folgen Sie den Anweisungen des Setup-Assistenten.
2.2.2
Java Client Library
Entpacken Sie die geladene Zip-Datei und kopieren Sie für die Integration in Java das darin
enthaltene „Saferpay.jar“ in das Verzeichnis jre/lib/ext.
Für die Integration in einer anderen Programmier- oder Skriptsprache kann das „Saferpay.jar“ in ein
beliebiges Verzeichnis kopiert werden.
Saferpay – Payment Page
Seite 6
2.3
Proxy-Server Konfiguration
Für den Fall, dass die die Kommunikation im Netzwerk über einen Proxy-Server stattfindet, werden
die entsprechenden Konfigurationsdaten von den Saferpay LIBs benötigt.
2.3.1
.NET Client Library
Zur Verwendung eines Proxy-Servers müssen der Datei „config.xml“ ein Parameter hinzugefügt
werden. Die Datei befindet sich im Installationsverzeichnis des .NET Client, zum Beispiel in
C:\Programme\Saferpay\Client\.
Proxy-Server mit Benutzerkennung
Für die Kommunikation mit individuellen Zugangsdaten über einen Proxy müssen die folgenden
Parameter der „config.xml“ hinzugefügt werden, wobei die Reihenfolge keine Rolle spielt:
PROXYPASSWORD="geheim"
PROXYUSERNAME="MyProxyUser"
PROXYADDRESS="http://localhost:8080"
USEPROXY="True"
USEDEFAULTCREDENTIALS="False"
Proxy-Server ohne Benutzerkennung
Für die Kommunikation ohne Angabe von Proxybenutzer und Proxypasswort müssen die folgenden
Parameter der „config.xml“ hinzugefügt werden:
PROXYADDRESS="http://localhost:8080"
USEPROXY="True"
USEDEFAULTCREDENTIALS="True"
Je nach Proxy-Konfiguration sieht der Inhalt der „config.xml“ dann folgendermaßen aus:
<IDP MSGTYPE="SetupResponse" GXID="6216B171-B449-4D02-A114-D42AB58D42AE"
CUSTOMERID="99867" VERSION="47"
VTAUTOURL="https://www.saferpay.com/user/setup.asp"
VTURL="https://www.saferpay.com/vt2/Pay.aspx" VTKEYID="1-0"
CAPTUREURL="https://www.saferpay.com/scai2/index.aspx"
VTSCRIPTURL="http://www.saferpay.com/OpenSaferpayScript.asp"
USEDEFAULTCREDENTIALS="True" USEPROXY="True"
PROXYADDRESS="http://localhost:8080" />
Saferpay – Payment Page
Seite 7
2.3.2
Java Client Library
Die Konfiguration eines Proxy-Servers kann bei der Java LIB über eine Datei „settings.xml“ oder über
einen Kommandozeilenaufruf erfolgen. Bei Verwendung der „settings.xml“ muss diese im selben
Verzeichnis erstellt werden, in dem sich “saferpay.jar“ befindet, zum beispiel in jre/lib/ext.
Proxy-Server mit Benutzerkennung
Beispiel „settings.xml“:
<IDP PROXYHOST="10.23.209.100" PROXYPORT="8080" PROXYUSERNAME="myUserId"
PROXYPASSWORD="myPassword" TRACEOPT="rawhttp" VERSION="1" USEPROXY="1" />
Beispiel Kommandozeilenaufruf:
--proxyHost 10.23.209.100 --proxyPort 8080 --proxyUser myUserId
--proxyPassword myPassword
Proxy-Server ohne Benutzerkennung
Beispiel „settings.xml“:
<IDP PROXYHOST="10.23.209.100" PROXYPORT="8080" TRACEOPT="rawhttp"
VERSION="1" USEPROXY="1" />
Beispiel Kommandozeilenaufruf:
--proxyHost 10.23.209.100 --proxyPort 8080
Saferpay – Payment Page
Seite 8
2.4
Schlüsselerzeugung
Neben der SSL-verschlüsselten Kommunikation zwischen der LIB und den Saferpay Servern werden
die Daten eines Saferpay Accounts mit einer digitalen Signatur nach dem PGP-Verfahren (Pretty
Good Privacy) versehen und geschützt. Für diesen Zweck muss für jeden Saferpay Account ein
Schlüsselpaar erzeugt und auf dem Händler-Server gespeichert werden. Für die Erzeugung der
Schlüssel werden ein gültiger Login und das Passwort für das Saferpay Backoffice benötigt. Nach
erfolgreicher Schlüsselerzeugung kann das Passwort im Saferpay Backoffice geändert werden, da die
Erzeugung der Schlüssel, wenn einmal erfolgt, nicht wiederholt werden muss. Erzeugte
Schlüsselpaare behalten Ihre Gültigkeit und sollten daher sicher verwahrt und der Zugriff kontrolliert
werden.
2.4.1
.NET Client Library
Nach Installation der .NET LIB steht für die Schlüsselerzeugung eine Grafische Benutzeroberfläche
zur Verfügung. Diese findet sich unter:
Der Saferpay Client Setup erscheint. Folgen Sie anschließend den Anweisungen.
2.4.2
Java Client Library
Die Schlüsselerzeugung mit der Java LIB erfolgt über die Kommandozeile. Wechseln Sie hierfür in
das Verzeichnis mit dem Saferpay.jar und geben Sie folgenden Befehl ein:
java -jar Saferpay.jar -conf -p <zielverzeichnis> -r
https://www.saferpay.com/user/setup.asp -u e99867001 -w XAjc3Kna
Das Beispiel verwendet die Zugangsdaten des Saferpay Testkontos.
Die Kommandozeilenhilfe erscheint nach diesem Aufruf:
java -jar Saferpay.jar –h
Saferpay – Payment Page
Seite 9
3
Klassen und Methoden der Client Library
Im Folgenden werden Klassen und Methoden beschrieben, die für die Integration der Saferpay
Payment Page verwendet werden können.
3.1
3.1.1
Zusammenfassung
Erzeugung des Zahlungslinks
Der Zahlungslink wird mit der CreatePayInit() Methode erstellt. Das erzeugte MessageObject muss
vor dem Aufruf von GetPostUrl() mit den Transaktionsparametern gefüllt werden.
1) Erzeugung eines MessageFactory Object.
2) Öffnen der entsprechenden Konfiguration mit Open().
3) Aufruf von CreatePayInit(), um ein leeres MessageObject zu erhalten.
4) Aufruf von SetAttribute() mit dem MessageObject zum Setzen der Parameter.
5) Aufruf von GetPostUrl(), um einen Zahlungslink für die Payment Page zu erhalten.
3.1.2
Prüfung der Autorisationsantwort
1) Erzeugung eines MessageFactory Object.
2) Öffnen der entsprechenden Konfiguration mit Open().
3) Aufruf von VerifyPayConfirm() zur Verifizierung von DATA und SIGNATURE.
4) Auslesen von ID und TOKEN mit GetAttribute().
5) Speichern der Werte von ID und TOKEN.
3.1.3
Verbuchung einer Reservation
1) Erzeugung eines MessageFactory Object.
2) Öffnen der entsprechenden Konfiguration mit Open().
3) Aufruf von CreateRequest("PayComplete"), um ein MessageObject zu erhalten.
4) Aufruf von SetAttribute() mit dem MessageObject zum Setzen von ID und TOKEN.
5) Aufruf von Capture() mit dem MessageObject.
3.2
MessageFactory Klasse
Class MessageFactory
{
void Open(String path);
MessageObject CreatePayInit();
MessageObject VerifyPayConfirm(String data, String signature);
MessageObject CreateRequest(String msgtype);
};
Saferpay – Payment Page
Seite 10
3.3
MessageObject Klasse
Class MessageObject
{
void SetAttribute(String name, String value);
String GetAttribute(String name);
String GetPostURL();
String GetPostData();
String GetPostSignature();
void Capture();
};
3.4
Open() Methode
Mit Open() wird auf das Schlüsselpaar des Händler Accounts referenziert. Damit sich weitere
Funktionsaufrufe mit dieser MessageFactory ebenfalls auf diese Schlüssel beziehen, muss Open() vor
allen anderen Methoden des MessageFactory Objects aufgerufen werden.
3.5
CreatePayInit() Methode
Mit CreatePayInit() kann ein Zahlungslink erstellt werden. Dieser wird unter Einbeziehung der
gesetzten Parameter mit GetURL() erzeugt.
3.6
VerifyPayConfirm() Methode
Überprüft die digitale Signatur der Bestätigungsmeldung (MSGTYPE=PayConfirm) an den Shop über
SUCCESSLINK oder NOTIFYURL, um sicherzustellen, dass die Antwort nicht manipuliert wurde.
3.7
CreateRequest() Methode
Erzeugt ein neues Request MessageObject vom angegebenen Nachrichtentyp (msgtype). So kann
zum Beispiel mit CreateRequest("PayComplete") eine Reservation verbucht oder verworfen, ein
Teilbetrag verbucht, eine Buchung storniert und der Tagesabschluss ausgelöst werden.
CreateRequest("PayComplete") benötigt für eine Verbuchung immer die Parameter ID und
ACCOUNTID. Für eine betragsreduzierte Verbuchung wird zusätzlich der Parameter AMOUNT
benötigt, für das Verwerfen einer Reservation, das Stornieren einer Buchung und das Auslösen des
Tagesabschlusses ist der Parameter ACTION erforderlich.
3.8
SetAttribute() Methode
Mit SetAttribute() werden die für die Message benötigten Parameter gesetzt. Bitte beachten Sie bei
der Angabe der Parameternamen die Großschreibung.
3.9
GetAttribute() Methode
GetAttribute() liefert den Wert eines Parameters der Message zurück. Ist der Parameter in der
Nachricht nicht enthalten schlägt der Aufruf fehl. Bitte beachten Sie bei der Angabe der
Parameternamen die Großschreibung.
3.10 GetPostURL() Methode
Der Aufruf von GetPostURL() liefert den Zahlungslink der Message.
3.11 GetPostData() Methode
Der Aufruf von GetPostData() liefert den liefert das DATA der Message.
Saferpay – Payment Page
Seite 11
3.12 GetPostSignature() Methode
Der Aufruf von GetPostSignature() liefert den liefert die SIGNATURE der Message.
3.13 Capture() Methode
Der Aufruf von Capture() übermittelt die Message vom Nachrichtentyp CreatePayComplete.
Saferpay – Payment Page
Seite 12
4
Saferpay https Interface
Alternativ zur Saferpay Client Library kann das Saferpay https Interface eingesetzt werden. Das kann
zum Beispiel der Fall sein, wenn auf dem Zielsystem die Saferpay LIB nicht installiert oder betrieben
werden kann.
4.1
https Interface Adressen
Das Saferpay https Interface ist über diese Web-Adressen erreichbar:
Erzeugung eines Zahlungs-URL:
https://www.saferpay.com/hosting/CreatePayInit.asp
Prüfung einer Autorisationsantwort:
https://www.saferpay.com/hosting/VerifyPayConfirm.asp
Verbuchung einer Zahlung:
https://www.saferpay.com/hosting/PayCompleteV2.asp
Aus Sicherheitsgründen werden die Parameter ACTION und AMOUNT von der PayComplete Adresse
des HI nicht unterstützt.
Hinweis! Die meisten Frameworks überprüfen die Gültigkeit eines Server-Zertifikates
automatisch. Dennoch empfehlen wir sich bei Verwendung des Saferpay https Interface zu
vergewissern, dass Ihre Applikation das Server-Zertifikat www.saferpay.com überprüft, um
einen Man-in-the-Middle-Angriff zu verhindern.
4.2
Transaktionsverlauf
Grundsätzlich läuft eine Transaktion nach folgendem Schema ab:
1.
2.
3.
4.
5.
Erzeugung des Zahlungs-URL (CreatePayInit)
Die Zahlung wird eigenständig vom Kunden über Saferpay abgewickelt.
Bei Erfolg wird der SUCCESSLINK mit der Autorisationsantwort aufgerufen.
Die Antwort sollte auf Plausibilität/Manipulation geprüft werden (VerifyPayConfirm).
Abschließend muss die Zahlung verbucht werden, um den Geldfluss über den
Tagesabschluss einzuleiten. Die Verbuchung kann entweder manuell über das Saferpay
Backoffice oder automatisiert mit der PayComplete-Nachricht erfolgen.
Saferpay – Payment Page
Seite 13
4.3
Erzeugung des Zahlungs-URL über die CreatePayInit-Adresse
Das Shop-System übermittelt die Saferpay PayInit-Parameter per GET oder POST an das HI. Dort
wird mit Hilfe der jeweiligen Saferpay Account Signatur ein verschlüsselter Zahlungs-URL erzeugt und
wieder an das Shop-System zurück geliefert. Anschließend kann der so erzeugte Zahlungs-URL zum
Bezahlen verwendet werden, in dem er etwa als Link oder Button in die Shop-Seite eingefügt wird.
Beispielaufruf (GET):
https://www.saferpay.com/hosting/CreatePayInit.asp?AMOUNT=…
Das Ergebnis wird im Klartext ohne HTML-Tags zurückgeliefert:
https://www.saferpay.com/vt/Pay.asp?DATA=%3cIDP%20ACCOUNTID%3d%2299867%2d94
913159%22%20ALLOWCOLLECT%3d%22no%22%20AMOUNT%3d%22100%22%20BACKLINK%3d%22%2
e%22%20CURRENCY%3d%22DEM%22%20DELIVERY%3d%22no%22%20DESCRIPTION%3d%22Testka
uf%20Warenkorb%22%20EXPIRATION%3d%2220010408%2012%3a13%3a50%22%20FAILLINK%3
d%22%2e%22%20KEYID%3d%220%2d37217%2dea645c3f3f0911d583d70050da413f31%22%20M
SGTYPE%3d%22PayInit%22%20SUCCESSLINK%3d%22%2e%22%20TOKEN%3d%22ea645c5d3f091
1d583d70050da413f31%22%2f%3e&SIGNATURE=2f1ec1fa51002817941c22e98b9047422ba9
ff8fce8b61dab8208a5aa8c82be7cda02ff8a66930481fc19b16d05e7bcedd2b0e5be98feca
d3d48bd43916a502f
Im Falle eines Fehlers wird die Kennung „ERROR“ zusammen mit einer Fehlerbeschreibung
zurückgeliefert:
ERROR: Missing AMOUNT attribute
4.4
Prüfung der Autorisationsantwort über die VerifyPayConfirm-Adresse
Nach erfolgreicher Zahlung wird der SUCCESSLINK aufgerufen und mit ihm werden die Parameter
DATA und SIGNATURE per GET an das Shop-System zurückgeliefert. Der Parameter DATA enthält
die PayConfirm-Nachricht mit den Details der Autorisationantwort und der Parameter SIGNATURE
den Schlüssel, mit dem DATA von Saferpay signiert wurde. Um eine Manipulation der
Autorisationsantwort auszuschließen, sollten beide Parameter unmittelbar nach Erhalt an die
VerifyPayConfirm-Adresse des Saferpay HI gesendet werden, das die Anfrage mit OK oder ERROR
beantwortet.
Saferpay – Payment Page
Seite 14
4.5
Beispiel VerifyPayConfirm
Die Parameter DATA und SIGNATURE werden per GET oder POST an das Saferpay Gateway
gesendet:
Beispielaufruf (GET):
https://www.saferpay.com/hosting/VerifyPayConfirm.asp?DATA=…
Stimmt die digitale Signatur mit den Werten aus DATA überein, wird die positive Überprüfung mit OK
unter Angabe der Saferpay ID und TOKEN angezeigt:
OK:ID=56a77rg243asfhmkq3r&TOKEN=%3e235462FA23C4FE4AF65…
Im Falle eines Fehlers wird der Text "ERROR" zusammen mit einer Fehlerbeschreibung
zurückgeliefert:
ERROR: Possible manipulation
4.6
Verbuchung einer Zahlung über die PayComplete-Adresse
Das Verbuchen einer Autorisierung erfolgt über den Aufruf der CreatePayComplete-Adresse des HI.
Hierfür müssen die Parameter ACCOUNTID und ID per GET oder POST an das Saferpay HI gesendet
werden. Nach Erhalt der PayComplete-Nachricht antwortet das HI mit OK oder ERROR.
Eine Betrag reduzierende Verbuchung oder das Stornieren einer Zahlung über die
CreatePayComplete-Adresse des HI sind aus Sicherheitsgründen nicht möglich. Die Parameter
ACTION und AMOUNT werden deshalb ignoriert.
Beispielaufruf (GET):
https://www.saferpay.com/hosting/PayCompleteV2.asp?ACCOUNTID=9986794913159&ID=5sfhmkq3rg54345abcd234&spPassword=XAjc3Kna*
Konnte die Operation erfolgreich durchgeführt werden, wird OK zurückgeliefert:
OK
Im Falle eines Fehlers wird der Text ERROR zusammen mit einer Fehlerbeschreibung zurückgeliefert:
ERROR: Error description
* Die Übergabe des Parameters spPassword ist nur beim Testkonto erforderlich. Für produktive Konten wird
dieser Parameter nicht benötigt!
Saferpay – Payment Page
Seite 15
4.7
Aufruf der Payment Page über die Redirect-Adresse
Manchmal ist es nicht möglich die Antwortdaten vom Saferpay https Interface entgegenzunehmen,
weil die Webserver-Einstellungen es nicht zulassen oder vielleicht ein Shop-System eingesetzt wird,
das ausschließlich mit JavaScript arbeitet. In solch einem Fall kann die Redirect-Adresse des HI zum
Aufruf der PP verwendet werden.
4.7.1
Nachteile von Redirect
Da bei diesem Verfahren die Zahlungsdaten auf der Web-Seite hinterlegt werden müssen, besteht
theoretisch die Möglichkeit, dass diese von versierten Internet-Nutzern manipuliert werden. Ebenso
ließe sich die PayConfirm-Nachricht verändern oder simulieren.
Verwenden Sie die Redirect-Adresse nur, wenn die Gegebenheiten es nicht anders zulassen.
Wenn möglich, sollte immer die CreatePayInit-Adresse angesprochen werden!
4.7.2
https Interface Adresse
Das Saferpay https Interface ist über diese Web-Adresse erreichbar:
Aufruf der Payment Page per Redirect:
https://www.saferpay.com/hosting/Redirect.asp
4.7.3
Transaktionsverlauf mit Redirect
Die zur Zahlung notwendigen PayInit-Parameter werden per GET oder POST an das Saferpay HI
übermittelt. Daraufhin wird auf dem HI ein Zahlungs-URL erzeugt und die Payment Page unmittelbar
per „redirect“ aufgerufen. Nachdem der Kunde die Zahlung über die PP erfolgreich abgewickelt hat,
wird die Autorisationsantwort (PayConfirm-Nachricht) zunächst an das Saferpay HI gesendet. Dort
wird die diese auf Plausibilität und mögliche Manipulation überprüft (VerifyPayConfirm) und
anschließend das Ergebnis per GET mit dem SUCCESSLINK an das Shop-System übermittelt. Dem
Shop-System wird das Ergebnis der Prüfung mit dem Parameter RESULT angezeigt. RESULT kann
die Werte „0“ für Erfolg oder „1“ bei Manipulation oder einem Fehler enthalten.
Beispielaufruf (GET):
https://www.saferpay.com/hosting/Redirect.asp?AMOUNT=1095&…
Durch den Aufruf wird der Kunde über seinen Browser direkt zur PP geleitet, um darüber die Zahlung
abzuwickeln.
Nach erfolgter Zahlung findet auf dem HI die Überprüfung der digitalen Signatur statt. Anschließend
wird das Ergebnis per GET an den SUCCESSLINK weitergeleitet. Bei erfolgreicher Überprüfung wird
das Ergebnis mit RESULT=0 angezeigt und weitere PayConfirm-Parameter mit den
Autorisationsdetails sind verfügbar:
http://www.shop.de/kasse_ok.php?RESULT=0&ID=J89HBV...
Schlägt die Überprüfung der digitalen Signatur fehl wird nur das Ergebnis RESULT=1 zurückgeliefert:
http://www.shop.de/kasse_ok.pl?Session=123&RESULT=1
Saferpay – Payment Page
Seite 16
5
Verarbeitungsschritte
5.1
Übersicht
Die folgende Grafik zeigt den Ablauf einer erfolgreichen Online Zahlung über die Saferpay Payment
Page:
Webshop
Ware und Betrag
stehen fest.
Erzeugung des
Zahlungslinks mit
CreatePayInit
Kunde
Saferpay
Verarbeiter
Kunde legt
Produkte in den
Warenkorb
Checkout
1
Anzeige des Zahlungslinks
2
„Bezahlen“
(Zahlungslink
anklicken)
PP öffnet sich
3
Trägt
Zahlungsmitteldetails ein und
bezahlt
Zeigt Payment
Page Dialog an
4
Zeit
Autorisationsanfrage
9
VerifyPayConfirm
durchführen
5.2
1
2
7
8
Antwortdaten an den Shop
Erhält
Bestätigung,
schließt Dialog
5
6
Prüft und erteilt
Genehmigung
Autorisationsantwort
10
11
PayComplete
ausführen & Ware
verschicken
Trägt Transaktion
als Buchung ein
Sendet PayComplete
Prozessbeschreibung
Sobald der Kunde seinen Warenkorb gefüllt hat und der Zahlungsbetrag feststeht, erzeugt
der Webshop den Zahlungslink (CreatePayInit). Der Webshop stellt auf der
Bestellbestätigung den Zahlungslink in Form eines „Bezahlen“ Buttons oder ähnlich dar.
Der Kunde klickt auf „Bezahlen“ und die PP öffnet sich.
3
Der Dialog der PP gibt dem Kunden ein Zahlungsmittel vor oder dieser wählt dort das
Zahlungsmittel für die Zahlungsabwicklung selbst aus und gibt die verlangten
Zahlungsmitteldetails ein.
4
Anschließend wird die Online Autorisation des Zahlungsmittels durchgeführt.
5
Der Verarbeiter prüft die Autorisationsanfrage und erteilt die Genehmigung.
6
Der Verarbeiter übermittelt die Autorisationsantwort.
7
In der PP wird eine Bestätigung der Zahlung angezeigt und der Kunde wird aufgefordert den
Vorgang durch Klicken auf „Beenden“ abzuschließen.
Saferpay – Payment Page
Seite 17
8
Die PP wird geschlossen und der Kunde über den SUCCESSLINK in den Shop zurück
geleitet. Der Shop erhält die Antwortdaten der Autorisation.
In seltenen Fällen ist es möglich, dass der SUCCESSLINK mehrfach aufgerufen wird. Die
Gründe hierfür können unterschiedlicher Natur sein und lassen sich mit technischen Mitteln
nicht immer unterbinden. Zur Erkennung solcher Fälle empfiehlt sich die Verwendung des
NOTIFYURL oder die Prüfung der Rückgabewerte auf Eindeutigkeit, beispielsweise
mithilfe einer Shop Session ID, die per GET an den SUCCESSLINK angehängt wird. So
kann sichergestellt werden, dass der Shop keine doppelten Bestellungen registriert und
Folgeaktionen, wie zum Beispiel der PayComplete-Aufruf nur einmal stattfinden.
9
Das Händlersystem prüft die Zahlungsbestätigung (VerifyPayConfirm) und speichert sie
zusammen mit den Auftragsinformationen ab.
10
Der Betrag wird verbucht (PayComplete) und die Bestellung kann ausgeführt werden.
Das Verbuchen einer Reservation ist für den Tagesabschluss zwingend erforderlich.
Dieser berücksichtigt nur Transaktionen mit dem Status „Buchung“ und leitet sie zur
Auszahlung an den Verarbeiter weiter. Das Geld wird anschließend in Form einer
Sammelposition
dem
Geschäftskonto
des
Händlers
gutgeschrieben.
Vom
Zahlungsmittelverarbeiter erhält der Händler eine Abrechnungsliste.
Das Verbuchen kann je nach Geschäftsfall auch später erfolgen, in der Regel innerhalb
von sechs Tagen. Solange behält eine Reservation durchschnittlich ihre Gültigkeit. Da dies
je nach Verarbeiter und Zahlungsmittel variieren kann, fragen Sie bitte direkt beim
Verarbeiter nach, was für Sie gilt.
Der Tagesabschluss kann manuell oder automatisch ausgelöst werden.
11
Der Status der Transaktion wechselt durch das PayComplete von „Reservation“ auf
„Buchung“. Der Transaktionsstatus wird im Saferpay Backoffice Journal angezeigt.
Saferpay – Payment Page
Seite 18
6
6.1
Parameter
PayInit Parameter
Die Tabelle listet die Parameter, die für die CreatePayInit Nachricht zur Verfügung stehen. Wenn nicht
anders erwähnt ist die Verwendung des jeweiligen Parameters Pflicht.
Parameter
ACCOUNTID
AMOUNT
CURRENCY
DESCRIPTION
ORDERID
VTCONFIG
SUCCESSLINK
FAILLINK
BACKLINK
Saferpay – Payment Page
Format
Beschreibung
Die Saferpay Kontonummer des Händlers für diese
ns[..15]
Transaktion.
Zum Beispiel "99867-94913159" für das Saferpay Testkonto.
Zahlungsbetrag in kleinster Währungseinheit.
n [..8]
Zum Beispiel: "1230" entspricht Betrag 12,30 in Euro.
Dreistelliger ISO 4217 Währungs-Code.
a [3]
Zum Beispiel: "CHF" oder "EUR"
ans[..50]
Enthält eine Beschreibung des Angebots, die in der PP und
nach erfolgreicher Zahlung auch in den Details der
Transaktion im Saferpay Backoffice angezeigt wird. Bei
Verwendung von MasterPass wird sie dem Kunden ebenfalls
in der dortigen Shopping Cart angezeigt. Eine Formatierung
der Anzeige in der PP über Steuerzeichen ist nicht möglich.
Die Verwendung von mehr als 50 Zeichen wird deshalb, auch
wenn es technisch möglich ist, nicht empfohlen. Der
übergebene Wert muss zur korrekten Verarbeitung von
Sonderzeichen zwingend HTML-kodiert werden.
Optional, Pflichtparameter beim Zahlungsmittel giropay
ans[..80]
ORDERID enthält die Referenznummer für eine Zahlung. Die
ORDERID sollte für eine spätere Zuordnung eindeutig
vergeben werden. Bei Verwendung des PostFinance Alias
Service ist ein eindeutiger Wert zwingend. Saferpay kann für
ORDERID 80 Zeichen abbilden, Verarbeiterseitig ist das
jedoch in der Regel nicht möglich. Zulange Zeichenketten
werden dort abgeschnitten. In der Praxis bewährt haben sich
12 Zeichen. Im Zweifel erfragen Sie bitte bei Ihrem
Verarbeiter wie viele Zeichen abgebildet werden können.
Optional
an[..20]
VTCONFIG bestimmt die zu verwendende Konfiguration für
die PP. Es können verschiedene Konfigurationen für die PP
im Saferpay Backoffice erstellt werden. Einige Optionen der
PP, wie das Einfügen eines Logos können nur dort aktiviert
werden.
Wert: Name der Konfiguration im Saferpay Backoffice.
ans[..1024] URL an den der Kunde nach erfolgreichem Abschluss der
Reservation per Browser Redirect weitergeleitet wird. Die
Bestätigungsnachricht (PayConfirm) wird von Saferpay an
diese Adresse per GET angehängt.
ans[..1024] URL an den der Kunde per Browser Redirect weitergeleitet
wird, wenn die Autorisation nicht durchgeführt werden
konnte.
ans[..1024] Optional
URL an den der Kunde per Browser Redirect weitergeleitet
wird, wenn er die Transaktion abbricht.
Seite 19
Parameter
NOTIFYURL
Format
Beschreibung
ans[..1024] Optional*
Voll qualifizierter URL, der bei erfolgreicher Autorisation von
den Saferpay Servern direkt aufgerufen wird und die
Bestätigungsmeldung (PayConfirm) per POST übermittelt.
Der Aufruf ist nur über die Standardports für http (80) oder
https (443) möglich. Andere Ports funktionieren nicht.
Um die Zuordnung einer Bestellung zu erleichtern hat sich
die Übergabe einer Shop Session ID als GET Parameter an
den NOTIFYURL bewährt.
*ACHTUNG! Die Verwendung von NOTIFYURL wird
unter allen Umständen empfohlen, um Fehlern beim
Aufruf des SUCCESSLINKS durch den Kunden
entgegenzuwirken. Beachten sie bitte hierbei, dass Ihr
System die Zahlungsbestätigung (PayConfirm) im
Normalfall auch zwei Mal bekommt. Der Parameter
ORDERID kann hierbei zur Identifizierung hilfreich sein.
Des Weiteren ist die Verwendung der NOTIFYURL bei m
Zahlungsmittel Masterpass zwingend erforderlich
(Siehe Kapitel 6.1.4).
AUTOCLOSE
n[..2]
CCNAME
a[..3]
NOTIFYADDRESS
ans[..50]
USERNOTIFY
ans[..50]
LANGID
a[2]
SHOWLANGUAGES
Saferpay – Payment Page
Optional
Schließt die PP nach erfolgreicher Autorisation automatisch
und ruft den SUCCESSLINK auf. Der übergebene Wert gibt
die Zeit in Sekunden an, die die Belegseite vor dem
Schließen angezeigt wird.
Empfohlener Wert: "0"
Optional
Aktiviert das Feld zur Eingabe des Karteninhabernamens in
der PP.
Werte: “yes” oder “no”
Optional
Email-Adresse des Händlers. Saferpay sendet nach
erfolgreicher Reservation eine Bestätigungs-Email an diese
Adresse.
Optional
Email-Adresse des Kunden. Saferpay sendet nach
erfolgreicher Reservation eine Bestätigungs-Email an diese
Adresse.
Optional
Sprachen-Code gemäß ISO 639-1. Gibt die Sprache in der
PP vor. Eine Liste der verfügbaren Sprachen-Codes findet
sich findet sich im Anschluss in Kapitel 6.1.1.
Ohne LANGID wird die Sprache des Kundenbrowsers in der
PP angezeigt. Wird diese nicht erkannt, ist Deutsch die
Standardsprache.
Optional
Aktiviert das Menü zur Auswahl der Sprache in der PP.
Werte: “yes” oder “no”
Seite 20
Parameter
PAYMENTMETHODS
Format
ns[..100]
DURATION
n[14]
PREAUTH
a[..3]
Beschreibung
Optional
Gibt die, in der PP angezeigten Zahlungsmittel vor.
Standardmäßig werden in der PP alle aktivierten
Zahlungsmittel eines Terminals angezeigt.
PAYMENTMETHODS werden eine oder mehrere durch
Komma getrennte Zahlungsmittel-IDs übergeben.
Zum Beispiel: "1,2,13" aktiviert MasterCard, Visa und ELV
Eine Liste aller Zahlungsmittel-IDs findet sich im Anschluss in
Kapitel 6.1.2.
Optional
Begrenzt die Gültigkeitsdauer des Zahlungslinks. Nach
Ablauf wird der Link ungültig.
Format: YYYYMMDDhhmmss
Optional
Wird benötigt, um eine Transaktion als Vorautorisierung zu
kennzeichnen.
Vorautorisierte Transaktionen können bis zu 30 Tage nach
der Autorisation per PayComplete gecaptured werden.
Werte: „yes“ oder „no“
Wird der Parameter nicht übergeben, dann wird eine finale
Autorisation durchgeführt.
*ACHTUNG! Vorautorisierung steht nur beim
Zahlungsmittel MasterCard, sowie für Verarbeiter der
SIX und ConCardis zur Verfügung!
WALLETS
CARDREFID
DELIVERY
APPEARANCE
CSSURL
Saferpay – Payment Page
Optional
Ermöglicht die sofortige Weiterleitung des Kunden zur LoginSeite seines Wallet, um dort das Zahlungsmittel für die
anschließend automatisch erfolgende Autorisation
auszuwählen. Wird gleichzeitig PAYMENTMETHODS
angegeben, wird dieses gleichrangig behandelt.
Wert: "MASTERPASS“
ans[..40] Optional***
Ersatzwert für Kreditkartennummer und Verfalldatum oder
Bankverbindung (nur deutsches ELV). Der Ersatzwert kann
von der E-Commerce-Applikation oder Saferpay (new)
vergeben werden. Verwendung nur mit dem Service
„Saferpay Secure Card Data“ möglich.
*
Werte: Eindeutiger Ersatzwert oder "new"
Optional
a[..3]
Gibt an, ob ein Adressformular angezeigt wird.
Werte: "yes" (default), "no"
Optional
an[..7]
Passt das Erscheinungsbild der PP dem anzeigenden
Display an.
Werte: "auto" (default), "mobile", "desktop", "embedded"
ans[..102 Optional, kann nur zusammen mit APPEARANCE "mobile"
oder "embedded" verwendet werden
4]
Enthält den voll qualifizierten https URL zur CSS-Datei für die
Anpassung der PP in der mobilen Ansicht, siehe Kapitel 7.
ns[..100]
Seite 21
Parameter
MANDATEID
Beschreibung
Optional
Mandatsreferenz zur Anzeige im Mandatstext. Wird nur für
deutsches ELV benötigt. Der Wert muss eindeutig sein.
Standardmäßig wird die Saferpay Transaktionskennung
verwendet.
Optional
RECURRING
a[..3]
Kennzeichnet die Anfrage als Initialzahlung für mögliche
Folgezahlungen. Bewirkt, dass bei ELV-Zahlungen ein
besonderer Mandatstext für wiederkehrende Zahlungen
angezeigt wird.
Werte: "yes" oder "no" (standard)
Anzeige der Allgemeinen Geschäftsbedingungen **:
Optional, notwendig zusammen mit TERMSURL
TERMSCHECKBOXACTIVE a[..8]
Zeigt eine Checkbox für die Akzeptanz der Händler AGB an.
Werte: "yes" oder "no" (standard)
TERMSURL
ans[..1024] Optional, notwendig zusammen mit
TERMSCHECKBOXACTIVE
Enthält den URL zu den Händler AGB.
Adressoptionen:
ADDRESS
Format
an[..35]
Optional
Gibt vor, ob ein Adressformular für Liefer-, Kunden- oder
Rechnungsadresse angezeigt wird.
Werte: "DELIVERY", "CUSTOMER", "BILLING"
Liegt die Adresse bereits vor, kann sie an das Adressformular übergeben werden. Sonderzeichen in
den Werten der folgenden Parameter müssen als HTML-Entity übergeben werden:
Optional
COMPANY
ans[..50]
Firmenname
Optional
GENDER
a[1]
Geschlecht
Werte: "f", "m", "c" (company)
Optional
FIRSTNAME
ans[..50]
Vorname
Optional
LASTNAME
ans[..50]
Nachname
Optional
STREET
ans[..50]
Straße
Optional
ZIP
an[..10]
Postleitzahl
Optional
CITY
ans[..50]
Ort
Optional
COUNTRY
a[2]
Länderkennung nach ISO 3166.
Optional
STATE
a[2]
Kennung eines Bundesstaats oder einer Provinz. Entspricht
den letzen zwei Zeichen nach ISO 3166-2.
Optional
EMAIL
ans[..50]
Email-Adresse
Optional
PHONE
ns[..20]
Telefonnummer
Saferpay – Payment Page
a[..8]
Seite 22
* Für die Verwendung von CARDREFID="new" muss bei Saferpay zunächst ein numerischer Startwert für den
Account hinterlegt werden. Kontaktieren Sie hierfür [email protected].
** Bei MasterPass Transaktionen wird der Hinweis zur Akzeptanz der AGB nicht angezeigt. Die Parameter für die
Allgemeinen Geschäftsbedingungen werden bei der Auswahl von MasterPass deshalb ignoriert.
***Nur verfügbar, wenn der Saferpay Secure Card Data Dienst beantragt und aktiviert wurde
Saferpay – Payment Page
Seite 23
6.1.1
Sprachen-Codes für LANGID
Code
de
en
fr
da
cs
es
hr
it
hu
nl
no
pl
pt
ru
ro
sk
sl
fi
sv
tr
el
ja
zh
6.1.2
Name
Deutsch
English
Français
Dansk
Čeština
Español
Hrvatski
Italiano
Magyar
Nederlands
Norsk
Polski
Português
Pусский
Română
Slovenský
slovenščina
Suomi
Svenska
Türkçe
Eλληνικές
日本語
中国語
Sprache
Deutsch
Englisch
Französisch
Dänisch
Tschechisch
Spanisch
Kroatisch
Italienisch
Ungarisch
Niederländisch
Norwegisch
Polnisch
Portugiesisch
Russisch
Rumänisch
Slowakisch
Slowenisch
Finnisch
Schwedisch
Türkisch
Griechisch
Japanisch
Chinesisch
Zahlungsmittel-IDs für PAYMENTMETHODS
Zahlungsmittel-ID
1
2
3
4
5
6
8
9
10
11
12
13
14
15
16
17
18
20
22
Saferpay – Payment Page
Zahlungsmittel
MasterCard
Visa, VPAY, Lasercard
American Express
Diners Club
JCB
Saferpay Testkarte
Bonus Card
PostFinance E-Finance
PostFinance Card
Maestro International
MyOne
Lastschrift
Rechnung
Sofortüberweisung
PayPal
giropay
iDEAL
Homebanking AT (eps)
ePrzelewy
Seite 24
6.1.3
PayConfirm Parameter der Autorisationsantwort
Mit der Autorisationsantwort wird die PayConfirm Nachricht übermittelt. Diese kann folgende
Parameter enthalten:
Parameter
MSGTYPE
VTVERIFY
Format
a[..30]
ans[..40]
KEYID
ID
TOKEN
ans[..40]
an[28]
ans[..40]
ACCOUNTID
ns[..15]
AMOUNT
n[..8]
CURRENCY
a[3]
DCCAMOUNT
n[..8]
DCCCURRENCY
a[3]
CARDREFID
ans[..40]
SCDRESULT
n[..4]
SCDDESCRIPTION
ans[..50]
Saferpay – Payment Page
Beschreibung
Enthält immer den Wert "PayConfirm".
Kann zusätzliche Informationen zur Transaktionsverarbeitung
enthalten.
Standardwert: "(obsolete)"
Kennung des Schlüssels mit dem die Signatur erzeugt wurde.
Eindeutige Saferpay Transaktionskennung.
Kann zusätzliche Informationen zur Transaktionsverarbeitung
enthalten.
Standardwert: "(unused)"
Die Saferpay Kontonummer des Händlers für diese
Transaktion.
Zum Beispiel "99867-94913159" für das Saferpay Testkonto.
Zahlungsbetrag in kleinster Währungseinheit, zum Beispiel
"1230" entspricht dem Betrag 12,30 in Euro.
Dreistelliger ISO 4217 Währungs-Code, zum Beispiel "CHF"
oder "EUR".
Optional (nur bei Zahlungen mit Dynamic Currency
Conversion)
Betrag der Kreditkartenwährung in kleinster Währungseinheit,
zum Beispiel "1230" entspricht dem Betrag 12,30 in Euro.
Optional (nur bei Zahlungen mit Dynamic Currency
Conversion)
Dreistelliger ISO 4217 Code der Kreditkartenwährung, zum
Beispiel "CHF" oder "EUR".
Optional*** (nur wenn der Parameter beim CreatePayInit
Aufruf mit übergeben wurde.)
Enthält den Ersatzwert für Kreditkartennummer und
Verfalldatum oder die Bankverbindung (nur deutsches ELV),
Optional*** (nur wenn der Parameter CARDREFID beim
CreatePayInit Aufruf angegeben wurde)
Enthält den Antwort-Code der Registrierung im SCD:
0 Registrierung erfolgreich.
7000 Allgemeiner Fehler (siehe DESCRIPTION).
7001 Anfrage konnte nicht vollständig verarbeitet werden.
7002 Kartentyp auf dem Terminal nicht verfügbar.
7003 Parameter mit ungültigem Inhalt oder Format.
7004 CARDREFID nicht gefunden (nur bei Autorisierung).
7005 Fehlender Parameter in der Anfrage.
7006 CARDREFID existiert bereits.
7007 Keine Berechtigung für SCD vorhanden.
Optional*** (nur wenn der Parameter CARDREFID beim
CreatePayInit Aufruf angegeben wurde)
Enthält eine kurze Mitteilung zum Erfolg/Miserfolg der
Anfrage.
Seite 25
Parameter
CARDTYPE
Format
n[5]
CARDMASK
ans[19]
CARDBRAND
ans[..50]
EXPIRYMONTH
n[2]
EXPIRYYEAR
n[2]
LIFETIME
n[..4]
PROVIDERID
PROVIDERNAME
PAYMENTMETHOD
ORDERID
n[..4]
ans[..40]
n[2]
an[..39]
IP
ns[..15]
IPCOUNTRY
a[2]
CCCOUNTRY
a[2]
Saferpay – Payment Page
Beschreibung
Optional*** (nur wenn der Parameter CARDREFID beim
CreatePayInit Aufruf angegeben wurde)
Enthält die ID des Kartentyps.
19265 American Express
19268 Diners Club
19269 MasterCard
19274 J.C.B.
19286 Visa
19306 Bonus Card
19309 myOne
21604 Maestro International
99072 Saferpay Testkarte
Optional*** (nur wenn der Parameter CARDREFID beim
CreatePayInit Aufruf angegeben wurde)
Enthält die maskierte Kartennummer.
Optional*** (nur wenn der Parameter CARDREFID beim
CreatePayInit Aufruf angegeben wurde)
Enthält den Namen des Kartentyps
Optional*** (nur wenn der Parameter CARDREFID beim
CreatePayInit Aufruf angegeben wurde)
Der Verfallmonat MM der Kreditkarte.
Optional*** (nur wenn der Parameter CARDREFID beim
CreatePayInit Aufruf angegeben wurde)
Das Verfalljahr YY der Kreditkarte.
Optional*** (nur wenn der Parameter CARDREFID beim
CreatePayInit Aufruf angegeben wurde)
Anzahl der Tage, die die registrierten Zahlungsmitteldaten in
der Datenbank gespeichert werden.
Enthält die Provider ID des Zahlungsmittelverarbeiters.
Enthält den Namen des Zahlungsmittelverarbeiters.
Enthält die Zahlungsmittel-ID
Optional
Die Referenznummer des Händlers, die beim CreatePayInit
übergeben wurde.
Optional*
Enthält die IP Adresse des Kunden.
Nur bei vorhandenem Saferpay Risk Management verfügbar
Optional*
Herkunftsland der IP-Adresse des Bezahlers nach ISO 3166.
Länder-Code (Bsp.: CH, DE, AT). Ist eine Zuordnung nicht
möglich lautet der Wert "IX".
Beispiel: "DE"
Optional*
Herkunftsland der Karte nach ISO 3166. Ist eine Zuordnung
nicht möglich, ist CCCOUNTRY nicht in der Antwort
enthalten.
Beispiel: "DE"
Seite 26
Parameter
MPI_LIABILITYSHIFT
Format
a[..3]
Beschreibung
Optional**
Gibt an, ob technisch formal eine Haftungsumkehr besteht.
Werte: "yes" oder "no"
Achtung! Nicht alle Verarbeiter können die
Haftungsumkehr während der Autorisation überprüfen
und diese gegebenenfalls schon mit der
Autorisationsantwort ausschließen. Daher ist es
möglich, dass vom Verarbeiter für eine Transaktion aus
vertraglichen Gründen keine Haftungsumkehr gewährt
wird, auch wenn MPI_LIABILITYSHIFT und ECI das
Gegenteil aussagen. Fragen Sie bei Bedarf direkt bei
Ihrem Verarbeiter nach, ob dieser dazu in der Lage ist.
ECI
n[1]
Optional**
Electronic Commerce Indicator
Kennzeichnet 3-D Secure Transaktionen („Verified by Visa“,
„MasterCard SecureCode“):
0 = Internet Zahlung ohne Haftungsumkehr.
1 = 3-D Secure Zahlung mit Authentifizierung.
XID
ans[28]
CAVV
ans[28]
IBAN
an[22]
MANDATEID
ans[..35]
CREDITORID
ans[..35]
Saferpay – Payment Page
2 = 3-D Secure Zahlung, Karte nimmt am Verfahren nicht teil.
Optional**
Diese Base64-Zeichenfolge wird vom MPI vergeben und
referenziert auf den Vorgang im 3-D Secure Protokoll.
Optional**
Cardholder Authentication Verification Value
Bei einer MasterCard ist hier der UCAF-Wert enthalten, bei
einer American Express der AEVV-Wert. Saferpay benutzt
unabhängig vom Kreditkartentyp den Wert CAVV.
Optional
Enthält die IBAN der Anfrage.
Zum Beispiel "DE77970000010123456789"
Optional
Enthält die Mandatsreferenz einer ELV-Zahlung.
Optional
Enthält die Gläubiger-ID, die dem Kunden auf dem Mandat
eine ELV-Zahlung angezeigt wurde.
Seite 27
* Nur verfügbar bei vorhandenem Saferpay Risk Management
** 3-D Secure Parameter, Voraussetzung ist die Teilnahme am 3-D Secure Verfahren („Verified by Visa“,
„MasterCard SecureCode“, „American Express SafeKey“)
***Nur verfügbar, wenn der Saferpay Secure Card Data Dienst beantragt und aktiviert wurde
WICHTIG! Zum Schutz vor Manipulation wird dringend empfohlen, neben der Signatur auch die
mit der PayConfirm Nachricht übermittelten Parameter ACCOUNTID, ORDERID, AMOUNT und
CURRENCY zu überprüfen. Diese müssen dieselben Werte enthalten, wie sie ursprünglich an die
PayInit Nachricht übergeben wurden!
6.1.4
Adressparameter bei der Verwendung von Masterpass
Wenn sie das Masterpass Wallet benutzen, dann werden über die NOTIFYURL zusammen mit den
restlichen Daten die Adressdaten des Kunden übergeben.
Parameter
GENDER
Format
a[1]
FIRSTNAME
LASTNAME
DATEOFBIRTH
STREET
ZIP
CITY
COUNTRY
STATE
ans[..50]
ans[..50]
n[8]
ans[..50]
an[..10]
ans[..50]
a[2]
a[2]
EMAIL
PHONE
ADDRESSADDITION
DELIVERY_GENDER
DELIVERY_FIRSTNAME
DELIVERY_LASTNAME
DELIVERY_STREET
DELIVERY_ADDRESSAD
DITION
DELIVERY_ZIP
DELIVERY_CITY
DELIVERY_COUNTRY
DELIVERY_PHONE
ans[..50]
ns[..20]
an[..50]
a[1]
ans[..50]
ans[..50]
ans[..50]
an[..50]
Beschreibung
Geschlecht
Werte: "f", "m"
Vorname
Nachname
Geburtsdatum des Karteninhabers
Straße
Postleitzahl
Ort
Länderkennung nach ISO 3166.
Kennung eines Bundesstaats oder einer Provinz. Entspricht
den letzen zwei Zeichen nach ISO 3166-2.
Email-Adresse
Telefonnummer
Zusätzliche Adressparameter
Geschlecht Lieferadresse
Vorname Lieferadresse
Nachname Lieferadresse
Straße Lieferadresse
Zusatz zur Lieferadresse
an[..10]
ans[..50]
a[2]
ns[..50]
Postleitzahl Lieferadresse
Ort Lieferadresse
Länderkennung Lieferadresse nach ISO 3166
Telefonnummer Lieferadresse
Saferpay – Payment Page
Seite 28
6.2
VerifyPayConfirm Anfrage
Die VerifyPayConfirm Anfrage zur Überprüfung der Signatur der Autorisationsantwort enthält folgende
Parameter:
Parameter
DATA
Format
ans[..512]
SIGNATURE
ACCOUNTID
an[28]
ns[..15]
Saferpay – Payment Page
Beschreibung
Unveränderte XML-Nachricht, die die mit der PayConfirm
Nachricht erhalten wurde.
Enthält die Signatur für DATA
Optional bei Verwendung einer LIB
Die Saferpay Kontonummer des Händlers für diese
Transaktion.
Zum Beispiel "99867-94913159" für das Saferpay Testkonto.
Seite 29
6.3
PayComplete Anfrage
Folgende Parameter stehen für eine CreatePayComplete Message zur Verfügung. Wenn nicht anders
erwähnt ist die Verwendung des jeweiligen Parameters Pflicht:
Parameter
ID
Format
an[28]
AMOUNT
n [..8]
ACCOUNTID
ns[..15]
ACTION
Beschreibung
Saferpay Transaktionskennung der PayConfirm Nachricht.
Pflichtparameter, es sei denn ACTION=CloseBatch.
Zu verbuchender Zahlungsbetrag in kleinster
Währungseinheit, zum Beispiel "1230" entspricht dem Betrag
12,30 in Euro.
Die Saferpay Kontonummer des Händlers für diese
Transaktion.
Zum Beispiel "99867-94913159" für das Saferpay Testkonto.
Optional
Gibt eine erweiterte Verarbeitungsoption an.
Mögliche Werte sind: "Settlement", "CloseBatch", "Cancel"
Settlement
Weist das Saferpay System an den Status der Transaktion
von Reservation in Buchung zu ändern. Damit wird die
Transaktion beim nächsten Tagesabschluss zur Auszahlung
an den Verarbeiter weitergeleitet. Mit dem Parameter
AMOUNT kann bei der Verbuchung ein geringerer Betrag
angegeben werden, als reserviert wurde. Die Differenz wird
hierbei automatisch verworfen. Maximal kann der autorisierte
Betrag verbucht werden.
CloseBatch
Weist Saferpay an den Tagesabschluss für die angegebene
ACCOUNTID durchzuführen. Wird der Parameter ID
übergeben, schlägt der Aufruf fehl.
Cancel
Mit diesem Aufruf kann eine Reservation verworfen oder eine
Buchung storniert werden, solange sie nicht mit dem
Tagesabschluss verarbeitet wurde.
Handelt es sich um eine Reservation wird die Transaktion
nach dem Verwerfen im Saferpay Backoffice nur noch 6 Tage
unter „verworfene Reservationen“ angezeigt. Danach wird
Sie aus der der Datenbank gelöscht. Stornierte Buchungen
bleiben dagegen, als storniert gekennzeichnet, im
Backoffice sichtbar.
Ohne Angabe von ACTION wird standardmäßig
ACTION=“Settlement“ gesetzt.
Saferpay – Payment Page
Seite 30
6.4
PayComplete Antwort
Die Antwort auf die Verbuchungsanfrage enthält die folgenden Parameter:
Parameter
MSGTYPE
Format
a[..30]
Beschreibung
Enthält immer den Wert „PayConfirm“.
ID
RESULT
an[28]
n[..4]
MESSAGE
ans[..30]
Saferpay Transaktionskennung
Enthält das Ergebnis der PayComplete Anfrage.
0 = Anfrage erfolgreich ausgeführt.
≠0 = Anfrage nicht erfolgreich ausgeführt.
Enthält eine Antwort zur Verbuchungsanfrage in Textform.
AUTHMESSAGE
ans[..30]
Saferpay – Payment Page
Kann eine Antwort zur Verbuchungsanfrage in Textform
enthalten.
Seite 31
7
Anpassung mit Cascading Style Sheets
Das Erscheinungsbild der Payment Page kann in der „mobilen“ Ansicht mithilfe einer CSS-Datei
vollständig verändert werden. Die CSS-Datei hat keinen Einfluss auf die Gestaltung der Payment
Page Desktop-Ansicht. Diese kann über den Parameter VTCONFIG und eine entsprechende Vorlage
in der Rubrik „Payment Page Konfiguration“ im Saferpay Backoffice angepasst werden.
7.1
Styling Varianten
Es stehen zwei Varianten zur Verfügung die Payment Page mit einem Stylesheet anzupassen.
7.1.1
Saferpay Mobile Payment Page anpassen
Bei der ersten Variante wird der PayInit-Parameter APPEARANCE=„mobile“ verwendet und der Pfad
zur CSS-Datei dem PayInit-Parameter CSSURL übergeben.
Beispiel:
APPEARANCE=”mobile”
CSSURL=”https://link.to.mydesign.css”
Anschließend wird die Mobile Payment Page mit dem Standard-Layout von Saferpay geladen und die
von Saferpay vorgegebenen Designs werden mit der CSS-Datei überschrieben.
7.1.2
Komplett neues Design für die Payment Page
Alternativ zur ersten Variante kann der PayInit-Parameter APPEARANCE=„embedded“ zusammen
mit dem PayInit-Parameter CSSURL verwendet werden.
Beispiel:
APPEARANCE=“embedded”
CSSURL=”https://link.to.mydesign.css”
Die Mobile Payment Page präsentiert sich anschließend in der Default-HTML-Ansicht des Browsers
und kann mithilfe der CSS-Datei von Grund auf angepasst werden. Dabei werden die HTML-Elemente
normalisiert, sodass sie einheitlich und im Einklang mit modernen Standards anzeigt werden.
Saferpay – Payment Page
Seite 32
7.2
Größe des Inline Frame
Breite und Höhe des iFrame werden über die HTML5-Funktion postMessage an die Shop-Webseite
übergeben. Die Angaben sind in Pixel.
JSON-Beispiel:
{
"message":"css",
"height":450,
"width":650
}
Beispiel zum Empfangen der Message (jQuery):
$(window).bind("message", function (e) {
$("#Iframe").css("height", e.originalEvent.data.height + "px");
});
Da nicht jede Webseite ihre Größeninformationen übermittelt, empfiehlt es sich eine Mindesthöhe und
-Breite auf Shopseite zu definieren.
7.3
Verwendung des CSS
Die folgenden Informationen sollten bei der Anpassung der Payment Page mithilfe von CSS beachtet
werden.
7.3.1
Element Name
Der Element Name darf gemäß der CSS Spezifikation verwendet.
Beispiel:
h1{
text-decoration: underline;
}
7.3.2
Class Name
Es sollten die von Saferpay definierten CSS-Klassennamen aus Kapitel 7.5 verwendet werden.
Beispiel:
.form-group
{
font-family: "Times New Roman", serif;
font-style: italic;
}
7.3.3
Element ID
Das Element ID sollte nicht verwendet werden, da sich die IDs unangekündigt ändern können.
7.3.4
Element Attribute
Element Attribute sollten nicht verwendet werden, da sich die Attribute (name, value, data-*, etc.)
unangekündigt ändern können.
Saferpay – Payment Page
Seite 33
7.3.5
CSS Selektoren
Grundsätzlich werden alle CSS Selektoren für CSS1, CSS2 und CSS3 unterstützt.
7.4
Wichtige Informationen für die Verwendung von CSS

Das Stylesheet, auf das mit dem PayInit-Parameter CSSURL verwiesen wird, muss auf einem
Webserver abgelegt werden, der https unterstützt.

Innerhalb des Stylesheets muss darauf geachtet werden, dass Grafiken über „https://“ geladen
werden. Ansonsten wird im Browser eine Warnung angezeigt. Zum Beispiel: „[…] this page
includes other resources which are not secure. […].

Blockiert der Browser des Shoppers „third party cookies“, zeigt die Saferpay Payment Page
die Fehlerseite „Cookies are disabled“ an.

Es empfiehlt sich während des Ladens des iFames eine Fortschrittsanzeige einzublenden.

Es wird empfohlen beim Rücksprung in den Shop auf die Success-, Abort- oder Fail-Seite aus
dem Frame auszubrechen.
7.5
CSS- Klassennamen
7.5.1
Html
Header
Footer
Allgemeine Klassen

saferpay-paymentpage

img-logo



btn-back
btn-abort
btn-next




navitem
navitem-back
navitem-abort
navitem-next
Saferpay – Payment Page
Seite 34
Anzeige-Boxen
 box-content
 box-shop
 box-information
 box-success
 box-error
 box-information-required-fields

img-shop



text-information
text-success
text-error



icon-information
icon-success
icon-error



form-group
form-label
form-input


form-col-small
form-col-large




input-required
input-large
input-medium
input-small

icon-required
Formular
Formular Validierung
 validation-summary-errors
 label-validation-error
 input-validation-error
Basis Klassen





box
btn
img
icon
text
Saferpay – Payment Page
Seite 35
7.5.2

























7.5.3

Spezifisch für Payment Selection
page-paymentselection
paymentgroup
o paymentgroup-creditcard
o paymentgroup-onlinebanking
o paymentgroup-card
o paymentgroup-onlinepaymentservice
o paymentgroup-directdebit
o paymentgroup-invoice
o paymentgroup-wallet
btn-select
btn-creditcard-visa
btn-creditcard-mastercard
btn-creditcard-maestro
btn-creditcard-amex
btn-creditcard-jcb
btn-creditcard-dinersclub
btn-creditcard-saferpay
btn-onlinebanking-sofort
btn-onlinebanking-giropay
btn-onlinebanking-ideal
btn-onlinebanking-eps
btn-onlinebanking-post
btn-onlinebanking- eprzelewy
btn-card-myone
btn-card-bonuscard
btn-card-postcard
btn-card-lasercard
btn-directdebit-zvt
btn-directdebit-intercardelv
btn-directdebit-billpay
btn-invoice-billpay
btn-wallet-masterpass
Spezifisch für Kartenformular


page-card
o page-creditcard-visa
o page-creditcard-mastercard
o page-creditcard-maestro
o page-creditcard-amex
o page-creditcard-jcb
o page-creditcard-dinersclub
o page-creditcard-saferpay
o page-card-myone
o page-card-bonuscard
o page-card-postcard
o page-card-lasercard
text-hint
icon-hint
7.5.4
Spezifisch für Lastschriftformular

page-directdebit
o page-directdebit-billpay
o page-directdebit-intercardelv
o page-directdebit-zvt
Saferpay – Payment Page
Seite 36
7.5.5

7.5.6

7.5.7



7.5.8

7.5.9

Spezifisch für Online Banking
page-onlinebanking
o page-onlinebanking-ideal
o page-onlinebanking-giropay
Spezifisch für Rechnungsformular
page-invoice
o page-invoice-billpay
Spezifisch für Adressformular (inkl. Billpay Adressformular)
page-address
form-col-small
form-col-large
Spezifisch für AGB
page-termsandconditions
Spezifisch für Redirect Seiten (incl. 3D-Secure)
page-redirect
7.5.10 Spezifisch für Fehlerseiten

page-error
7.5.11 Spezifisch für Confirmation Page

7.6
page-confirmation
CSS- Beispiele
Anbei finden sie beispiel CSS, die sie verwenden dürfen. Beachten sie hierbei allerdings, dass es sich
nur um Beispiele handelt, die für den Saferpay Testaccount entworfen wurden. SIX Payment Services
übernimmt keine Garantie für den Livebetrieb. Sie sind jedoch erlaubt die Beispiele als Basis für ihre
eigenen Entwürfe zu nutzen.

Mobile:
https://www.six-payment-services.com/dam/saferpay/testaccount/css/mobile1.css

Embedded:
https://www.six-payment-services.com/dam/saferpay/testaccount/css/embedded1.css
https://www.six-payment-services.com/dam/saferpay/testaccount/css/embedded2.css
Saferpay – Payment Page
Seite 37
8
Saferpay Testumgebung
Für die Integrationsphase und um Saferpay testen zu können, bieten wir Ihnen unsere Externe Test
Umgebung (ETU) an.
Hier können Sie, abgegrenzt von der Produktion, Saferpay mit Simulatoren für alle gängigen
Zahlungsmittel auf ihrem eigenen Testkonto testen.
Alle Informationen zu unserer Testumgebung finden sie unter der folgenden Adresse:
https://www.six-payment-services.com/de/site/saferpay-support/testaccount.html
Saferpay – Payment Page
Seite 38
9
9.1
Beispiele
Wichtiger Hinweis
Bitte beachten Sie, dass eigene Werte HTML-kodiert werden sollten, entweder als HTMLEntity oder Unicode. So stellen Sie sicher, dass alle Sonderzeichen korrekt an Saferpay
übergeben werden.
9.2
C# mit der .NET LIB
Zahlungslink mit CreatePayInit erzeugen:
MessageFactory mf = new MessageFactory();
mf.Open(""); // Saferpay configuration path, e.g. "c:\\Programme\\Saferpay\\Client"
mo_payinit = mf.CreatePayInit();
string
string
string
string
string
string
string
string
string
string
m_accountid = "99867-94913159";
m_amount = "2095";
m_currency = "EUR";
m_description = "Test Einkauf";
m_address = "no";
m_orderid = "0815-4711";
m_backlink = "http://www.myshop.com/back.aspx";
m_faillink = "http://www.myshop.com/Fail.aspx";
m_successlink = "http://www.myshop.com/Success.aspx";
m_notifyurl = "http://www.myshop.com/notify.aspx";
mo_payinit.SetAttribute("ACCOUNTID", m_accountid);
mo_payinit.SetAttribute("AMOUNT", m_amount);
mo_payinit.SetAttribute("CURRENCY", m_currency);
mo_payinit.SetAttribute("DELIVERY", m_address);
mo_payinit.SetAttribute("ORDERID", Server.HtmlEncode(m_orderid));
mo_payinit.SetAttribute("DESCRIPTION", Server.HtmlEncode(m_description));
mo_payinit.SetAttribute("SUCCESSLINK", m_successlink);
mo_payinit.SetAttribute("BACKLINK", m_backlink);
mo_payinit.SetAttribute("FAILLINK", m_faillink);
mo_payinit.SetAttribute("NOTIFYURL", m_notifyurl);
string paymenturl = mo_payinit.GetPostUrl();
string data = mo_payinit.GetPostData();
string signature = mo_payinit.GetPostSignature();
Zahlungslink aus einem Formular aufrufen:
<html>
<head><title>Zahlung mit der Saferpay Payment Page</title></head>
<body>
<h2> Beispiel - Saferpay Payment Page per POST aufrufen</h2>
<form action="<%=paymenturl %>"method="POST">
<input type="hidden" name="DATA" value="<%=data %>">
<input type="hidden" name="SIGNATURE" value="<%=signature %>" >
<input type="submit" value="Bezahlen">
</form>
</body>
</html>
Saferpay – Payment Page
Seite 39
Prüfung der PayConfirm Nachricht:
string data = Request.QueryString.Get("DATA");
string signature = Request.QueryString.Get("SIGNATURE");
MessageFactory mf = new MessageFactory();
mf.Open("");
mo_payconfirm = mf.VerifyPayConfirm(data, signature);
string id = mo_payconfirm.GetAttribute(ID);
Verbuchung der Zahlung mit CreatePayComplete:
MessageFactory mf = new MessageFactory();
mf.Open("");
MessageObject mo_paycomplete = mf.CreateRequest("PayComplete");
mo_paycomplete.SetAttribute("ID", id);
mo_paycomplete.SetAttribute("ACCOUNTID", m_accountid);
MessageObject captureresponse = mo_paycomplete.Capture();
PayComplete-Antwort:
int result = Convert.ToInt32(response.GetAttribute("RESULT"));
if (result == 0)
{
String id = captureresponse.GetAttribute("ID");
String msg = captureresponse.GetAttribute("MESSAGE");
Console.WriteLine("Verbuchung erfolgreich!");
}
else
{
Console.WriteLine("Verbuchung fehlgeschlagen!");
return;
}
Saferpay – Payment Page
Seite 40
9.3
Java mit der Java LIB
Zahlungslink mit CreatePayInit erzeugen:
import Saferpay.*
import org.apache.commons.lang.*
MessageFactory mf = new MessageFactory();
mf.Open(""); // Saferpay configuration path, e.g. "c:\\Programme\\Saferpay\\Client"
MessageObject mo_payinit = mf.CreatePayInit();
String
String
String
String
string
String
String
String
String
String
m_accountid = "99867-94913159";
m_amount = "2095";
m_currency = "EUR";
m_description = "Test Einkauf";
m_address = "no";
m_orderid = "0815-4711";
m_backlink = "http://www.myshop.com/back.jsp";
m_faillink = "http://www.myshop.com/Fail.jsp";
m_successlink = "http://www.myshop.com/Success.jsp";
m_notifyurl = "http://www.myshop.com/notify.jsp";
mo_payinit.SetAttribute("ACCOUNTID", m_accountid);
mo_payinit.SetAttribute("AMOUNT", m_amount);
mo_payinit.SetAttribute("CURRENCY", m_currency);
mo_payinit.SetAttribute("DELIVERY", m_address);
mo_payinit.SetAttribute("ORDERID", StringEscapeUtils.escapeHtml(m_orderid));
mo_payinit.SetAttribute("DESCRIPTION", StringEscapeUtils.escapeHtml(m_description));
mo_payinit.SetAttribute("SUCCESSLINK", m_successlink);
mo_payinit.SetAttribute("BACKLINK", m_backlink);
mo_payinit.SetAttribute("FAILLINK", m_faillink);
mo_payinit.SetAttribute("NOTIFYURL", m_notifyurl);
String paymenturl = mo_payinit.GetPostUrl();
String data = mo_payinit.GetPostData();
String signature = mo_payinit.GetPostSignature();
Zahlungslink aus einem Formular aufrufen:
<html>
<head><title>Zahlung mit der Saferpay Payment Page</title></head>
<body>
<h2> Beispiel - Saferpay Payment Page per POST aufrufen</h2>
<form action="<%=paymenturl %>"method="POST">
<input type="hidden" name="DATA" value="<%=data %>">
<input type="hidden" name="SIGNATURE" value="<%=signature %>" >
<input type="submit" value="Bezahlen">
</form>
</body>
</html>
Prüfung der PayConfirm Nachricht:
import Saferpay.*
String data = request.getParameter("DATA");
String signature = request.getParameter("SIGNATURE");
MessageFactory mf = new MessageFactory();
mf.Open("");
MessageObject mo_payconfirm = mf.VerifyPayConfirm(data, signature);
String id = mo_payconfirm.GetAttribute(ID);
Saferpay – Payment Page
Seite 41
Verbuchung der Zahlung mit CreatePayComplete:
MessageFactory mf = new MessageFactory();
mf.Open("");
MessageObject mo_paycomplete = mf.CreateRequest("PayComplete");
mo_paycomplete.SetAttribute("ID", id);
mo_paycomplete.SetAttribute("ACCOUNTID", m_accountid);
MessageObject captureresponse = mo_paycomplete.Capture();
PayComplete-Antwort:
int result = response.GetAttribute("RESULT");
if (result == 0)
{
String id = captureresponse.GetAttribute("ID");
String msg = captureresponseresponse.GetAttribute("MESSAGE");
System.out.println("Verbuchung erfolgreich!");
}
else
{
System.out.println("Verbuchung fehlgeschlagen!");
return;
}
Saferpay – Payment Page
Seite 42
9.4
Kommandozeilenaufrufe mit der Java LIB
Zahlungslink mit CreatePayInit erzeugen:
java -jar Saferpay.jar -payinit -p C:\Programme\Saferpay\Client -a AMOUNT 1930 -a CURRENCY EUR
-a DELIVERY no -a ACCOUNTID 99867-94913159 -a DESCRIPTION "Test Einkauf" -a ORDERID 0815-4711
-a FAILLINK "http://www.testshop.de/fail.php" -a SUCCESSLINK
"http://www.testshop.de/success.php" -a BACKLINK "http://www.testshop.de/back.php" -a
NOTIFYURL "http://www.testshop.de/log.php"
Erzeugter Zahlungslink:
https://www.saferpay.com/vt2/Pay.aspx?DATA=%3CIDP+ALLOWCOLLECT%3D%22no%22+EXPIRATION%3D%222011
0325+16%3A06%3A53%22+DESCRIPTION%3D%22Test+Einkauf%22+BACKLINK%3D%22http%3A%2F%2Fwww.testshop.
de%2Fback.php%22+AMOUNT%3D%221930%22+DELIVERY%3D%22no%22+ACCOUNTID%3D%229986794913159%22+SUCCESSLINK%3D%22http%3A%2F%2Fwww.testshop.de%2Fsuccess.php%22+CURRENCY%3D%22EUR%2
2+ORDERID%3D%2208154711%22+FAILLINK%3D%22http%3A%2F%2Fwww.testshop.de%2Ffail.php%22+MSGTYPE%3D%22PayInit%22+KEYID
%3D%220-99867959af13b7be94dd99cbd20ac7caa5888%22+NOTIFYURL%3D%22http%3A%2F%2Fwww.testshop.de%2Flog.php%22+T
OKEN%3D%228ae94d50562c01e0d24085728e033992%22%2F%3E&SIGNATURE=38FE7F5483578D24EDC3F9A8D00CC1B8
7733B5CE1F984F82E2ED084C52B01B0E783C8007F022610D93E26E2AA254C02245A09A0F25A0C5A4961B9FDFB9FF8F
50
Prüfung der PayConfirm Nachricht:
Rücksprung nach erfolgreicher Zahlung in den Shop zum SUCCESSLINK:
http://www.testshop.de/success.php?DATA=%3CIDP+MSGTYPE%3d%22PayConfirm%22+TOKEN%3d%22%28unused
%29%22+VTVERIFY%3d%22%28obsolete%29%22+KEYID%3d%2210%22+ID%3d%22brlb01AS3AphUA4fnAr0bQUS7thA%22+ACCOUNTID%3d%229986794913159%22+PROVIDERID%3d%2290%22+PROVIDERNAME%3d%22Saferpay+Test+Card%22+ORDERID%3d%2208154711%22+AMOUNT%3d%221930%22+CURRENCY%3d%22EUR%22+IP%3d%22193.247.180.193%22+IPCOUNTRY%3d%22CH%
22+CCCOUNTRY%3d%22XX%22+MPI_LIABILITYSHIFT%3d%22yes%22+MPI_XID%3d%22NEpiXQIKWz8xBBszF38FVUUwTA
o%3d%22+ECI%3d%222%22+XID%3d%22NEpiXQIKWz8xBBszF38FVUUwTAo%3d%22+%2f%3E&SIGNATURE=b43f0ac94ce2
60fa520010558dc552ef1c67a839538bd2346d6e593fa74b3e2db22e6de0f494a312bf3436af662219144dda2bf472
a5447da205009668a791fa
Empfangenes DATA:
<IDP MSGTYPE="PayConfirm" TOKEN="(unused)" VTVERIFY="(obsolete)" KEYID="1-0"
ID="brlb01AS3AphUA4fnAr0bQUS7thA" ACCOUNTID="99867-94913159" PROVIDERID="90"
PROVIDERNAME="Saferpay Test Card" ORDERID="0815-4711" AMOUNT="1930" CURRENCY="EUR"
IP="193.247.180.193" IPCOUNTRY="CH" CCCOUNTRY="XX" MPI_LIABILITYSHIFT="yes"
MPI_XID="NEpiXQIKWz8xBBszF38FVUUwTAo=" ECI="2" XID="NEpiXQIKWz8xBBszF38FVUUwTAo=" />
Empfangene SIGNATURE:
b43f0ac94ce260fa520010558dc552ef1c67a839538bd2346d6e593fa74b3e2db22e6de0f494a312bf3436af662219
144dda2bf472a5447da205009668a791fa
Durchführung des VerifyPayConfirm:
java -jar Saferpay.jar -payconfirm -p C:\Programme\Saferpay\Client -d
%3CIDP+MSGTYPE%3d%22PayConfirm%22+TOKEN%3d%22%28unused%29%22+VTVERIFY%3d%22%28obsolete%29%22+K
EYID%3d%221-0%22+ID%3d%22brlb01AS3AphUA4fnAr0bQUS7thA%22+ACCOUNTID%3d%229986794913159%22+PROVIDERID%3d%2290%22+PROVIDERNAME%3d%22Saferpay+Test+Card%22+ORDERID%3d%2208154711%22+AMOUNT%3d%221930%22+CURRENCY%3d%22EUR%22+IP%3d%22193.247.180.193%22+IPCOUNTRY%3d%22CH%
22+CCCOUNTRY%3d%22XX%22+MPI_LIABILITYSHIFT%3d%22yes%22+MPI_XID%3d%22NEpiXQIKWz8xBBszF38FVUUwTA
o%3d%22+ECI%3d%222%22+XID%3d%22NEpiXQIKWz8xBBszF38FVUUwTAo%3d%22+%2f%3E -s
b43f0ac94ce260fa520010558dc552ef1c67a839538bd2346d6e593fa74b3e2db22e6de0f494a312bf3436af662219
144dda2bf472a5447da205009668a791fa
Saferpay – Payment Page
Seite 43
Verbuchung der Zahlung mit CreatePayComplete:
java -jar Saferpay.jar -capture -p C:\Programme\Saferpay\Client –i
brlb01AS3AphUA4fnAr0bQUS7thA –a ACCOUNTID 99867-94913159 –of capt.txt
Saferpay – Payment Page
Seite 44
9.5
https Interface
Zahlungslink mit CreatePayInit erzeugen:
https://www.saferpay.com/hosting/CreatePayInit.asp?ACCOUNTID=99867-94913159&ORDERID=123456789001&AMOUNT=1000&CURRENCY=EUR&DESCRIPTION=Testkauf&SUCCESSLINK="http://www.myshop.com/Success.a
spx"&FAILLINK="http://www.myshop.com/Fail.aspx"&BACKLINK="http://www.myshop.com/back.aspx"&NOT
IFYURL="http://www.myshop.com/notify.aspx"
Antwort liefert den Zahlungs-URL:
https://www.saferpay.com/vt2/Pay.aspx?DATA=%3cIDP+MSGTYPE%3d%22PayInit%22+MSG_GUID%3d%22939a4c
930b5c482588d91f54f74ac110%22+CLIENTVERSION%3d%222.0%22+KEYID%3d%220-99867-7d5a273c0f5043e2881
1e764d6433086%22+TOKEN%3d%22bbf6577cd8e74d65a27f084c9cfe2592%22+ALLOWCOLLECT%3d%22no%22+DELIVE
RY%3d%22no%22+EXPIRATION%3d%2220110625+12%3a01%3a56%22+ACCOUNTID%3d%2299867-94913159%22+AMOUNT
%3d%221000%22+CURRENCY%3d%22EUR%22+DESCRIPTION%3d%22Testkauf%22+SUCCESSLINK%3d%22http%3a%2f%2f
www.myshop.com%2fSuccess.aspx%22+BACKLINK%3d%22http%3a%2f%2fwww.myshop.com%2fback.aspx%22+FAIL
LINK%3d%22http%3a%2f%2fwww.myshop.com%2fFail.aspx%22+ORDERID%3d%22123456789-001%22+CCNAME%3d%2
2yes%22+NOTIFYURL%3d%22http%3a%2f%2fwww.myshop.com%2fnotify.aspx%22+%2f%3e&SIGNATURE=428b356c8
7f7fdcf44417f670197c4a6395385e623e224653610b94db8acc1ead509b7b5e6dfc465dcf987b3cf4b284fc799ee9
3ff9cb151c3bc9981e8320232
Überprüfung der PayConfirm-Nachricht:
Rücksprung nach erfolgreicher Autorisation in den Shop zum SUCCESSLINK:
http://www.myshop.com/Success.aspx?DATA=%3CIDP+MSGTYPE%3d%22PayConfirm%22+TOKEN%3d%22%28unused
%29%22+VTVERIFY%3d%22%28obsolete%29%22+KEYID%3d%221-0%22+ID%3d%22A668MSAprOj4tAzv7G9lAQUfUr3A%
22+ACCOUNTID%3d%2299867-94913159%22+PROVIDERID%3d%2290%22+PROVIDERNAME%3d%22Saferpay+Test+Card
%22+ORDERID%3d%22123456789-001%22+AMOUNT%3d%221000%22+CURRENCY%3d%22EUR%22+IP%3d%22193.247.180
.193%22+IPCOUNTRY%3d%22CH%22+CCCOUNTRY%3d%22XX%22+MPI_LIABILITYSHIFT%3d%22yes%22+MPI_TX_CAVV%3
d%22AAABBIIFmAAAAAAAAAAAAAAAAAA%3d%22+MPI_XID%3d%22CxMTYwhoUXtCBAEndBULcRIQaAY%3d%22+ECI%3d%22
1%22+CAVV%3d%22AAABBIIFmAAAAAAAAAAAAAAAAAA%3d%22+XID%3d%22CxMTYwhoUXtCBAEndBULcRIQaAY%3d%22+%2
f%3E&SIGNATURE=7b2bb163f4ef86d969d992b4e2d61ad48d3b9022e0ec68177e35fe53184e6b3399730d1a3641d2a
984ce38699daad72ab006d5d6a9565c5ae1cff8bdc8a1eb63
Empfangenes DATA:
<IDP MSGTYPE="PayConfirm" TOKEN="(unused)" VTVERIFY="(obsolete)" KEYID="1-0"
ID="A668MSAprOj4tAzv7G9lAQUfUr3A" ACCOUNTID="99867-94913159" PROVIDERID="90"
PROVIDERNAME="Saferpay Test Card" ORDERID="123456789-001" AMOUNT="1000" CURRENCY="EUR"
IP="193.247.180.193" IPCOUNTRY="CH" CCCOUNTRY="XX" MPI_LIABILITYSHIFT="yes"
MPI_TX_CAVV="AAABBIIFmAAAAAAAAAAAAAAAAAA=" MPI_XID="CxMTYwhoUXtCBAEndBULcRIQaAY=" ECI="1"
CAVV="AAABBIIFmAAAAAAAAAAAAAAAAAA=" XID="CxMTYwhoUXtCBAEndBULcRIQaAY=" />
Empfangene SIGNATURE:
7b2bb163f4ef86d969d992b4e2d61ad48d3b9022e0ec68177e35fe53184e6b3399730d1a3641d2a984ce38699daad7
2ab006d5d6a9565c5ae1cff8bdc8a1eb63
Saferpay – Payment Page
Seite 45
https Aufruf VerifyPayConfirm:
https://www.saferpay.com/hosting/VerifyPayConfirm.asp?spPassword=XAjc3Kna&ACCOUNTID=99867-9491
3159&DATA=%3CIDP+MSGTYPE%3d%22PayConfirm%22+TOKEN%3d%22%28unused%29%22+VTVERIFY%3d%22%28obsole
te%29%22+KEYID%3d%221-0%22+ID%3d%22A668MSAprOj4tAzv7G9lAQUfUr3A%22+ACCOUNTID%3d%2299867-949131
59%22+PROVIDERID%3d%2290%22+PROVIDERNAME%3d%22Saferpay+Test+Card%22+ORDERID%3d%22123456789-001
%22+AMOUNT%3d%221000%22+CURRENCY%3d%22EUR%22+IP%3d%22193.247.180.193%22+IPCOUNTRY%3d%22CH%22+C
CCOUNTRY%3d%22XX%22+MPI_LIABILITYSHIFT%3d%22yes%22+MPI_TX_CAVV%3d%22AAABBIIFmAAAAAAAAAAAAAAAAA
A%3d%22+MPI_XID%3d%22CxMTYwhoUXtCBAEndBULcRIQaAY%3d%22+ECI%3d%221%22+CAVV%3d%22AAABBIIFmAAAAAA
AAAAAAAAAAAA%3d%22+XID%3d%22CxMTYwhoUXtCBAEndBULcRIQaAY%3d%22+%2f%3E&SIGNATURE=7b2bb163f4ef86d
969d992b4e2d61ad48d3b9022e0ec68177e35fe53184e6b3399730d1a3641d2a984ce38699daad72ab006d5d6a9565
c5ae1cff8bdc8a1eb63
Antwort liefert Transaktionskennung:
OK:ID=A668MSAprOj4tAzv7G9lAQUfUr3A&TOKEN=(unused)
Verbuchung der Zahlung mit CreatePayComplete:
https://www.saferpay.com/hosting/PayCompleteV2.asp?spPassword=XAjc3Kna&ACCOUNTID=9986794913159&ID=A668MSAprOj4tAzv7G9lAQUfUr3A
Antwort liefert das Ergebnis:
OK:<IDP RESULT="0" MESSAGE="request was processed successfully" ID="xxxxxxxxxx"
MSGTYPE="PayConfirm"/>
Saferpay – Payment Page
Seite 46
10 Fehler-Codes
Folgende Antwort-Codes können durch die Saferpay Library zurückgeliefert werden:
Code
Allgemeine Fehler
0x80040201
Name
Beschreibung
Context Missing
0x80040202
File Not Found
0x80040203
File Access Error
0x80040204
0x80040206
0x80040207
0x80040208
0x80040209
0x8004020f
Invalid File Format
Invalid Path
Invalid Option
Request Failed
Cryptographic Error
No Configuration
0x80040214
Verify Failed
Kein Konfigurationskontext definiert. Rufen Sie
Open() vor dem Aufruf anderer Methoden auf.
Datei konnte nicht gefunden werden. Überprüfen
Sie, ob die Komponente richtig installiert ist.
Fehler beim Dateizugriff. Prüfen Sie die
Zugriffsrechte auf das Konfigurationsverzeichnis.
Datei enthält keinen gültigen XML Inhalt.
Ungültiger Pfad oder URL.
Ungültige Parameterangabe.
Anfrage fehlgeschlagen.
Verschlüsselungsfehler.
Keine Konfigurationsdaten im Pfad von Open()
vorhanden.
Signatur ungültig. Überprüfung der Signatur
fehlgeschlagen.
HTTP Fehler
0x80042019
0x80042021
0x80042xxx
Invalid URL
DNS Error
HTTP Server Error
Ungültige URL-Angabe.
Fehler bei der Auflösung einer Adresse.
HTTP Server-Fehler. Die letzten 3 Zeichen sind der
vom Server zurückgelieferte Status-Code.
Socket Fehler
0x80043xxx
Socket Base
Die letzten 3 Zeichen sind der Socket Fehler-Code.
Saferpay – Payment Page
Seite 47
11 Kontakt
11.1 Saferpay Integration Team
Haben Sie Fragen zu diesem Dokument oder Probleme bei der Saferpay Integration oder benötigen
Unterstützung? Dann wenden Sie sich gern an das Integration Team:
Saferpay Schweiz
SIX Payment Services AG
Hardturmstrasse 201
8021 Zürich
+41 848 66 44 44
www.six-payment-services.com/saferpay
[email protected]
Saferpay Europa
SIX Payment Services (Germany) GmbH
Langenhorner Chaussee 92-94
22415 Hamburg
+49 40 325 967- 280
www.six-payment-services.com/saferpay
[email protected]
11.2 Saferpay Support Team
Haben Sie Fragen zu Fehlermeldungen oder gibt es Probleme im laufenden Betrieb? Dann steht
Ihnen unser Support Team zur Verfügung:
Saferpay Schweiz
SIX Payment Services AG
Hardturmstrasse 201
8021 Zürich
+41 848 66 44 44
www.six-payment-services.com/saferpay
[email protected]
Saferpay Europa
SIX Payment Services (Germany) GmbH
Langenhorner Chaussee 92-94
22415 Hamburg
+49 40 325 967- 250
www.six-payment-services.com/saferpay
[email protected]
Das Saferpay Team wünscht Ihnen viel Erfolg mit Ihrer Saferpay E-Payment Lösung!
Saferpay – Payment Page
Seite 48

Documentos relacionados