Internetkasse - B+S Card Service

Transcription

Internetkasse - B+S Card Service
Internetkasse
Titelseite
Sparkassen-Internetkasse
Anbindung für Händler und Integratoren - Formularservice
Sparkassen-Internetkasse
Anbindung für Händler und Integratoren - Formularservice
Dieses Dokument bezieht sich auf Sparkassen-Internetkasse, Version 1.2.
Revision: 3.3.3
Ausgabedatum: 28.10.2010
Abschnitt „Pseudokartennummern“, S. 15: Hinweis zum automatischen
Löschen der Pseudokartennummer zwölf Monate nach Ablauf der Karte
ergänzt.
Revision: 3.3.2
Ausgabedatum: 21.10.2010
Abschnitt „Transaktionsarten“, S. 16: fehlenden Abschnitt „Reservieren/Buchen“, S. 17 hinzugefügt.
Revision: 3.3.1
Ausgabedatum: 23.08.2010
Abschnitt „Anfragenachricht - Pseudokartennummer registrieren“, S. 26:
Parameter payment_options hinzugefügt. Registrierung einer Pseudokartennummer mittels Formularservice: zusätzliche Antwortparameter hinzugefügt im Abschnitt „Parameterübersicht Shopbenachrichtigung Pseudokartennummer registrieren“, S. 33. Abschnitt „MAC - Message
Authentication Code“, S. 63: Parameterlisten aktualisiert.
Revision: 3.3
Ausgabedatum: 11.08.2010
Kapitel „Formularservice / 3D-Secure“, S. 13: Registrierung von Pseudokartennummern, Hinweise zu Formularen für das Apple iPhone und
Parameter cssurl ergänzt. Parameter locale: Wert "sv" für schwedische
Formulare ergänzt.
Revision: 3.2.2
Ausgabedatum: 07.05.2010
Abschnitt „Benachrichtigung des Shops“, S. 29: Zuordnung der rc_score
zu den entsprechenden rc_avsamex für die American Express Adressverifizierung ergänzt. Abschnitt „Kartenprüfnummer“, S. 47: American
Express Kartenprüfnummer kann jetzt auch 3-stellig sein. Abschnitt
„Testdaten für Zahlungstransaktionen“, S. 50: Testdaten für die American
Express Adressverifizierung hinzugefügt.
Revision: 3.2.1
Ausgabedatum: 08.03.2010
Formularservice, Tabelle 4-23, S. 24: Option "amexavs" ergänzt. Hinweise ergänzt, dass Lastschriften nur in EUR möglich sind.
Sparkassen-Internetkasse
Inhaltsverzeichnis
1
1.1
Kennzeichnungen und Visualisierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.2
Haftungsausschluss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.3
Copyright-Hinweis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2
Einleitung
2.1
Produkt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2
Zielgruppe, Aufgabe des Dokuments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.3
Inhaltsübersicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
3
Übersicht
3.1
3.1.1
System- und Schnittstellenübersicht . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
3D-Secure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.2
Voraussetzungen für die Anbindung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
3.3
Ablauf der Anbindung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
3.4
Support-Kontakt. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
4
Version 3.3.3
Zu diesem Dokument
Formularservice / 3D-Secure
4.1
Voraussetzungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
4.2
4.2.1
4.2.2
4.2.3
Funktionsbeschreibung. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Kreditkartenzahlungen mit 3D-Secure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Zahlungen ohne 3D-Secure. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Maestro-Zahlungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.3
Pseudokartennummern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
4.4
Zugangsdaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
4.5
4.5.1
4.5.2
Transaktionsarten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Reservieren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Reservieren/Buchen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Ausgabedatum: 28.10.2010
3
Sparkassen-Internetkasse
4.6
4.6.1
4.6.2
4.6.3
Transaktionsdetails . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Anfragenachricht - Zahlungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Anfragenachricht - Pseudokartennummer registrieren . . . . . . . . . . . . . . . 26
Benachrichtigung des Shops. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.7
Anpassung der Formulare. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
4.8
4.8.1
4.8.2
Konfiguration Ihres Zugangs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Kartenprüfnummer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Warenkorbnummer. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.9
FAQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5
5.1
5.1.1
Testdaten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Testdaten für Zahlungstransaktionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
5.2
5.2.1
5.2.2
Ergebnismeldungen / Antwort-Nachrichten . . . . . . . . . . . . . . . . . . . . . . . . 52
Sparkassen-Internetkasse Meldungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Meldungen des VÖB-ZVD-Payment-Gateways . . . . . . . . . . . . . . . . . . . . . . 59
5.3
Formatbeschreibung der Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.4
5.4.1
5.4.2
5.4.3
MAC - Message Authentication Code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
HMAC - Keyed-Hashing for Message Authentication . . . . . . . . . . . . . . . . . 63
Beispiele . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Codebeispiele. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
6
Version 3.3.3
Anhang
Glossar
Ausgabedatum: 28.10.2010
4
Sparkassen-Internetkasse
1
1.1 Kennzeichnungen und Visualisierung
Zu diesem Dokument
1.1 Kennzeichnungen und Visualisierung
Beachten Sie die folgenden Kennzeichnungen im Text:
Benutzereingaben
Hier stehen Zeichen und Befehle, die vom Benutzer einzugeben sind. Beispiel:
chkconfig --add oracle
Programmlistings, Quellcode
Hier stehen Auszüge aus dem Programmquellcode oder Listings. Beispiel:
Listing 1-1
import java.util.StringTokenizer;
Parameter
Die Bezeichnungen sämtlicher Parameter erscheinen in der Schriftart Andale
Mono. Beispiel: amount.
Hinweis
Hinweis
Ein kontextbezogener Hinweis oder weiterführende Informationen.
Tipp
Tipp
Ein Vorschlag oder eine Empfehlung für den Benutzer.
Wichtig
Wichtig
Ein besonders wichtiger Hinweis.
Vorsicht
Achtung
Ein Hinweis auf einen Sachverhalt, der Vorsicht und Aufmerksamkeit
erfordert.
Warnung
Warnung
Ein sicherheitsrelevanter Hinweis. Wird dieser nicht beachtet, kann es zu
Störungen im Programmablauf oder zu Hardware-Problemen kommen.
Version 3.3.3
Ausgabedatum: 28.10.2010
5
Sparkassen-Internetkasse
1.2 Haftungsausschluss
Aufzählung
1. Ab hier folgen einzeln nummerierte Schritte.
2. Diese werden nacheinander ausgeführt.
Hervorhebungen
Aus inhaltlichen Gründen hervorzuhebende Wörter und wesentliche Informationen erscheinen kursiv gedruckt.
1.2 Haftungsausschluss
Die Informationen in dieser Dokumentation sind mit größter Sorgfalt zusammengestellt worden. Die Dokumentation erhebt jedoch weder Anspruch auf
Vollständigkeit noch Fehlerfreiheit. Es kann deshalb keine Haftung für die Verwendbarkeit und Richtigkeit übernommen werden. Für direkte, indirekte, zufällige oder Folgeschäden, die aus der Anwendung der Informationen entstehen
können, übernimmt die VÖB-ZVD GmbH - soweit gesetzlich zulässig - keine Haftung.
1.3 Copyright-Hinweis
Dieses Dokument ist urheberrechtlich geschützt. Kein Teil des Dokuments darf
ohne vorherige schriftliche Genehmigung der VÖB-ZVD Bank für Zahlungsverkehrsdienstleistungen GmbH vervielfältigt oder unter Verwendung elektronischer Systeme verarbeitet oder verbreitet werden.
Alle Rechte vorbehalten © 2003 - 2010.
Version 3.3.3
Ausgabedatum: 28.10.2010
6
Sparkassen-Internetkasse
2
2.1 Produkt
Einleitung
2.1 Produkt
Sparkassen-Internetkasse ist ein Managementsystem zur Weiterverarbeitung,
Genehmigung und Verwaltung der bei einem Online-Händler eingehenden Kreditkarten- und Lastschriftzahlungen.
Die am System angeschlossenen Online-Händler und Operatoren erhalten
einen eigenen, benutzerspezifischen und vollständig webbasierten Zugriff.
Damit können die jeweils relevanten Verwaltungs-, Statistik- und MonitoringFunktionen genutzt werden.
Der Account eines Händlers ist multi-user-fähig. Der Händler kann mehrere Nutzer seines Accounts einrichten lassen.
Online-Händler haben über Sparkassen-Internetkasse differenzierten Zugriff auf
die Abwicklung einzelner Transaktionen und differenzierte, minutenaktuelle
Umsatzstatistiken. Die Funktion Sammelverarbeitung fasst Transaktionen
zusammen und bearbeitet diese en bloc. Die Importfunktion ermöglicht die
automatische Generierung mehrerer Zahlungen. Alle Transaktionen können
mittels Datenexport archiviert werden.
Der webbasierte Zugriff des Online-Händlers ist nicht Teil dieser AnbindungsDokumentation. Näheres dazu finden Sie im Sparkassen-Internetkasse-Anwenderhandbuch.
Für die Zahlungsabwicklung stehen folgende Modi zur Verfügung:
•
manuell (via Webbrowser)
•
Formularservice / 3D-Secure
Bei allen Transaktionen und beim Datenexport werden sämtliche Transaktionsdaten per SSL verschlüsselt übertragen.
2.2 Zielgruppe, Aufgabe des Dokuments
Dieses Dokument wendet sich an Online-Händler und Integratoren von Sparkassen-Internetkasse. Sie sollten über progammiertechnisches Basiswissen,
grundlegende Kenntnisse zu HTML und zum elektronischen Zahlungsverkehr
verfügen.
Version 3.3.3
Ausgabedatum: 28.10.2010
7
Sparkassen-Internetkasse
2.3 Inhaltsübersicht
Diese Dokumentation beschreibt die Schnittstellen von Sparkassen-Internetkasse und unterstützt Sie bei der Anbindung Ihres Shops bzw. Ihrer Anwendung.
2.3 Inhaltsübersicht
Die Dokumentation beginnt mit einer Übersicht über Sparkassen-Internetkasse.
In dieser Übersicht finden Sie auch Angaben über Voraussetzungen der Anbindung, Angaben zum Support und Hinweise zur Auswahl der geeigneten
Schnittstelle für die Integration Ihrer Anwendung.
Es folgt eine detaillierte Beschreibung der Anbindung.
Im anschließenden Anhang finden Sie Testdaten und eine Beschreibung der
Antwort-Codes des Systems.
Den Schluss der Dokumentation bildet das Glossar.
Version 3.3.3
Ausgabedatum: 28.10.2010
8
Sparkassen-Internetkasse
3
3.1 System- und Schnittstellenübersicht
Übersicht
3.1 System- und Schnittstellenübersicht
Das folgende Diagramm gibt den prinzipiellen Aufbau wieder.
Abbildung 3-1: Übersicht zum Gesamtsystem
Zum System gehören:
Version 3.3.3
•
Sie als Online-Händler mit Ihrem Shop/Ihrer Anwendung und einem Zugang
zu Sparkassen-Internetkasse über Webbrowser
•
Ihre Kunden
Ausgabedatum: 28.10.2010
9
Sparkassen-Internetkasse
3.2 Voraussetzungen für die Anbindung
•
das Sparkassen-Internetkasse-System, das aus mehreren Komponenten
besteht
sowie die Systeme von
•
Kreditkartenorganisationen
•
Banken
für die Abwicklung von Zahlungstransaktionen.
Über Webbrowser können Sie auf Sparkassen-Internetkasse zugreifen, um Ihre
Transaktionen zu kontrollieren, nachzubearbeiten und Statistiken zu erstellen.
Außerdem können Sie Transaktionen per Datei-Import in das System einspielen.
Diese Funktionalität ist im Sparkassen-Internetkasse-Anwenderhandbuch
beschrieben.
Die Zahlungstransaktionen Ihres Shops werden von Sparkassen-Internetkasse
auf ihre Plausibilität geprüft. Zur Abwicklung der Zahlungen werden die Transaktionen vom Sparkassen-Internetkasse Payment-Gateway an die Systeme der
Kreditkartenorganisationen und Banken weitergeleitet.
Bei Kreditkartentransaktionen erfolgt die Antwort in wenigen Sekunden. Sie
wird von Sparkassen-Internetkasse gespeichert, bearbeitet und sofort an Ihren
Shop weitergegeben.
3.1.1
3D-Secure
Für die sichere Abwicklung von Kreditkarten-Zahlungen wurde die Credit Card
Security Cartridge (CCS) in Sparkassen-Internetkasse integriert. Die CCS entspricht der von Visa entwickelten 3D-Secure Spezifikation, MPI Distributed Processing. Bei strittigen Transaktionen garantiert 3D-Secure dem Online-Händler
in der Regel die Haftungsumkehr (Liability Shift) zu seinen Gunsten.
Hinweis
Detaillierte Angaben zur Haftungsumkehr erhalten Sie von Ihrem Kreditkarten-Acquirer.
Die CCS wurde von Visa zertifiziert. Zahlungen nach dem 3D-Secure-Protokoll
werden von Visa unter dem Namen Verified by Visa und von MasterCard als
MasterCard SecureCode unterstützt. Zahlungen nach dem 3D-Secure-Protokoll
können Sie mit dem Sparkassen-Internetkasse-Formularservice durchführen (s.
Kapitel „Formularservice / 3D-Secure“, S. 13).
3.2 Voraussetzungen für die Anbindung
Für die Abrechnung von Kreditkartenzahlungen benötigen Sie einen Kreditkartenakzeptanzvertrag. Außerdem sollten Sie über ein Konto mit der Möglichkeit
des Lastschrifteinzuges bei Ihrer Hausbank verfügen.
Version 3.3.3
Ausgabedatum: 28.10.2010
10
Sparkassen-Internetkasse
3.3 Ablauf der Anbindung
Für 3D-Secure-Zahlungen müssen Sie als Online-Händler zusätzlich für Verified
by Visa oder MasterCard SecureCode registriert und freigeschaltet sein. Bitte
kontaktieren Sie dazu Ihren Kreditkarten-Acquirer.
Wenn Sie Standardsoftware für Ihren Shop oder Ihre Anwendung verwenden,
fragen Sie unseren Kunden-Support, ob Ihre Software bereits von SparkassenInternetkasse unterstützt wird. In diesem Fall ist nur ein geringer Integrationsaufwand notwendig.
Für die Anbindung von nicht Standard-Shops benötigen Sie grundlegende Programmierkenntnisse und Kenntnisse der Funktionsweise Ihres Shops bzw. Ihrer
Anwendung.
Technische Voraussetzung für die Anbindung ist die Möglichkeit, Skripte ausführen zu können bzw. per HTTPS-Request übergebene Daten verarbeiten zu
können. Ein reiner HTML-Shop ist daher nicht für die Anbindung geeignet.
Die genauen Anforderungen der gewählten Schnittstelle finden Sie im Kapitel
„Formularservice / 3D-Secure“, S. 13.
3.3 Ablauf der Anbindung
1. Vertragliche Vereinbarung
Grundlage für die Nutzung von Sparkassen-Internetkasse ist eine vertragliche Vereinbarung zwischen Ihnen als Händler und dem Lizenznehmer.
2. Testumgebung und Anbindungs-Dokumentation
Eine Testumgebung wird für Sie frei geschaltet. Anhand dieser Dokumentation machen Sie sich mit der Integration von Sparkassen-Internetkasse vertraut.
3. Anbindung
Sie können die Anbindung mit geringem Aufwand selbst vornehmen. Hierbei erhalten Sie telefonisch und/oder per E-Mail Support (s. Abschnitt „Support-Kontakt“, S. 12).
4. Tests
Um die Funktionsfähigkeit der Anbindung sicherzustellen, führen Sie in der
Testumgebung simulierte Zahlungen durch.
5. Freischaltung
Der zuständige Lizenznehmer richtet einen personalisierten Händlerzugang
für Sie ein. Spätestens jetzt müssen Sie dem Lizenznehmer die Vertragspartnernummer(n) zur Abwicklung von Kreditkarten-Transaktionen und eine
Bankverbindung für die Abwicklung von Lastschriften mitteilen. Zur Nutzung Ihres Händler-Zugangs erhalten Sie per E-Mail Ihre Zugangsdaten
(Login und Passwort).
6. Konfiguration
Version 3.3.3
Ausgabedatum: 28.10.2010
11
Sparkassen-Internetkasse
3.4 Support-Kontakt
Mit diesen Zugangsdaten konfigurieren Sie Ihr System für den Wirkbetrieb.
7. Betrieb
Das Zahlungssystem steht jetzt für Sie und Ihre Kunden bereit.
3.4 Support-Kontakt
Bitte erfragen Sie den Support-Kontakt beim jeweiligen Lizenznehmer/Institut.
Version 3.3.3
Ausgabedatum: 28.10.2010
12
Sparkassen-Internetkasse
4
4.1 Voraussetzungen
Formularservice / 3D-Secure
Mit dem Formularservice bietet Sparkassen-Internetkasse Ihrem Shop die Möglichkeit, ohne eigenes SSL-Zertifikat Ihren Kunden die verschlüsselte Übertragung der Zahlungsdaten anzubieten. Die Abwicklung der Zahlung erfolgt von
der Eingabe der Zahlungsdaten bis hin zur Anzeige des Ergebnisses einer Zahlung komplett in Sparkassen-Internetkasse. Kunde und Onlineshop werden
über das Ergebnis einer Zahlung informiert.
Sie haben die Wahl zwischen Formularen für Standard-Webbrowser und einer
Variante für das Apple iPhone und andere Smartphones mit WebKit basiertem
Browser.
Abbildung 4-1: Formularservice auf dem Apple iPhone
4.1 Voraussetzungen
Anforderungen an den Shopkunden
Für Zahlungen ohne 3D-Secure genügt eine gültige Kreditkarte oder Bankverbindung.
Version 3.3.3
Ausgabedatum: 28.10.2010
13
Sparkassen-Internetkasse
4.2 Funktionsbeschreibung
Für 3D-Secure-Zahlungen müssen Inhaber einer Kreditkarte bei ihrer Bank für
Verified by Visa oder MasterCard SecureCode registriert und freigeschaltet sein.
Im Browser des Kunden muss die JavaScript-Unterstützung aktiviert sein. JavaScript wird für Weiterleitung des Kunden zwischen Shop, CCS und Access Control Server (ACS) benötigt.
4.2 Funktionsbeschreibung
4.2.1
Kreditkartenzahlungen mit 3D-Secure
Der Datentransfer einer erfolgreichen Transaktion gestaltet sich beispielhaft
wie folgt:
1
7
Customer
Browser
5
7
Shop
5
8
3
Access
Control Server
(ACS)
6
VISA Directory
4
2
Credit Card
Security
Cartridge (CCS)
8
Payment
Backend
Abbildung 4-2: Beispielhafte 3D-Secure-Transaktion
1. Der Shopkunde hat im Online-Shop den Warenkorb gefüllt, geht zur Kasse
und wählt die Zahlungsart "Verified by Visa" oder "MasterCard SecureCode".
2. Der Shop leitet den Browser des Shopkunden über einen Redirect zur CCS,
die dem Kunden das Formular zur Eingabe der Kreditkartendaten anzeigt.
3. Der Shopkunde gibt seine Kreditkartendaten in das Formular ein und sendet sie ab. Falls der Kunde auf "Abbrechen" klickt, entfallen die folgenden
Schritte, und der Shop wird mit einer Fehlermeldung benachrichtigt.
4. Die CCS ermittelt den für die Kreditkartennummer gültigen Access Control
Server (ACS).
5. Die CCS leitet den Browser des Shopkunden an den betreffenden ACS weiter.
6. Der Shopkunde autorisiert die Zahlung beim ACS in einem Popup-Fenster
(Eingabe eines Passworts, einer PIN oder einer TAN).
7. Der ACS signiert die Zahlungsautorisierung, die CCS speichert die signierte
Zahlungsautorisierung.
Version 3.3.3
Ausgabedatum: 28.10.2010
14
Sparkassen-Internetkasse
4.3 Pseudokartennummern
8. Die CCS leitet den Paymentrequest an das Sparkassen-Internetkasse
Payment-Backend weiter und benachrichtigt den Shop über das Transaktionsergebnis.
4.2.2
Zahlungen ohne 3D-Secure
Für Lastschriften und Kreditkartenzahlungen ohne 3D-Secure gilt ein vereinfachter Transaktionsablauf bestehend aus den Schritten 1 bis 3 und 8 des im
vorigen Abschnitt beschriebenen Ablaufs bei 3D-Secure-Zahlungen.
4.2.3
Maestro-Zahlungen
Maestro-Zahlungen können Sie ebenfalls mit Hilfe des Formularservice verarbeiten. Maestro-Zahlungen werden immer gemäß dem 3D-Secure-Protokoll durchgeführt.
Hinweis
Für Maestro ist ein separater Vertrag mit B+S Card Service erforderlich.
4.3 Pseudokartennummern
Pseudokartennummern stellen eine Möglichkeit dar, wiederkehrende Zahlungen mit einer Kreditkarte durchführen zu können, ohne die Kreditkartendaten
in Ihrem System zu speichern. Auf diese Weise müssen Sie nicht am "Payment
Card Industry Data Security Standard" (PCI DSS) Programm von Visa und MasterCard teilnehmen. Ihr Zugang muss für die Nutzung von Pseudokartennummern entsprechend konfiguriert sein.
Wenn Ihr Zugang für die Nutzung von Pseudokartennummern konfiguriert ist,
können Sie durch Angabe des Parameters payment_options=generate_ppan Sparkassen-Internetkasse mitteilen, dass Sie eine Pseudokartennummer für die Kreditkarte des Kunden anlegen wollen. In der Shopbenachrichtigung erhalten Sie
dann eine von Sparkassen-Internetkasse generierte Pseudokartennummer. Sie
können im Feld ppan auch selbst eine Pseudokartennummer angeben. Mit der
Pseudokartennummer können Sie weitere Transaktionen mit dieser Kreditkarte
in der Händleransicht oder über die Shopschnittstelle durchführen.
Als Alternative können Sie mit dem Formularservice Pseudokartennummern
auch unabhängig von einer Zahlung registrieren. Der Transaktionsablauf entspricht dem für Zahlungen ohne 3D-Secure.
Sparkassen-Internetkasse gewährleistet eine eindeutige Zuordnung einer Pseudokartennummer zu einer Kreditkarte. Eine bereits vergebene Pseudokartennummer darf nicht noch einmal für eine andere Kreditkarte verwendet werden.
Umgekehrt dürfen für eine Kreditkarte nicht mehrere Pseudokartennummern
vergeben werden.
Version 3.3.3
Ausgabedatum: 28.10.2010
15
Sparkassen-Internetkasse
4.4 Zugangsdaten
Pseudokartennummern werden zwölf Monate nach Ablauf der Karte automatisch im System gelöscht.
4.4 Zugangsdaten
Test- und Produktivsystem stehen Ihnen unter folgenden URLs zur Verfügung:
Testzugang:
https://testsystem.sparkassen-internetkasse.de/vbv/mpi_legacy
Produktivzugang:
https://system.sparkassen-internetkasse.de/vbv/mpi_legacy
Senden Sie Anfragen an Sparkassen-Internetkasse nur mit den im folgenden
Abschnitt beschriebenen CGI-Parametern!
4.5 Transaktionsarten
Über den Parameter transactiontype können Sie eine der beiden folgenden
Transaktionsarten auswählen.
4.5.1
Reservieren
Führen Sie eine Reservierung durch, wenn die Erfüllung eines Auftrages zu
einem späteren Zeitpunkt erfolgt, zum Zeitpunkt der Bestellung aber der
Bestellwert für die vom Kunden vorgelegte Karte genehmigt werden soll bzw.
die angegebene Bankverbindung geprüft werden soll. Die Reservierungsfrist
beträgt ca. sieben Tage bei Kreditkarten und 30 Tage bei Lastschriften. Die
Reservierungsfrist für Kreditkartenzahlungen ist in Ihrem Akzeptanzvertrag
geregelt. Bitte kontaktieren Sie Ihren Acquirer, falls Unklarheiten hinsichtlich
der Reservierungsfrist für Kreditkartenzahlungen bestehen. Nach Ablauf der
Reservierungsfrist ist das Buchen dieser Transaktion nicht mehr möglich. Sparkassen-Internetkasse ermöglicht Ihnen auch, bei der Reservierung zu bestimmen, ob und wann das System die Reservierung automatisch buchen soll.
Lastschrift
Es wird geprüft, ob die angegebene Bankleitzahl existiert und ob die angegebene Kontonummer für das Prüfziffernverfahren dieser Bank gültig ist.
Kreditkarte
Es wird geprüft, ob eine vorgelegte Karte existiert, gesperrt ist und mit einem
bestimmten Betrag belastet werden kann. Diese Anfrage kann abgelehnt oder
durch die Erteilung einer Genehmigungsnummer bejaht werden. Im Falle der
Genehmigung wird vom Kreditlimit der vorgelegten Karte der angefragte
Betrag reserviert.
Version 3.3.3
Ausgabedatum: 28.10.2010
16
Sparkassen-Internetkasse
4.5.2
4.6 Transaktionsdetails
Reservieren/Buchen
Reservierung und Buchung erfolgt in einem Zug, es ist keine separate
Buchungsnachricht erforderlich, um die Buchung auszulösen.
Verwenden Sie die Transaktionsart Reservieren/Buchen, wenn der Geschäftsvorgang abgeschlossen ist, also z. B. ein Warenkorb angeboten, bestellt und an
den Kunden ausgeliefert wurde.
4.6 Transaktionsdetails
In den folgenden Abschnitten finden Sie Details zur Initialisierung einer Zahlung und zur Benachrichtigung des Shops durch Sparkassen-Internetkasse.
4.6.1
Anfragenachricht - Zahlungen
Die in den folgenden Tabellen aufgeführten Parameter werden über den Browser des Kunden durch ein Redirect an den Sparkassen-Internetkasse-Server
übermittelt. Der Shop reagiert also auf eine Aktion des Browsers mit einer Antwort, die den Kunden an den Sparkassen-Internetkasse-Server weiterleitet. Dies
kann durch einen HTTP-Redirect-Header, eine HTML-Seite mit einem entsprechenden Meta-Tag oder per JavaScript-Formular erfolgen.
Ein Beispiel für die Realisierung mittels Meta-Tag finden Sie im Abschnitt „Beispiel“, S. 26.
Erläuterungen zu den in den folgenden Tabellen angegebenen Wertebereichen
der Parameter finden Sie im Abschnitt „Formatbeschreibung der Parameter“,
S. 62. Näheres zum Parameter mac finden Sie im Anhang im Abschnitt „MAC Message Authentication Code“, S. 63. Zur Verwendung der Warenkorbnummer
(Parameter basketid) lesen Sie bitte auch Abschnitt „Warenkorbnummer“, S. 48.
Die optionalen Parameter acceptcountries, countryrejectmessage, deliverycountry, deliverycountryaction, deliverycountryrejectmessage und rejectcountries dienen der Überprüfung des Ausgabelandes einer Kreditkarte. Diese
Überprüfung kann derzeit für Visa und MasterCard durchgeführt werden. Wenn
ein Kunde mit einer anderen Kreditkarte bezahlt, findet keine Überprüfung des
Ausgabelandes statt, die Zahlung kann nicht aufgrund des Ausgabelandes der
Karte zurückgewiesen werden.
Wird eine Kreditkarte aufgrund Ihres Ausgabelandes abgewiesen, wird dem
Kunden das Formular zur Eingabe der Kreditkartendaten noch einmal mit einer
Fehlermeldung angezeigt. Sie können den Text dieser Fehlermeldung entweder
selbst in der Anfragenachricht übergeben (s. Abschnitt „Parameterübersicht
Anfragenachricht“, S. 18) oder von Sparkassen-Internetkasse die Standard-Fehlermeldung für diesen Fehler anzeigen lassen.
Die optionalen Parameter customer_addr_... dienen der Adressverifizierung
durch American Express. Die Parameter sind nur relevant, wenn die Zahlung mit
einer American Express Kreditkarte erfolgt. Andernfalls werden diese Parame-
Version 3.3.3
Ausgabedatum: 28.10.2010
17
Sparkassen-Internetkasse
4.6 Transaktionsdetails
ter bei der Verarbeitung der Zahlung ignoriert. Die Adressverifizierung hat keinen Einfluss auf das Ergebnis der Zahlung. Das Ergebnis der Adressverifizierung
wird im Parameter rc_avsamex und zusätzlich als Ampelwert im Parameter
rc_score zurückgegeben.
Es kann vorkommen, dass Sparkassen-Internetkasse vom Access Control Server
die Antwort erhält, dass eine Autorisierung nicht möglich ist. Dies kann technische Gründe haben oder daran liegen, dass eine Kreditkarte nicht am Verified
by Visa bzw. MasterCard SecureCode Programm teilnimmt. Aufgrund der unterschiedlichen Regelungen von Visa und MasterCard geht Sparkassen-Internetkasse in diesem Fall wie folgt vor:
4.6.1.1
•
Bei einer MasterCard wird die Transaktion fortgeführt.
•
Bei einer Visa Karte wird die Transaktion abgebrochen, es sei denn in der
Anfragenachricht wurde der Parameter payment_options=sslifvisaenrolledu
übermittelt. In diesem Fall wird die Transaktion als SSL-Transaktion ohne
Haftungsumkehr durchgeführt.
Parameterübersicht Anfragenachricht
Die folgenden Tabellen geben eine Übersicht der Pflicht- und optionalen Parameter der Anfragenachricht. Zu jedem Parameter finden Sie Einträge zum
erlaubten Wertebereich, ein Beispiel und eine Erläuterung. Die Erläuterung enthält immer auch die Angabe, ob es sich um einen Pflicht- oder einen optionalen
Parameter handelt.
Hinweis
Wenn Sie den optionalen Parameter transactiontype (s. unten) nicht
angeben, wird eine Reservierung durchgeführt. Beachten Sie, dass Sie in
diesem Fall die Zahlung in einem zweiten Schritt buchen müssen, um den
Zahlungsbetrag zu erhalten und für diese zweite Teiltransaktion zusätzliche Kosten anfallen.
acceptcountries
Wertebereich
A[,]-255
Beispiel
AT,DE,CH
Erläuterung
Optional; Liste der erlaubten Ausgabeländer bei Kreditkartenzahlung. Zweibuchstabige, durch Komma voneinander getrennte Länderkürzel nach dem aktuell gültigen Standard ISO 3166 (s. http://www.iso.org/iso/en/prods-services/iso3166ma/02iso-3166-code-lists/list-en1.html). Ohne diesen Parameter gilt
keine Einschränkung hinsichtlich des Ausgabelandes.
Tabelle 4-1: Parameter acceptcountries
Version 3.3.3
Ausgabedatum: 28.10.2010
18
Sparkassen-Internetkasse
4.6 Transaktionsdetails
additionalnote
Wertebereich
ANLS-25
Beispiel
www.tricycles-online.de
Erläuterung
Überschreibt die Händlerbezeichnung auf der Kreditkartenabrechnung des Kunden. Kann z.B. verwendet werden, wenn ein Händler unter mehreren Namen Waren anbietet, um dem Kunden die Zuordnung der Zahlung zu einem Einkauf zu erleichtern. Kann nur bei entsprechender Konfiguration Ihres Zugangs verwendet
werden.
Tabelle 4-2: Parameter additionalnote
amount
Wertebereich
NS-10
Beispiel
22,60
Erläuterung
Pflichtfeld; Betrag mit Dezimalkomma
Tabelle 4-3: Parameter amount
autocapture
Wertebereich
N-3
Beispiel
72
Erläuterung
Optional; nur bei Reservierung: Zeitraum - in Stunden - zwischen Reservierung
und automatischer Buchung. Ohne diesen Parameter erfolgt keine automatische
Buchung. Erlaubt sind Werte von 0-168 Stunden für Kreditkartenzahlungen und
von 0-720 Stunden für Lastschriften.
Tabelle 4-4: Parameter autocapture
Achtung
Bei der "autocapture"-Buchung erfolgt keine separate Rückmeldung an
den Shop. Sollte die Buchung in seltenen Fällen nicht erfolgreich sein
(z.B. weil der Acquirer nicht erreichbar war), so wird kein automatischer
zweiter Versuch gestartet. Daher empfehlen wir, die betroffenen Reservierungen in regelmäßigen Abständen zu kontrollieren und fehlerhafte
Buchungen gegebenenfalls manuell nachzuholen.
basketid
Wertebereich
ANLS-50
Beispiel
ba_100202
Erläuterung
Optional; Kennung des bestellten Warenkorbs oder Artikels, kann auf dem Kontoauszug bzw. der Kreditkartenabrechnung von Käufer und Händler angezeigt werden, s. Abschnitt „Warenkorbnummer“, S. 48
Tabelle 4-5: Parameter basketid
Version 3.3.3
Ausgabedatum: 28.10.2010
19
Sparkassen-Internetkasse
4.6 Transaktionsdetails
command
Wertebereich
FIX
Beispiel
sslform
Erläuterung
Pflichtfeld; Requestdefinition
Tabelle 4-6: Parameter command
countryrejectmessage
Wertebereich
AN-255
Beispiel
Bitte wählen Sie eine andere Kreditkarte
Erläuterung
Optional, nur zusammen mit acceptcountries oder rejectcountries. Fehlermeldung, falls eine Kreditkarte aufgrund Ihres Ausgabelandes abgewiesen wurde.
Fehlt der Parameter, wird die Standard-Fehlermeldung für diesen Fehler verwendet.
Tabelle 4-7: Parameter countryrejectmessage
cssurl
Wertebereich
ANS-255
Beispiel
http://my.company.com/fs/form.css
Erläuterung
Optional. URL des Cascading Stylesheet, mit dem das Formular angezeigt wird.
Ohne diesen Parameter wird die in der Händleroberfläche konfigurierte URL verwendet.
Tabelle 4-8: Parameter cssurl
currency
Wertebereich
A3
Beispiel
EUR
Erläuterung
Pflichtfeld; Währungscode gemäß ISO 4217. Für Lastschriften immer EUR.
Tabelle 4-9: Parameter currency
customer_addr_city
Wertebereich
ANLS-80
Beispiel
Bonn
Erläuterung
Optional; Stadt der Adresse des Kunden. Für Adressverifizierung bei Zahlungen
mit American Express Kreditkarte.
Tabelle 4-10: Parameter customer_addr_city
Version 3.3.3
Ausgabedatum: 28.10.2010
20
Sparkassen-Internetkasse
4.6 Transaktionsdetails
customer_addr_number
Wertebereich
ANLS-32
Beispiel
98a
Erläuterung
Optional; Hausnummer der Adresse des Kunden. Für Adressverifizierung bei Zahlungen mit American Express Kreditkarte.
Tabelle 4-11: Parameter customer_addr_number
customer_addr_street
Wertebereich
ANLS-80
Beispiel
Wiesenweg
Erläuterung
Optional; Straße der Adresse des Kunden. Für Adressverifizierung bei Zahlungen
mit American Express Kreditkarte.
Tabelle 4-12: Parameter customer_addr_street
customer_addr_zip
Wertebereich
ANL-16
Beispiel
53123
Erläuterung
Optional; Postleitzahl der Adresse des Kunden. Für Adressverifizierung bei Zahlungen mit American Express Kreditkarte.
Tabelle 4-13: Parameter customer_addr_zip
date
Wertebereich
N[_:]19
Beispiel
20031123_12:23:45
Erläuterung
Optional; aktuelles Datum und Uhrzeit im Format JJJJMMTT_HH:mm:ss
Tabelle 4-14: Parameter date
deliverycountry
Wertebereich
A2
Beispiel
DE
Erläuterung
Optional. Land der Lieferadresse. Zweibuchstabiges Länderkürzel nach ISO 3166.
Tabelle 4-15: Parameter deliverycountry
Version 3.3.3
Ausgabedatum: 28.10.2010
21
Sparkassen-Internetkasse
4.6 Transaktionsdetails
deliverycountryaction
Wertebereich
FIX
Beispiel
notify
Erläuterung
Optional. Gibt an, wie verfahren werden soll, wenn das in deliverycountry angegebene Land nicht mit dem Ausgabeland der Kreditkarte übereinstimmt.
Mögliche Werte:
•
"notify": bei der Benachrichtigung des Shops werden Sie über die fehlende
Übereinstimmung informiert
•
"reject": die Zahlung mit dieser Kreditkarte wird abgewiesen
Falls der Parameter fehlt, wird "reject" angenommen.
Tabelle 4-16: Parameter deliverycountryaction
deliverycountryrejectmessage
Wertebereich
AN-255
Beispiel
Bitte wählen Sie eine andere Kreditkarte
Erläuterung
Optional. Fehlermeldung, falls das Ausgabeland einer Kreditkarte nicht mit dem in
deliverycountry übergebenen Land übereinstimmt und die Kreditkarte deshalb
abgewiesen wird. Falls nicht angegeben, wird die Standard-Fehlermeldung des
Systems für diesen Fehler verwendet.
Tabelle 4-17: Parameter deliverycountryrejectmessage
locale
Wertebereich
FIX
Beispiel
en
Erläuterung
Optional. Sprache des anzuzeigenden Formulars. "de" - deutsch, "en" - englisch,
"es" - spanisch, "fr" - französisch, "it" - italienisch, "pt" - portugiesisch, "nl" - niederländisch, "cs" - tschechisch, "sv" - schwedisch, "da" - dänsich. Falls nicht angegeben, wird das deutschsprachige Formular angezeigt. Für Spenden und Beiträge
existieren zusätzliche "Locales" mit angepassten Texten: "spde" (Spende,
deutsch), "spen" (Spende, englisch), "btde" (Beitrag, deutsch), "bten" (Beitrag,
englisch).
Tabelle 4-18: Parameter locale
mac
Wertebereich
N[abcdef]40
Beispiel
0fab98c2d51992adff4732e2c5ab8599f15723e3
Erläuterung
Pflichtfeld; Message Authentication Code, dient der Absicherung gegen Manipulationen der Zahlungsdaten, s. Abschnitt „MAC - Message Authentication Code“,
S. 63
Tabelle 4-19: Parameter mac
Version 3.3.3
Ausgabedatum: 28.10.2010
22
Sparkassen-Internetkasse
4.6 Transaktionsdetails
merchantref
Wertebereich
ANS-30
Beispiel
RH_6712
Erläuterung
Optional, nur für Kreditkartenzahlungen. Transaktionsreferenz, die auf der Kreditkartenabrechnung des Händlers statt der Warenkorbnummer angezeigt wird.
Tabelle 4-20: Parameter merchantref
notificationfailedurl
Wertebereich
ANS-255
Beispiel
http://www.myshop.com/formentry_failed.html
Erläuterung
Optional. Wenn der Shop nicht über den Ausgang der Zahlung informiert werden
kann, wird dem Kunden eine Ergebnisseite mit einem Link zu dieser URL angezeigt.
Tabelle 4-21: Parameter notificationfailedurl
orderid
Wertebereich
AN[-_/]-17
Beispiel
order_10123487
Erläuterung
Pflichtfeld; Vorgangsnummer
Tabelle 4-22: Parameter orderid
Version 3.3.3
Ausgabedatum: 28.10.2010
23
Sparkassen-Internetkasse
4.6 Transaktionsdetails
payment_options
Wertebereich
FIX
Beispiel
sslifvisaenrolledu
Erläuterung
Optional.
Bei Kreditkartentransaktionen:
•
"cardholder" gibt an, dass das Formular, das dem Kunden angezeigt wird, ein
Pflichtfeld zur Eingabe des Karteninhabers enthält.
•
"optionalcardholder" gibt an, dass das Formular ein optional auszufüllendes
Feld "Karteninhaber" enthält
Ohne diese Angabe enthält das Formular kein Eingabefeld für den Karteninhaber.
•
"sslifvisaenrolledu" gibt an, dass bei einer Visa Karte, für die eine Autorisierung nicht möglich ist, eine SSL-Transaktion ohne Haftungsumkehr durchgeführt wird. Falls nicht angegeben, wird in diesem Fall die Transaktion abgebrochen.
•
"generate_ppan": nur, wenn Ihr Zugang für die Verwendung von Pseudokartennummern konfiguriert ist. Gibt an, dass für die Kreditkarte, mit der der
Kunde bezahlt, eine Pseudokartennummer angelegt werden soll.
•
"amexavs": wenn der Kunde mit einer American Express Karte bezahlt, wird
seine Adresse abgefragt und eine American Express Adressverifizierung
durchgeführt. Das Ergebnis der Adressverifizierung erhalten Sie in der Shopbenachrichtigung in den Feldern rc_avsamex und rc_score.
Bei Lastschriften:
•
"accountholder" gibt an, dass das Lastschriftformular, das dem Kunden angezeigt wird, ein Pflichtfeld zur Eingabe des Kontoinhabers enthält.
•
"optionalaccountholder" gibt an, dass das Lastschriftformular ein optional
auszufüllendes Feld "Kontoinhaber" enthält
Ohne diese Angabe enthält das Lastschriftformular lediglich Eingabefelder für
Kontonummer und Bankleitzahl
•
"checklist": vor der Lastschrift wird eine Sperrlistenabfrage durchgeführt. Nur
verfügbar, wenn diese Option für Ihren Zugang freigeschaltet wurde.
Falls Sie mehr als einen Wert angeben wollen,trennen Sie die einzelnen Werte
durch ein Semikolon voneinander, z.B. "checklist;accountholder"
Tabelle 4-23: Parameter payment_options
paymentmethod
Wertebereich
FIX
Beispiel
creditcard
Erläuterung
Pflichtfeld, Zahlungsart: "creditcard" (Kreditkarte), "maestro" oder "directdebit"
(Lastschrift). Kreditkarten-Transaktionen werden als 3D-Secure-Zahlungen ausgeführt, wenn Ihr Zugang entsprechend konfiguriert ist, ansonsten erfolgt die Transaktion ohne 3D-Secure.
Tabelle 4-24: Parameter paymentmethod
Version 3.3.3
Ausgabedatum: 28.10.2010
24
Sparkassen-Internetkasse
4.6 Transaktionsdetails
ppan
Wertebereich
ANLS-50
Beispiel
5b6fd81b60f88b52c99ca71df555c831
Erläuterung
Optional, nur für Kreditkartenzahlungen zusammen mit
payment_options=generate_ppan verwenden. Pseudokartennummer für eine
Kreditkarte. Falls nicht angegeben, generiert Sparkassen-Internetkasse eine
Pseudokartennummer und sendet Ihnen diese in der Shopbenachrichtigung.
Tabelle 4-25: Parameter ppan
rejectcountries
Wertebereich
A[,]-255
Beispiel
AT,DE,CH
Erläuterung
Optional; Liste nicht erlaubter Ausgabeländer bei Kreditkartenzahlung. Zweibuchstabige, durch Komma voneinander getrennte Länderkürzel nach ISO 3166. Ohne
diesen Parameter gilt keine Einschränkung hinsichtlich des Ausgabelandes.
Tabelle 4-26: Parameter rejectcountries
sessionid
Wertebereich
ANSL-255
Beispiel
Nhdz747458sNX
Erläuterung
Optional; Kennung der aktuellen Session im Onlineshop, wird für die Benachrichtigung des Shops verwendet
Tabelle 4-27: Parameter sessionid
sslmerchant
Wertebereich
ANS-16
Beispiel
mycompany
Erläuterung
Pflichtfeld; Händlerkennung
Tabelle 4-28: Parameter sslmerchant
transactiontype
Wertebereich
FIX
Beispiel
authorization
Erläuterung
Optional, wenn nicht gesetzt: "preauthorization"; Transaktionsart. Entweder Reservieren ("preauthorization") oder Reservieren/Buchen ("authorization")
Tabelle 4-29: Parameter transactiontype
Version 3.3.3
Ausgabedatum: 28.10.2010
25
Sparkassen-Internetkasse
4.6 Transaktionsdetails
version
Wertebereich
FIX
Beispiel
1.5
Erläuterung
Pflichtfeld. Version des Formularservice. "1.5" für Standard-Webbrowser, "1.5m"
um Formulare angezeigt zu bekommen, die für das Apple iPhone und andere
Smartphones mit WebKit basiertem Webbrowser optimiert wurden.
Tabelle 4-30: Parameter version
4.6.1.2
Beispiel
Dieses Beispiel zeigt, wie Ihr Shop den Kunden zum Sparkassen-InternetkasseServer weiterleiten kannn. Die Anfragenachricht ist hier in einem Meta-Tag enthalten.
Listing 4-1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="refresh" content="0;
URL=https://testsystem.sparkassen-internetkasse.de/vbv/mpi_legacy?
amount=1,00&amp;basketid=b1057316117&amp;command=sslform&amp;currency=EUR&amp;date=
20060119_15:40:39&amp;orderid=o1057316117&amp;paymentmethod=creditcard&amp;sessioni
d=s105731611&amp;sslmerchant=tobechanged&amp;transactiontype=authorization&amp;vers
ion=1.5&amp;mac=0fab98c2d51992adff4732e2c5ab8599f15723e3">
</head>
<body></body>
</html>
Hinweis
Kopieren Sie die in diesem Beispiel angegebene URL nicht in die Adressleiste Ihres Browsers, um damit Sparkassen-Internetkasse aufzurufen. Sie
würden lediglich eine Fehlermeldung erhalten.
4.6.1.3
Reaktion des Sparkassen-Internetkasse-Servers
Als Reaktion auf diesen per Redirect übermittelten Request wird dem Kunden
ein Formular angezeigt, in das die Daten des Zahlungsmittels eingegeben werden. Nach dem Absenden der Daten wird die Zahlung abgewickelt (Schritte 4
bis 8 in Abschnitt „Kreditkartenzahlungen mit 3D-Secure“, S. 14). Falls der
Kunde in diesem Formular die "Abbrechen"-Schaltfläche anklickt, wird der
Shop sofort mit einer entsprechenden Fehlermeldung über den Abbruch der
Zahlung informiert.
4.6.2
Anfragenachricht - Pseudokartennummer registrieren
Der Ablauf beim Registrieren einer Pseudokartennummer entspricht dem Transaktionsablauf bei Zahlungen, allerdings unterscheiden sich die Parameter der
Version 3.3.3
Ausgabedatum: 28.10.2010
26
Sparkassen-Internetkasse
4.6 Transaktionsdetails
Anfragenachricht. Beim Registrieren einer Pseudokartennummer sind in der
Anfragenachricht folgende Parameter anzugeben:
command
Wertebereich
FIX
Beispiel
sslform
Erläuterung
Pflichtfeld; Requestdefinition
Tabelle 4-31: Parameter command
cssurl
Wertebereich
ANS-255
Beispiel
http://my.company.com/fs/form.css
Erläuterung
Optional. URL des Cascading Stylesheet, mit dem das Formular angezeigt wird.
Ohne diesen Parameter wird die in der Händleroberfläche konfigurierte URL verwendet.
Tabelle 4-32: Parameter cssurl
locale
Wertebereich
FIX
Beispiel
en
Erläuterung
Optional. Sprache des anzuzeigenden Formulars. "de" - deutsch, "en" - englisch
oder "sv" - schwedisch. Falls nicht angegeben, wird das deutschsprachige Formular angezeigt.
Tabelle 4-33: Parameter locale
mac
Wertebereich
N[abcdef]40
Beispiel
0fab98c2d51992adff4732e2c5ab8599f15723e3
Erläuterung
Pflichtfeld; Message Authentication Code, dient der Absicherung gegen Manipulationen der Zahlungsdaten, s. Abschnitt „MAC - Message Authentication Code“,
S. 63.
Tabelle 4-34: Parameter mac
Version 3.3.3
Ausgabedatum: 28.10.2010
27
Sparkassen-Internetkasse
4.6 Transaktionsdetails
notificationfailedurl
Wertebereich
ANS-255
Beispiel
http://www.myshop.com/formentry_failed.html
Erläuterung
Optional. Wenn der Shop nicht über den Ausgang der Zahlung informiert werden
kann, wird dem Kunden eine Ergebnisseite mit einem Link zu dieser URL angezeigt.
Tabelle 4-35: Parameter notificationfailedurl
payment_options
Wertebereich
FIX
Beispiel
cardholder
Erläuterung
Optional.
•
"cardholder" gibt an, dass das Formular, das dem Kunden angezeigt wird, ein
Pflichtfeld zur Eingabe des Karteninhabers enthält.
•
"optionalcardholder" gibt an, dass das Formular ein optional auszufüllendes
Feld "Karteninhaber" enthält
Ohne diese Angabe enthält das Formular kein Eingabefeld für den Karteninhaber.
Tabelle 4-36: Parameter payment_options
paymentmethod
Wertebereich
FIX
Beispiel
registerpan
Erläuterung
Pflichtfeld, Wert ist "registerpan".
Tabelle 4-37: Parameter paymentmethod
ppan
Wertebereich
ANLS-50
Beispiel
5b6fd81b60f88b52c99ca71df555c831
Erläuterung
Optional. Pseudokartennummer für eine Kreditkarte. Falls nicht angegeben, generiert Sparkassen-Internetkasse eine Pseudokartennummer und sendet Ihnen
diese in der Shopbenachrichtigung.
Tabelle 4-38: Parameter ppan
sessionid
Wertebereich
ANSL-255
Beispiel
Nhdz747458sNX
Erläuterung
Optional; Kennung der aktuellen Session im Onlineshop, wird für die Benachrichtigung des Shops verwendet
Tabelle 4-39: Parameter sessionid
Version 3.3.3
Ausgabedatum: 28.10.2010
28
Sparkassen-Internetkasse
4.6 Transaktionsdetails
sslmerchant
Wertebereich
ANS-16
Beispiel
mycompany
Erläuterung
Pflichtfeld; Händlerkennung
Tabelle 4-40: Parameter sslmerchant
version
Wertebereich
FIX
Beispiel
1.5
Erläuterung
Pflichtfeld. Version des Formularservice. "1.5" für Standard-Webbrowser, "1.5m"
um Formulare angezeigt zu bekommen, die für das Apple iPhone und andere
Smartphones mit WebKit basiertem Webbrowser optimiert wurden.
Tabelle 4-41: Parameter version
4.6.3
Benachrichtigung des Shops
Nach Abwicklung einer Zahlung wird der Shop über das Ergebnis informiert
(Schritt 8 in Abschnitt „Kreditkartenzahlungen mit 3D-Secure“, S. 14). Dazu sendet der Sparkassen-Internetkasse-Server einen HTTP-Request an die in der
Händleroberfläche konfigurierte URL. Dabei werden die in den folgenden Tabellen aufgeführten CGI-Parameter übertragen.
Wichtig
Aus Sicherheitsgründen ist es zwingend erforderlich, dass Sie die Shopbenachrichtigung auswerten. Insbesondere können Sie nur aus der Shopbenachrichtigung entnehmen, ob eine erfolgreiche Zahlung stattgefunden
hat oder nicht.
Hinweis
Wenn Sie die SSL-verschlüsselte Übertragung der Shopbenachrichtigung
wünschen, benötigen Sie ein SSL-Zertifikat, das von einer anerkannten
Zertifizierungsstelle auf den Server ausgestellt wurde, den Sie in der URL
für die Shopbenachrichtigung angeben. Selbst generierte Zertifikate werden nicht akzeptiert. Sie erhalten in diesem Fall keine Shopbenachrichtigung. Sie erhalten ebenfalls keine Shopbenachrichtigung, wenn der
Servername in der URL für die Shopbenachrichtigung nicht mit dem Server übereinstimmt, für den das Zertifikat ausgestellt wurde. Das gilt z.B.
auch, wenn Sie in der URL für die Shopbenachrichtigung die IP-Adresse
statt des Servernamens angeben.
Wichtig
Wenn Ihre Shopbenachrichtigung SSL-verschlüsselt übertragen wird, testen Sie bitte nach einem Wechsel des SSL-Zertifikats, ob die Shopbenachrichtigung nach wie vor funktioniert.
Version 3.3.3
Ausgabedatum: 28.10.2010
29
Sparkassen-Internetkasse
4.6 Transaktionsdetails
Beachten Sie, dass zukünftige Versionen von Sparkassen-Internetkasse zusätzliche Parameter enthalten können.
4.6.3.1
Parameterübersicht Shopbenachrichtigung - Zahlungen
Die folgenden Tabellen geben eine Übersicht der Parameter der Shopbenachrichtigung. Bitte beachten Sie, dass nicht jede Antwortnachricht alle aufgeführten Parameter enthält bzw. einige Parameter unter Umständen keine Werte
enthalten. Beispielsweise ist der Parameter aid bei einer fehlerhaften Transaktion leer und die Parameter basketid und sessionid sind nur dann gefüllt,
wenn Sie diese Parameter in der Anfragenachricht übergeben haben.
aid
Wertebereich
ANL-32
Beispiel
a34232
Erläuterung
Genehmigungsnummer des Autorisierers
Tabelle 4-42: Parameter aid
amount
Wertebereich
ANS-10
Beispiel
22,60
Erläuterung
Betrag mit Dezimalkomma
Tabelle 4-43: Parameter amount
basketid
Wertebereich
ANLS-50
Beispiel
ba_100202
Erläuterung
Kennung des bestellten Warenkorbs oder Artikels
Tabelle 4-44: Parameter basketid
currency
Wertebereich
A3
Beispiel
EUR
Erläuterung
Der Währungscode gemäß ISO 4217.
Tabelle 4-45: Parameter currency
Version 3.3.3
Ausgabedatum: 28.10.2010
30
Sparkassen-Internetkasse
4.6 Transaktionsdetails
deliverycountry
Wertebereich
FIX
Beispiel
0
Erläuterung
Wenn in der Anfragenachricht deliverycountry angegeben wurde und deliveryaction=notify.
Mögliche Werte:
•
"0" Übereinstimmung
•
"1" keine Übereinstimmung zwischen Lieferland und Ausgabeland der Kreditkarte
•
"2" die Überprüfung war nicht möglich. (Das Ausgabeland kann nur bei Visa
und MasterCard Karten festgestellt werden.)
Tabelle 4-46: Parameter deliverycountry
directPosErrorCode
Wertebereich
N-3
Beispiel
0
Erläuterung
Dieser Parameter enthält den primären Rückgabecode des Systems, Details siehe
Tabelle 5-7, S. 59
Tabelle 4-47: Parameter directPosErrorCode
directPosErrorMessage
Wertebereich
ANSL-255
Beispiel
Genehmigung verweigert.
Erläuterung
ggf. Fehlermeldung
Tabelle 4-48: Parameter directPosErrorMessage
mac
Wertebereich
N[abcdef]40
Beispiel
0fab98c2d51992adff4732e2c5ab8599f15723e3
Erläuterung
Message Authentication Code, dient der Absicherung gegen Manipulationen der
Shopbenachrichtigung (s. Anhang, Abschnitt „MAC - Message Authentication
Code“, S. 63)
Tabelle 4-49: Parameter mac
orderid
Wertebereich
AN[-_/]-17
Beispiel
order_10123487
Erläuterung
Vorgangsnummer
Tabelle 4-50: Parameter orderid
Version 3.3.3
Ausgabedatum: 28.10.2010
31
Sparkassen-Internetkasse
4.6 Transaktionsdetails
ppan
Wertebereich
ANLS-50
Beispiel
5b6fd81b60f88b52c99ca71df555c831
Erläuterung
Pseudokartennummer für eine Kreditkarte, wenn in der Anfrage
payment_options=generate_ppan oder paymentmethod=registerpan angegeben
wurde.
Tabelle 4-51: Parameter ppan
rc
Wertebereich
N-3
Beispiel
098
Erläuterung
Dieser Parameter enthält den sekundären Rückgabecode des Payment-Systems.
Tabelle 4-52: Parameter rc
rc_avsamex
Wertebereich
FIX
Beispiel
5F
Erläuterung
Antwortcode einer American Express Adressverifizierung. "5F": Adresse und Postleitzahl sind korrekt. "5N": weder Adresse noch Postleitzahl sind korrekt. "5A": die
Adresse ist korrekt aber nicht die Postleitzahl. "5Z": die Postleitzahl ist korrekt
aber nicht die Adresse. "5U": unbekannt, Adresse und Postleitzahl wurden nicht
überprüft.
Tabelle 4-53: Parameter rc_avsamex
rc_score
Wertebereich
FIX
Beispiel
Y
Erläuterung
Ampelwert einer American Express Adressverifizerung. Folgende Werte sind möglich: G - grün, Y - yellow/gelb, R - rot, U - unbekannt. G bedeutet, numerische
Adressbestandteile und Postleitzahl sind korrekt und entspricht rc_avsamex=5F. Y
bedeutet, entweder numerische Adressbestandteile oder Postleitzahl sind korrekt
und entspricht rc_avsamex=5A oder rc_avsamex=5Z. R bedeutet, dass weder numerische Adressbestandteile noch Postleitzahl korrekt sind und entspricht
rc_avsamex=5N. U bedeutet, die Adresse konnte nicht geprüft werden und entspricht rc_avsamex=5U.
Tabelle 4-54: Parameter rc_score
Version 3.3.3
Ausgabedatum: 28.10.2010
32
Sparkassen-Internetkasse
4.6 Transaktionsdetails
retrefnum
Wertebereich
AN-32
Beispiel
316124
Erläuterung
Referenznummer vom Payment-Gateway
Tabelle 4-55: Parameter retrefnum
sessionid
Wertebereich
ANSL-255
Beispiel
Nhdz747458sNX
Erläuterung
Kennung der aktuellen Session im Onlineshop, wird für den Link zurück zum Shop
verwendet
Tabelle 4-56: Parameter sessionid
trefnum
Wertebereich
AN[-_/]-20
Beispiel
order_10123487_01
Erläuterung
Sparkassen-Internetkasse Transaktionsnummer
Tabelle 4-57: Parameter trefnum
4.6.3.2
Parameterübersicht Shopbenachrichtigung - Pseudokartennummer
registrieren
Wenn Sie eine Pseudokartennummer unabhängig von einer Zahlung registrieren, enthält die Antwort ebenfalls die im vorigen Abschnitt aufgeführeten Parameter. Allerdings enthalten einige Parameter der Antwortnachricht keine
Werte. In diesem Fall sind folgende Parameter relevant: directPosErrorCode,
directPosErrorMessage, mac, ppan und ggf. sessionid. Zusätzlich zu den im im
vorigen Abschnitt aufgeführeten Parametern enthält die Shopbenachrichtigung
bei der Registrierung einer Pseudokartennummer folgende Felder:
cardholder
Wertebereich
ANLS-255
Beispiel
Otto Müller
Erläuterung
Name des Karteninhabers, sofern dieser bei der Registrierung angegeben wurde.
Tabelle 4-58: Parameter cardholder
Version 3.3.3
Ausgabedatum: 28.10.2010
33
Sparkassen-Internetkasse
4.6 Transaktionsdetails
creditc
Wertebereich
N[*]-16
Beispiel
411111******1111
Erläuterung
Maskierte Kreditkartennummer
Tabelle 4-59: Parameter creditc
expdat
Wertebereich
N4
Beispiel
1304
Erläuterung
Das Ablaufdatum einer Kreditkarte im Format JJMM. Die ersten beiden Stellen bezeichnen das Ablaufjahr der Karte. Die letzten beiden Stellen bezeichnen den Ablaufmonat.
Tabelle 4-60: Parameter expdat
txn_card
Wertebereich
ANSL-255
Beispiel
VISA
Erläuterung
Markenname der Kreditkarte.
Tabelle 4-61: Parameter txn_card
4.6.3.3
Antwortnachricht
Auf diese Nachricht erwartet der Sparkassen-Internetkasse-Server eine Bestätigung vom Onlineshop, andernfalls wird dem Kunden eine Fehlermeldung
angezeigt.
Die Antwort auf eine Benachrichtigung ist ein URL-kodiertes Dokument, das
lediglich eine Textzeile (keine HTML-Tags, etc.) im Format Parameter=Wert enthält. Verwenden Sie den Parameter rurls, um dem Kunden die Erfolgsseite
anzeigen zu lassen oder rurlf, wenn Sie die Fehlerseite anzeigen lassen wollen.
Weisen Sie dem Parameter als Wert eine URL zu. Diese wird dem Kunden auf
der Ergebnisseite als Link dargestellt.
Statt dem Kunden die Sparkassen-Internetkasse-Erfolgs- oder Fehlerseite anzeigen zu lassen, können Sie Sparkassen-Internetkasse auch veranlassen, dem
Kunden einen HTTP-Redirect zu Ihrer eigenen Erfolgs- oder Fehlerseite zu senden. Verwenden Sie dazu für die Erfolgsseite statt rurls den Parameter redirecturls, für die Fehlerseite redirecturlf statt rurlf.
Beachten Sie, dass auch eine erfolgreich abgewickelte Zahlung einen Fehler
enthalten kann. Beispielsweise wäre es möglich, dass der übermittelte mac-Parameter nicht mit dem berechneten Parameter übereinstimmt. In solchen Fällen
sollte die Rückmeldung über einen Fehler berichten. Die Zahlung wird anschlie-
Version 3.3.3
Ausgabedatum: 28.10.2010
34
Sparkassen-Internetkasse
4.6 Transaktionsdetails
ßend nicht automatisch storniert. Stornieren Sie in diesem Fall die Zahlung
manuell über die Händleroberfläche.
Ob dem Kunden eine Erfolgs- oder Fehlermeldung angezeigt wird, hängt vom
Parameter ab, den die URL enthält.
Die Antwort auf eine Benachrichtigung sollte innerhalb von 30 Sekunden erfolgen.
Parameterübersicht Antwortnachricht
redirecturlf
Wertebereich
ANS-255
Beispiel
http://www.myshop.com/formentry_failed.html
Erläuterung
Gibt an, dass die Zahlung fehlerhaft beendet wurde. Enthält eine URL. SparkassenInternetkasse sendet einen Redirect zur angegebenen URL an den Browser des
Kunden.
Tabelle 4-62: Parameter redirecturlf
redirecturls
Wertebereich
ANS-255
Beispiel
http://www.myshop.com/formentry_failed.html
Erläuterung
Kennzeichnet eine Zahlung als erfolgreich. Enthält eine URL. Sparkassen-Internetkasse sendet einen Redirect zur angegebenen URL an den Browser des Kunden.
Tabelle 4-63: Parameter redirecturls
rurlf
Wertebereich
ANS-255
Beispiel
http://www.myshop.com/formentry_failed.html
Erläuterung
Gibt an, dass die Zahlung fehlerhaft beendet wurde. Enthält eine URL. Die Sparkassen-Internetkasse-Fehlerseite wird angezeigt.
Tabelle 4-64: Parameter rurlf
rurls
Wertebereich
ANS-255
Beispiel
http://www.myshop.com/cgi-bin/auth_formdata
Erläuterung
Kennzeichnet eine Zahlung als erfolgreich. Enthält eine URL. Dem Kunden wird
die Sparkassen-Internetkasse-Erfolgsseite angezeigt.
Tabelle 4-65: Parameter rurls
Version 3.3.3
Ausgabedatum: 28.10.2010
35
Sparkassen-Internetkasse
4.7 Anpassung der Formulare
Beispiel
Eine Antwortnachricht könnte wie folgt gestaltet sein:
Listing 4-2
rurls=http://www.myshop.com/cgi-bin/shopres?sid=2347286yqwq6
4.7 Anpassung der Formulare
Sie können das Erscheinungsbild der Formulare mit Hilfe eines Cascading Stylesheets beeinflussen. Die URL des Stylesheets können Sie entweder in der
Händleroberfläche konfigurieren oder in der Anfragenachricht im Parameter
cssurl angeben. Bitte beachten Sie, dass dieses Stylesheet sowohl für die Fomulare zur Eingabe der Zahlungsdaten (Kreditkarte und Lastschrift), als auch für
die Erfolgs- und Fehlerseite verwendet wird. Der HTML-Code der Formulare
besteht aus div-Elementen und Standard-Tags wie body oder form.
Auf dem Test- und Produktivsystem stehen Ihnen bereits CSS-Dateien mit den
im folgenden genannten URLs zur Verfügung.
Testsystem, Formular mit Schriftzug "S-Internetkasse":
https://testsystem.sparkassen-internetkasse.de/vbv/resource/style/1.5/sik/style.css
Produktivsystem, Formular mit Schriftzug "S-Internetkasse":
https://system.sparkassen-internetkasse.de/vbv/resource/style/1.5/sik/style.css
Testsystem, Formular ohne Schriftzug "S-Internetkasse":
https://testsystem.sparkassen-internetkasse.de/vbv/resource/style/1.5/neutral/style.css
Produktivsystem, Formular ohne Schriftzug "S-Internetkasse":
https://system.sparkassen-internetkasse.de/vbv/resource/style/1.5/neutral/style.css
Die CSS-Datei mit Schriftzug "S-Internetkasse" existiert außerdem in einer Variante für die für Smartphones optimierten Formulare. Ersetzen Sie dazu in der
URL die Versionsangabe "1.5" durch "1.5m".
Die Formulare werden durch geschachtelte div-Elemente strukturiert, die entweder mit einer id oder einem class-Attribut versehen sind:
Version 3.3.3
Ausgabedatum: 28.10.2010
36
Sparkassen-Internetkasse
4.7 Anpassung der Formulare
Abbildung 4-3: Aufbau des Popup-Fensters
Die Bezeichner für ids und class-Attribute entnehmen sie bitte obiger Abbildung. Die für das Apple iPhone und andere Smartphones mit WebKit basiertem
Webbrowser optimierten Formulare weisen ebenfalls den oben dargestellten
Aufbau auf, benötigen jedoch ein eigenes Stylesheet. Verwenden Sie die folgenden Stylesheets als Grundlage für Ihre Anpassungen. Die Bezeichner der
Styles dürfen nicht verändert werden.
Version 3.3.3
Ausgabedatum: 28.10.2010
37
Sparkassen-Internetkasse
4.7 Anpassung der Formulare
Standard (Version 1.5)
Listing 4-3
/* comment in for debugging */
/*div {
border : 1px solid red !important;
padding : 2px !important;
margin : 0 3 3 0 !important;
}*/
body, img, form, input.submit {
padding : 0px;
margin : 0px;
border : 0px;
}
body, img, input, select, option {
font-family : helvetica, "Liberation Sans", Arial;
font-size : 12px;
line-height : 16px;
color : #17294c;
}
body {
background : url("sprite-repeat-x.png") #6f81a6 repeat-x;
}
a, a:link, a:visited, a:hover, a:active, a:focus {
color : #0055ff;
}
/* settings for cvc help popup */
body.popup {
background : #ffffff;
margin : 12px;
}
body.popup div.pageheading {
font-size : 17px;
line-height : 36px;
font-weight : bold;
}
body.popup div.section div.heading {
margin-top : 12px;
line-height : 24px;
font-weight : bold;
}
/* settings for regular form service window */
#bound {
width : 560px;
min-height : 560px;
margin : auto;
}
* html * #bound { /* IE6 only match */
height : 560px;
}
Version 3.3.3
Ausgabedatum: 28.10.2010
38
Sparkassen-Internetkasse
4.7 Anpassung der Formulare
#topleft, #middleleft, #bottomleft {
clear : left;
}
#topleft, #topcenter, #topright ,
#bottomleft, #bottomcenter, #bottomright ,
#heading, #messagebox, div.panel ,
input.submit {
background : url("sprite-no-repeat.png") #f0f0f0 no-repeat;
}
#middleleft, #middlecenter, #middleright {
background : url("sprite-repeat-y.png") #f0f0f0 repeat-y;
}
#topleft, #topcenter, #topright {
height : 128px;
}
#content {
min-height : 192px;
}
* html * #content { /* IE6 only match */
height : 192px;
}
#bottomleft, #bottomcenter, #bottomright {
height : 64px;
}
#topcenter, #middlecenter, #bottomcenter {
margin-right : 32px; /* width of right column */
}
#topright, #middleright, #bottomright {
margin-left : 48px; /* width of left column */
}
#topleft {
background-position : left 0px;
}
#topcenter {
background-position : -48px 0px;
}
#topright {
background-position : right 0px;
}
#middleleft {
background-position : left 0px;
}
#middlecenter {
Version 3.3.3
Ausgabedatum: 28.10.2010
39
Sparkassen-Internetkasse
4.7 Anpassung der Formulare
background-position : -48px 0px;
}
#middleright {
background-position : right 0px;
}
#bottomleft {
background-position : left bottom;
}
#bottomcenter {
background-position : -48px bottom;
}
#bottomright {
background-position : right bottom;
}
#header {
height : 80px;
}
#header img {
float : left;
margin-right : 17px;
}
#heading ,
input.submit {
font-weight : bold;
color : #f0f0f0;
background-color : #465165;
}
#heading {
background-position : -48px -208px;
}
#heading div ,
div.panel div {
display : inline; /* fix IE6 double margin bug */
float : left;
margin-left : 16px;
padding-top :7px;
}
#heading ,
div.panel {
width : 464px;
}
#heading ,
div.panel {
height : 32px;
}
#messagebox {
height : 80px;
Version 3.3.3
Ausgabedatum: 28.10.2010
40
Sparkassen-Internetkasse
4.7 Anpassung der Formulare
background-position : -48px -320px;
}
#messagebox div {
padding-top : 16px;
margin-right : 32px;
margin-left : 80px;
}
#messagebox.error {
color : #f0f0f0;
background-color : #e65c5c;
background-position : -48px -240px;
}
div.panel {
overflow : hidden;
background-color : #a1a7b2;
background-position : -48px -400px;
}
div.panel.error {
color : #f0f0f0;
background-color : #e65c5c;
background-position : -48px -432px;
}
div.error div.message {
margin-left : 36px;
}
div.panel div.caption {
width : 160px;
}
div.panel div.value {
width : 256px;
}
div.panel div.caption ,
div.panel div.value {
overflow : hidden;
}
form ,
#buttons {
margin-top : 16px;
}
div.panel div.value input {
width : 112px;
height : 14px;
line-height : 14px;
background : #f0f0f0;
position : relative;
top : -2px;
}
input.submit {
display : table-cell;
Version 3.3.3
Ausgabedatum: 28.10.2010
41
Sparkassen-Internetkasse
4.7 Anpassung der Formulare
vertical-align : top;
width : 144px;
height : 32px;
background-position : -48px -464px;
border : 0px solid transparent;
}
#footer {
margin-top : 16px;
height : 48px;
}
#footer img ,
#footer a {
margin-right : 16px;
}
#footer a img {
margin-right : 0px;
}
Smartphones (Version 1.5m)
Listing 4-4
body, img, form, input.submit {
padding : 0px;
margin : 0px;
border : 0px;
}
body, img, input, select, option {
font-family : "Helvetica Neue", "Helvetica", "Liberation Sans", "Arial";
font-size : 17px;
color : #00498f;
}
body {
background : url("back.png") #f8f8f8;
}
div {
overflow : hidden;
}
a, a:link, a:visited, a:hover, a:active, a:focus {
color : #0055ff;
}
#messagebox.error div
#messagebox.error div
#messagebox.error div
#messagebox.error div
#messagebox.error div
#messagebox.error div
color : #ffffff;
}
a,
a:link,
a:visited,
a:hover,
a:active,
a:focus {
/* settings for cvc help popup */
Version 3.3.3
Ausgabedatum: 28.10.2010
42
Sparkassen-Internetkasse
4.7 Anpassung der Formulare
body.cvc2 {
font-size : 17px;
background : #ffffff;
margin-top : 0px;
margin-bottom : 11px;
margin-left : 10px;
margin-right : 10px;
color : #000000;
}
body.cvc2 div.contenttitle {
line-height : 22px;
padding-top : 11px;
padding-bottom : 11px;
font-weight : bold;
color : #00498f;
border-bottom : 2px solid #00498f;
}
body.cvc2 div.cvc2-outerbox div.cvc2-title {
margin-top : 22px;
line-height : 22px;
font-weight : bold;
color : #405080;
}
/* settings for regular form service window */
#bound {
width : 100%;
}
#topleft, #middleleft, #bottomleft {
clear : left;
}
#topcenter,
input.submit {
background : url("sprite-no-repeat.png") no-repeat;
}
#topright,
div.panel-left,
div.panel-right,
div.panel-center,
#footer {
background : url("sprite-repeat.png");
}
div.panel-left,
div.panel-right {
background-repeat : no-repeat;
}
#topleft, #topcenter, #topright {
height : 44px;
}
#heading {
font-weight : bold;
color : #789dc0;
Version 3.3.3
Ausgabedatum: 28.10.2010
43
Sparkassen-Internetkasse
4.7 Anpassung der Formulare
}
#content {
margin-left : 3.125%;
margin-right : 3.125%;
}
#header ,
#bottomleft, #bottomcenter, #bottomright {
height : 0px;
visibility : hidden;
}
#topleft {
background-color : #ffffff;
}
#topcenter {
margin-left : 3.125%;
background-position : -10px 0px;
}
input.submit {
font-weight : bold;
color : #f0f0f0;
}
#heading {
background-position : -48px -208px;
}
#heading div {
margin-left : 3.125%;
}
#heading div ,
div.panel-center div ,
div.panel div {
line-height : 44px;
float : left;
}
#heading ,
div.panel ,
div.panel-center {
min-height : 44px;
}
#messagebox {
width : 100%;
background-color : #ffffff;
background: -webkitgradient(linear, left top, left bottom, from(#e8e8e8), to(#ffffff));
margin-bottom : 11px;
}
#messagebox div {
padding-top : 11px;
padding-bottom : 11px;
margin-left : 3.125%;
Version 3.3.3
Ausgabedatum: 28.10.2010
44
Sparkassen-Internetkasse
4.7 Anpassung der Formulare
margin-right : 3.125%;
line-height : 22px;
height : 88px;
}
div.panel-left.error div.panel-right div.panel-center ,
#messagebox.error {
background-color : #c80751;
}
div.panel-left.error ,
#messagebox.error {
color : #f0d0dc;
}
#messagebox.error {
background: -webkitgradient(linear, left top, left bottom, from(#de6a96), to(#c80751));
}
div.panel-center {
background-color : #ffffff;
margin-right : 3.333%;
}
div.panel-right {
margin-left : 3.333%;
}
/* first panels */
div.panel-left.first {
background-position : left -264px;
}
div.panel-left.first div.panel-right {
background-position : right -264px;
}
div.panel-left.first div.panel-right div.panel-center {
background-position : 0px -308px;
}
/* first panels for error messages */
div.panel-left.error.first {
background-position : left -44px;
}
div.panel-left.error.first div.panel-right {
background-position : right -44px;
}
div.panel-left.error.first div.panel-right div.panel-center {
background-position : 0px -88px;
}
/* standard panels */
div.panel-left {
background-position : left -352px;
}
Version 3.3.3
Ausgabedatum: 28.10.2010
45
Sparkassen-Internetkasse
4.7 Anpassung der Formulare
div.panel-right {
background-position : right -352px;
}
div.panel-center {
background-position : 0px -308px;
}
/* standard panels for error messages */
div.panel-left.error {
background-position : left -176px;
}
div.panel-left.error div.panel-right {
background-position : right -176px;
}
div.panel-left.error div.panel-right div.panel-center {
background-position : 0px -88px;
}
/* last panels */
div.panel-left.last {
background-position : left -440px;
}
div.panel-left.last div.panel-right {
background-position : right -440px;
}
div.panel-left.last div.panel-right div.panel-center{
background-position : 0px -396px;
}
/* some special handling for message boxes */
div.panel-left.error div.panel-right div.panel-center div.message {
overflow : visible;
white-space : normal;
margin-top : 11px;
line-height : 22px;
margin-bottom : 11px;
}
div.caption {
font-weight : bold;
width : 34%;
}
div.value {
margin-left : 3.333%;
width : 62%;
}
div.caption ,
div.value {
white-space : nowrap;
}
div.caption:after {
Version 3.3.3
Ausgabedatum: 28.10.2010
46
Sparkassen-Internetkasse
4.8 Konfiguration Ihres Zugangs
content : ":";
}
input.submit {
margin-top : 11px;
display : block;
clear:both;
width : 300px;
height : 44px;
line-height : 44px;
background-position : -11px -44px;
border : 0px solid transparent;
}
#footer {
background-color : #ffffff;
background-position : 0px -484px;
margin-top : 11px;
padding-top : 11px;
padding-bottom : 11px;
padding-left : 3.125%;
padding-right : 3.125%;
height : 44px;
}
#footer img {
margin-right : 3.125%;
}
#footer a img {
margin-top : 7px;
margin-right : 0px;
}
4.8 Konfiguration Ihres Zugangs
4.8.1
Kartenprüfnummer
Die Kartenprüfnummer erscheint als Eingabefeld im Formular zur Eingabe der
Kreditkartendaten. Die Kartenprüfnummer ist ein zusätzlicher Sicherheitsmechanismus und erhöht die Gewähr, dass die Kreditkarte dem Kunden auch tatsächlich vorliegt. Bei Visa und MasterCard umfasst die Kartenprüfnummer die
letzten drei Ziffern auf dem Unterschriftsfeld auf der Rückseite der Kreditkarte.
Bei American Express steht entweder eine 4-stellige Kartenprüfnummer über
der Kartennummer auf der Vorderseite der Kreditkarte oder wie bei Visa und
MasterCard eine 3-stellige Kartenprüfnummer auf der Rückseite der Karte.
In der Standardkonfiguration Ihres Zugangs ist die Eingabe der Kartenprüfnummer optional. D.h. wenn ein Kunde die Kartenprüfnummer nicht eingibt, wird
die Zahlung dennoch akzeptiert. Wenn Sie die Kartenprüfnummer zum Pflichtfeld machen wollen, wenden Sie sich an den Kundensupport, um Ihre Konfiguration anzupassen.
Version 3.3.3
Ausgabedatum: 28.10.2010
47
Sparkassen-Internetkasse
4.8 Konfiguration Ihres Zugangs
Hinweis
Bitte beachten Sie auch die Regelungen im Vertrag mit Ihrem Kreditkarten-Acquirer. Möglicherweise sind Sie verpflichtet, die Kartenprüfnummer zu übermitteln. Achten Sie in diesem Fall darauf, dass Ihr Zugang
entsprechend konfiguriert ist.
4.8.2
Warenkorbnummer
Die Warenkorbnummer können Sie als optionalen Parameter basketnr bei Ihren
Anfragen an Sparkassen-Internetkasse übergeben.
Die Weiterleitung der Warenkorbnummer bietet einen optimalen Bezug zwischen dem Bezahlvorgang im Shop, der Gutschrift auf dem Händlerkonto und
der Belastung des Kundenkontos. Dies erleichtert Ihnen die Zuordnung von
Rücklastschriften und die Bearbeitung von Nachfragen Ihrer Kunden zu
Buchungen.
Die Warenkorbnummer wird, wenn nicht anders vereinbart, als Verwendungszweck auf dem Kontoauszug Ihrer Kunden angezeigt und erscheint bei Kreditkartentransaktionen auf Ihrer Händler-Abrechnung. Bei Lastschriften wird die
Warenkorbnummer auch auf Ihrem Kontoauszug angezeigt, wenn die Übermittlung von Einzelgutschriften vereinbart wurde.
Wenn Sie die Anzeige von Einzelgutschriften auf Ihrem Kontoauszug wünschen, vereinbaren Sie dies bitte mit dem zuständigen Lizenznehmer.
Für die Weiterleitung der Warenkorbnummer bei Kreditkarten-Transaktionen
gelten folgende Formate für den Parameter basketnr:
Kreditkartenprozessor
Format
Beispiel
American Express
N-9
012345678
B+S Card Service
AN-30
my123ref
Elavon
AN-30
my123ref
ConCardis
AN-30
my123ref
Lufthansa AirPlus
AN-30
my123ref
P.O.S. Transact
AN-30
my123ref
Tabelle 4-66: Format für den Parameter basketnr bei der Weiterleitung der Warenkorbnummer - Kreditkarte
Bei Lastschriften sind bis zu 50 der im Datenträgeraustausch-Format (DTAUSFormat) festgelegten Zeichen möglich, also Buchstaben (mit den Umlauten Ä,
Ö, Ü sowie ß), Ziffern, Leerzeichen, ".", ",", "&", "-", "+", "*", "%", "/", "$".
Version 3.3.3
Ausgabedatum: 28.10.2010
48
Sparkassen-Internetkasse
4.9 FAQ
4.9 FAQ
F:
A:
Warum wird mein Shop von Sparkassen-Internetkasse nicht über den Zahlungsausgang informiert?
Sollte Ihr Shopsystem keine Nachricht von Sparkassen-Internetkasse erhalten,
überprüfen Sie bitte, dass die URL für die Shopbenachrichtigung richtig konfiguriert ist. Wichtig ist außerdem, dass diese URL von einem Rechner aus dem
Internet erreichbar ist und nicht durch ein Firewall-System geschützt ist.
Falls Sie eine mit "https:" beginnende URL konfiguriert haben, wird möglicherweise das SSL-Zertifikat vom Sparkassen-Internetkasse-Server nicht akzeptiert
(z.B. ein selbst erzeugtes Zertifikat). Eventuell wurde das Zertifikat auch auf
einen anderen Server als den in der URL angegebenen ausgestellt. Dies tritt bei
HTTPS-Verbindungen auch auf, wenn in der URL für die Shopbenachrichtigung
die IP-Adresse anstatt des Servernamens eingetragen wird.
F:
A:
Was muss ich bei der Umstellung vom Test- auf das Produktivsystem beachten?
Auf dem Sparkassen-Internetkasse-Produktivsystem muss die URL für die Shopbenachrichtigung konfiguriert sein. Für die MAC-Berechnung muss das SSL-Passwort konfiguriert sein.
Auf Shopseite ist die Sparkassen-Internetkasse URL anzupassen, ggf. auch die
Händlerkennung (Feld 'sslmerchant').
F:
A:
Darf ich die Notification-Response auch in HTML-Code einbetten?
Nein, die Antwort muss mit dem Text rurlf= bzw. rurls= beginnen.
F:
Was passiert, wenn ein Kunde versucht mit einer Visa Karte oder MasterCard zu zahlen, die nicht für Verified by Visa oder MasterCard SecureCode
registriert ist?
Es findet in der Regel ein Liability Shift statt (s. unten).
A:
F:
A:
Version 3.3.3
Was heißt Liability Shift?
Liability Shift bedeutet Haftungsumkehr: Bei strittigen Transaktionen garantiert
Liability Shift dem Händler die Haftungsumkehr zu seinen Gunsten. Das Risiko
einer Rückbelastung geht auf die Kundenbank über. Einen Anspruch auf diese
Haftungsumkehr erwirbt der Händler durch den Einsatz einer von Visa zertifizierten Software, wie der CCS, unabhängig davon, wie der Kunde seine Zahlung
autorisiert hat. Je nach Acquirer kann es jedoch Einschränkungen dieser Haftungsumkehr geben. Fragen Sie deshalb Ihren Kreditkarten-Acquirer zu Einzelheiten der Haftungsumkehr.
Ausgabedatum: 28.10.2010
49
Sparkassen-Internetkasse
5
5.1 Testdaten
Anhang
5.1 Testdaten
5.1.1
Testdaten für Zahlungstransaktionen
Für die Tests der Funktionalität während der Integration von Sparkassen-Internetkasse stehen Testdaten zur Verfügung. Verwenden Sie diese Testdaten nur
auf dem Testsystem. Dort werden die Zahlungen nur simuliert. Generell werden
nur Zahlungen mit gültigen Währungen akzeptiert. Nutzen Sie bitte für Testzahlungen ganzzahlige Beträge unter 100 Euro.
Kreditkarten-Zahlungen
Wichtig
Im Testsystem werden Kreditkartenzahlungen abgewiesen, wenn CentBeträge eingereicht werden. Dabei wird im Feld rc als Rückgabewert der
eingereichte Cent-Betrag gesetzt.
Hinweis
Bitte verwenden Sie für Tests keine echten Kreditkartendaten!
Für Tests von Kreditkartenzahlungen stehen die in der folgenden Tabelle aufgeführten Kartennummern zur Verfügung. Nutzen sie für erfolgreiche Zahlungen
ein Gültigkeitsdatum, das in der Zukunft liegt. Die Kartenprüfnummer wird auf
dem Testsystem nicht überprüft. Sie können eine beliebige 3-stellige, bei American Express Karten auch 4-stellige, Zahl eingeben.
Visa
4111111111111111
MasterCard
5232050000010003
American Express
378282246310005
Tabelle 5-1: Testdaten für Kreditkartenzahlungen
Für Verified by Visa oder MasterCard SecureCode sehen Visa und MasterCard
zur Zeit keine Testzahlungen vor.
American Express Adressverifizierung
Für Tests der American Express Adressverifizierung können sie die Kartennummer 375000000000007 mit einem beliebigen Verfallsdatum in der Zukunft
zusammen mit folgenden Adressen und Kartenprüfnummern verwenden. Jeder
Testdatensatz besteht aus Kartenprüfnummer (Parameter cvcode), Postleitzahl
Version 3.3.3
Ausgabedatum: 28.10.2010
50
Sparkassen-Internetkasse
5.1 Testdaten
(customer_addr_zip), Ort (customer_addr_city), Straße (customer_addr_street)
und Hausnummer (customer_addr_number).
Kartenprüfnummer
Postleitzahl
Ort
Straße
Hausnummer
9900
29617
Testort an der Lahn
Teststaedter Hauptstrasse
345
8811
02139
Testhausen
Musterallee
121 a
5544
61130
Karben-Rendel
Aussenbezirk
4455
A-1049
Wiener Neustadt
Musterstaedter Gasse
19 b
0099
W14 4WW
London
Downing Street
11
Tabelle 5-2: Testdaten für American Express Adressverifizierung
Wenn Sie einen der genannten Testdatensätze verwenden, erhalten Sie auf
dem Testsystem als Ergebnis der simulierten Adressverifizierung rc_avsamex=5F
und rc_score=G. Das Ändern der Hausnummer führt zu rc_avsamex=5Z und
rc_score=Y. Eine Änderung der Postleitzahl führt zu rc_avsamex=5A und
rc_score=Y. Wenn Sie eine andere Postleitzahl und eine andere Huasnummer
verwenden, erhalten Sie rc_avsamex=5N und rc_score=R. Wenn Sie eine falsche
Kartenprüfnummer angeben, wird die Transaktion nicht genehmigt und Sie
erhalten unabhängig von den übergebenen Adressdaten rc_avsamex=5U und
rc_score=R.
Prüfung des Ausgabelandes einer Kreditkarte
Um die Überprüfung des Ausgabelandes einer Kreditkarte zu testen, stehen
Ihnen für die Parameter acceptcountries und rejectcountries folgende Werte
zur Verfügung.
Länderkürzel
Erklärung
v+
nur Visa Karten
v-
keine Visa Karten
Tabelle 5-3: Länderkürzel für Testzwecke
Lastschrift
Für Tests von Lastschriftzahlungen stehen die in der folgenden Tabelle aufgeführten Bankverbindungen zur Verfügung. Eine Prüfung der Cent-Beträge wie
bei Kreditkartenzahlungen besteht für Lastschriftzahlungen nicht.
Die erste Bankverbindung enthält eine ungültige Bankleitzahl. Bei Testzahlungen erhalten Sie den Rückgabewert rc=884.
Kontonummer
1234567890
Bankleitzahl
12345677
Tabelle 5-4: Testdaten für Lastschriftzahlungen - ungültige Bankleitzahl
Version 3.3.3
Ausgabedatum: 28.10.2010
51
Sparkassen-Internetkasse
5.2 Ergebnismeldungen / Antwort-Nachrichten
Bei Zahlungen mit der in der folgenden Tabelle angegebenen Bankleitzahl wird
die Kontonummer nicht geprüft, die Zahlungen werden akzeptiert.
Kontonummer
1234567890
Bankleitzahl
12345678
Tabelle 5-5: Testdaten für Lastschriftzahlungen - Jede Kontonummer gültig
Bei Zahlungen mit der in der folgenden Tabelle angegebenen Bankleitzahl wird
die Kontonummer geprüft, eine Zahlung mit der unten angegebenen Kontonummer wird abgewiesen. Sie erhalten den Rückgabewert rc=883. Eine gültige
Kontonummer für diese Bankleitzahl ist 1212121212.
Kontonummer
1212121211
Bankleitzahl
12345679
Tabelle 5-6: Testdaten für Lastschriftzahlungen - Falsche Kontonummer für gültige BLZ
5.2 Ergebnismeldungen / Antwort-Nachrichten
5.2.1
Sparkassen-Internetkasse Meldungen
In der folgenden Tabelle finden Sie Erläuterungen für die Rückgabewerte des
Feldes posherr (Shopschnittstelle) bzw. directPosErrorCode (Formularservice).
In der ersten Spalte finden Sie den Rückgabewert. Die zweite Spalte enthält die
Bedeutung dieses Wertes. Die dritte Spalte gibt Hinweise, wie das Händlersystem auf diesen Rückgabewert reagieren sollte.
Beachten Sie bei der Weiterverarbeitung dieser Meldungen im Shopsystem,
dass diese nicht für die unmittelbare Weitergabe an den bestellenden Kunden
gedacht sind. Ggf. sollten vereinfachte Meldungen wie Genehmigt, Genehmigung abgelehnt oder Zur Zeit keine Verarbeitung möglich an den Kunden geleitet werden. Für die Ausstellung eines ordnungsgemäßen Beleges nutzen Sie
bitte die Belegfunktion von Sparkassen-Internetkasse.
Falsch kann auch bedeuten, dass der entsprechende Wert leer oder nicht vorhanden ist.
Version 3.3.3
Ausgabedatum: 28.10.2010
52
Sparkassen-Internetkasse
Version 3.3.3
5.2 Ergebnismeldungen / Antwort-Nachrichten
Ergebniswert
Bedeutung
Reaktion
0
Transaktion erfolgreich abgeschlossen
Eintrag des Ergebnisses in die Datenbank bzw.
das Shopsystem.
100
Transaktion mit dem PaymentGateway ohne Erfolg abgeschlossen.
Für die weitere Verarbeitung der Anfrage ist die
Analyse des vom Gateway erhaltenen Errorcodes
(Feld rc) ausschlaggebend.
102
Zeitüberschreitung
Der Shop darf keine weitere Transaktion mit dieser Vorgangsnummer durchführen, um Doppelbuchungen zu vermeiden. Der zugrundeliegende
Geschäftsprozess sollte die Zahlung als nicht
durchgeführt betrachten. Der Zustand dieser
Transaktion am Gateway ist unbekannt. Der
Händler sollte in diesem Falle den Support-Mitarbeiter um Klärung bitten. Ist die Transaktion auf
dem Gateway erfolgreich abgeschlossen worden,
wird die Zahlung vom Support-Mitarbeiter storniert.
103
Transaktion mit eScore ohne Erfolg abgeschlossen.
Für die weitere Verarbeitung der Anfrage ist die
Analyse des vom Gateway erhaltenen Errorcodes
(Feld rc) ausschlaggebend.
104
POA-Transaktion ohne Erfolg abgeschlossen.
Für die weitere Verarbeitung der Anfrage ist die
Analyse des vom Gateway erhaltenen Errorcodes
(Feld rc) ausschlaggebend.
106
Keine Transaktion unter dieser
trefnum.
Es ist zu untersuchen, ob die angegebene Transaktionsreferenznummer wirklich einer Vorgängertransaktion entspricht. Ist dies der Fall, sollte
der Support zur Klärung kontaktiert werden.
107
Keine Transaktion unter dieser
Vorgangsnummer.
Es ist zu untersuchen, ob die angegebene Vorgangsnummer wirklich einer Vorgängertransaktion entspricht. Ist dies der Fall, sollte der Support
zur Klärung kontaktiert werden.
108
Vorgangsnummer schon vergeben.
Wählen Sie für jede Transaktion eine eindeutige
Vorgangsnummer.
118
Ungültiger Betrag für Rückerstattung oder Buchung
Überprüfen Sie den übergebenen Betrag und vergleichen Sie ihn mit dem Betrag der Vorgängertransaktion.
133
Karte abgelaufen
Der Shop sollte wenn möglich den Kunden zur
Korrektur der eingegebenen Kreditkartendaten
auffordern und die Transaktion erneut einreichen.
141
Kartentyp ist vom Händler nicht
akzeptiert.
Weisen Sie den Kunden auf die möglichen Kreditkartentypen hin. Sollte der Fehler nicht durch die
Kundeneingaben hervorgerufen werden, melden
Sie sich bitte bei Ihrem Support-Mitarbeiter zur
Klärung.
Ausgabedatum: 28.10.2010
53
Sparkassen-Internetkasse
Version 3.3.3
5.2 Ergebnismeldungen / Antwort-Nachrichten
Ergebniswert
Bedeutung
Reaktion
151
Ungültige Antwortnachricht
Führen Sie keine weitere Transaktion mit dieser
Vorgangsnummer durch, um Doppelbuchungen
zu vermeiden. Der zugrundeliegende Geschäftsprozess sollte die Zahlung als nicht durchgeführt
betrachten. Der Zustand dieser Transaktion am
Gateway ist unbekannt. Bitten Sie Kunden-Support um Klärung. Ist die Transaktion auf dem
Gateway erfolgreich abgeschlossen worden, wird
die Zahlung vom Support-Mitarbeiter storniert.
156
Parameter orderid falsch.
Überprüfen Sie den Inhalt des Parameters orderid
und vergleichen Sie dessen Format mit der Dokumentation.
157
Parameter creditc falsch.
Überprüfen Sie den Inhalt des Parameters creditc
und vergleichen Sie dessen Format mit der Dokumentation. Weisen Sie ggf. Ihren Kunden auf die
Fehleingabe hin und bieten Sie eine Korrektur des
Wertes an.
158
Parameter expdat falsch.
Überprüfen Sie den Inhalt des Parameters expdat
und vergleichen Sie dessen Format mit der Dokumentation. Weisen Sie ggf. Ihren Kunden auf die
Fehleingabe hin und bieten Sie eine Korrektur des
Wertes an. Bieten Sie dem Kunden Auswahlfelder
an, um Fehleingaben zu vermeiden.
159
Parameter currency falsch.
Überprüfen Sie den Inhalt des Parameters currency und vergleichen Sie dessen Format mit der
Dokumentation. Für Lastschriften muss die Währung EUR lauten. Weisen Sie ggf. Ihren Kunden
auf die Fehleingabe hin und bieten Sie eine Korrektur des Wertes an. Bieten Sie dem Kunden eine
Auswahl der möglichen Währungen an, um Fehleingaben zu vermeiden.
160
Parameter amount falsch.
Überprüfen Sie den Inhalt des Parameters amount
und vergleichen Sie dessen Format mit der Dokumentation.
162
Parameter trefnum falsch.
Überprüfen Sie den Inhalt des Parameters trefnum
und vergleichen Sie dessen Format mit der Dokumentation.
165
Unzulässiger Parameter
Überprüfen Sie die in der Anfragenachricht übergebenen Parameter und vergleichen Sie diese mit
den in der Dokumentation beschriebenen Pflichtparametern.
166
Parameter command falsch.
Überprüfen Sie den Inhalt des Parameters command
und vergleichen Sie dessen Format mit der Dokumentation.
172
Zugriff verweigert.
Melden Sie sich bitte bei Ihrem Support-Mitarbeiter zur Klärung, wenn diese Antwort mehrmals
auftritt.
Ausgabedatum: 28.10.2010
54
Sparkassen-Internetkasse
Version 3.3.3
5.2 Ergebnismeldungen / Antwort-Nachrichten
Ergebniswert
Bedeutung
Reaktion
186
Zugrundeliegende Transaktion
bereits gebucht, storniert oder
abgeschlossen.
Prüfen Sie, ob Sie versehentlich versucht haben,
die Transaktion zweimal durchzuführen.
197
Ungültige Anfrage
Implementieren Sie die Schnittstelle entsprechend der Dokumentation. Sollten Sie das Problem nicht beheben können, wenden Sie sich an
Ihren Support-Mitarbeiter.
198
System vorübergehend außer
Betrieb.
Melden Sie sich bitte bei Ihrem Support-Mitarbeiter zur Klärung, wenn diese Antwort mehrmals
auftritt.
199
System-Fehler
Der Zustand dieser Transaktion am Gateway ist
unbekannt. Bitten Sie den Support-Mitarbeiter
um Klärung.
300
Keine Verbindung zum Gateway
Melden Sie sich bitte bei Ihrem Support-Mitarbeiter zur Klärung, wenn diese Antwort mehrmals
auftritt.
303
Parameter cvcode falsch.
Überprüfen Sie den Inhalt des Parameters cvcode
und vergleichen Sie dessen Format mit der Dokumentation. Weisen Sie ggf. Ihren Kunden auf die
Fehleingabe hin und bieten Sie eine Korrektur des
Wertes an.
304
Parameter bankcode falsch.
Überprüfen Sie den Inhalt des Parameters bankcode und vergleichen Sie dessen Format mit der
Dokumentation. Weisen Sie ggf. Ihren Kunden
auf die Fehleingabe hin und bieten Sie eine Korrektur des Wertes an.
305
Parameter account falsch.
Überprüfen Sie den Inhalt des Parameters account
und vergleichen Sie dessen Format mit der Dokumentation. Weisen Sie ggf. Ihren Kunden auf die
Fehleingabe hin und bieten Sie eine Korrektur des
Wertes an.
307
Nutzung von Lastschrift nicht erlaubt.
Melden Sie sich bitte bei Ihrem Support-Mitarbeiter zur Klärung, wenn diese Antwort mehrmals
auftritt.
308
Konfiguration für diese Zahlung
oder Vorprüfung wurde nicht angelegt.
Melden Sie sich bitte bei Ihrem Support-Mitarbeiter zur Klärung, wenn diese Antwort mehrmals
auftritt.
309
Konfiguration für diese Zahlung
oder Vorprüfung wurde gesperrt.
Melden Sie sich bitte bei Ihrem Support-Mitarbeiter zur Klärung, wenn diese Antwort mehrmals
auftritt.
310
Parameter payment_options
falsch.
Überprüfen Sie den Inhalt des Parameters
payment_options und vergleichen Sie dessen Format mit der Dokumentation.
311
Parameter customer_id falsch.
Überprüfen Sie den Inhalt des Parameters
customer_id und vergleichen Sie dessen Format
mit der Dokumentation.
Ausgabedatum: 28.10.2010
55
Sparkassen-Internetkasse
Version 3.3.3
5.2 Ergebnismeldungen / Antwort-Nachrichten
Ergebniswert
Bedeutung
Reaktion
312
Parameter customer_title
falsch.
Überprüfen Sie den Inhalt des Parameters
customer_title und vergleichen Sie dessen Format mit der Dokumentation. Weisen Sie ggf. Ihren Kunden auf die Fehleingabe hin und bieten
Sie eine Korrektur des Wertes an.
313
Parameter customer_firstname
falsch.
Überprüfen Sie den Inhalt des Parameters
customer_firstname und vergleichen Sie dessen
Format mit der Dokumentation. Weisen Sie ggf.
Ihren Kunden auf die Fehleingabe hin und bieten
Sie eine Korrektur des Wertes an.
314
Parameter customer_lastname
falsch.
Überprüfen Sie den Inhalt des Parameters
customer_lastname und vergleichen Sie dessen
Format mit der Dokumentation. Weisen Sie ggf.
Ihren Kunden auf die Fehleingabe hin und bieten
Sie eine Korrektur des Wertes an.
315
Parameter
customer_date_of_birth falsch.
Überprüfen Sie den Inhalt des Parameters
customer_date_of_birth und vergleichen Sie dessen Format mit der Dokumentation. Weisen Sie
ggf. Ihren Kunden auf die Fehleingabe hin und
bieten Sie eine Korrektur des Wertes an.
316
Parameter customer_addr_street
falsch.
Überprüfen Sie den Inhalt des Parameters
customer_addr_street und vergleichen Sie dessen
Format mit der Dokumentation. Weisen Sie ggf.
Ihren Kunden auf die Fehleingabe hin und bieten
Sie eine Korrektur des Wertes an.
317
Parameter customer_addr_number
falsch.
Überprüfen Sie den Inhalt des Parameters
customer_addr_number und vergleichen Sie dessen
Format mit der Dokumentation. Weisen Sie ggf.
Ihren Kunden auf die Fehleingabe hin und bieten
Sie eine Korrektur des Wertes an.
318
Parameter customer_addr_zip
falsch.
Überprüfen Sie den Inhalt des Parameters
customer_addr_zip und vergleichen Sie dessen
Format mit der Dokumentation. Weisen Sie ggf.
Ihren Kunden auf die Fehleingabe hin und bieten
Sie eine Korrektur des Wertes an.
319
Parameter customer_addr_city
falsch.
Überprüfen Sie den Inhalt des Parameters
customer_addr_city und vergleichen Sie dessen
Format mit der Dokumentation. Weisen Sie ggf.
Ihren Kunden auf die Fehleingabe hin und bieten
Sie eine Korrektur des Wertes an.
320
Parameter
customer_addr_country falsch.
Überprüfen Sie den Inhalt des Parameters
customer_addr_country und vergleichen Sie dessen Format mit der Dokumentation. Weisen Sie
ggf. Ihren Kunden auf die Fehleingabe hin und
bieten Sie eine Korrektur des Wertes an.
321
Parameter customer_since_mm
falsch.
Überprüfen Sie den Inhalt des Parameters
customer_since_mm und vergleichen Sie dessen
Format mit der Dokumentation.
Ausgabedatum: 28.10.2010
56
Sparkassen-Internetkasse
Version 3.3.3
5.2 Ergebnismeldungen / Antwort-Nachrichten
Ergebniswert
Bedeutung
Reaktion
322
Parameter customer_since_yy
falsch.
Überprüfen Sie den Inhalt des Parameters
customer_since_yy und vergleichen Sie dessen
Format mit der Dokumentation.
323
Diese Transaktionsart ist für den
konfigurierten Gateway nicht erlaubt.
Überprüfen Sie den Inhalt der Parameter command
und payment_options und vergleichen Sie deren
Format mit der Dokumentation.
324
Fehler im Request bei der Eingangsprüfung
Melden Sie sich bitte bei Ihrem Support-Mitarbeiter zur Klärung, wenn diese Antwort mehrmals
auftritt.
332
Parameter providerid falsch.
Überprüfen Sie den Inhalt des Parameters providerid und vergleichen Sie dessen Format mit der
Dokumentation. Weisen Sie ggf. Ihren Kunden
auf die Fehleingabe hin und bieten Sie eine Korrektur des Wertes an.
333
Parameter msisdn falsch.
Überprüfen Sie den Inhalt des Parameters msisdn
und vergleichen Sie dessen Format mit der Dokumentation. Weisen Sie ggf. Ihren Kunden auf die
Fehleingabe hin und bieten Sie eine Korrektur des
Wertes an.
334
Parameter paymentmethod falsch.
Überprüfen Sie den Inhalt des Parameters paymentmethod und vergleichen Sie dessen Format
mit der Dokumentation.
335
Parameter tracenumber falsch.
Überprüfen Sie den Inhalt des Parameters tracenumber und vergleichen Sie dessen Format mit der
Dokumentation.
336
Parameter terminalid falsch.
Überprüfen Sie den Inhalt des Parameters terminalid und vergleichen Sie dessen Format mit der
Dokumentation.
337
Parameter terminalid und tracenumber müssen gemeinsam uebermittelt werden.
Überprüfen Sie den Inhalt der Parameter terminalid und tracenumber. Die Übermittlung nur eines
der beiden Parameter ist unzulässig.
338
3-D-Secure Autorisierung fehlgeschlagen.
Weisen Sie Ihren Kunden auf die eventuelle Fehleingabe hin. Die Transaktion kann wiederholt
werden.
339
Parameter autocapture falsch.
Überprüfen Sie den Inhalt des Parameters autocapture und vergleichen Sie dessen Format mit
der Dokumentation.
341
Der Mobilfunkbetreiber wird
vom Händler nicht akzeptiert.
Überprüfen Sie den Inhalt des Parameters providerid und vergleichen Sie dessen Format mit der
Dokumentation.
342
Parameter basketnr falsch.
Überprüfen Sie den Inhalt des Parameters basketnr und vergleichen Sie dessen Format mit der
Dokumentation.
343
Kreditkarte nicht in einem der
akzeptierten Länder ausgegeben.
Bitten Sie den Kunden, ein anderes Zahlungsmittel zu verwenden.
Ausgabedatum: 28.10.2010
57
Sparkassen-Internetkasse
Version 3.3.3
5.2 Ergebnismeldungen / Antwort-Nachrichten
Ergebniswert
Bedeutung
Reaktion
344
Kreditkarte nicht im angegebenen Land ausgegeben.
Bitten Sie den Kunden, ein anderes Zahlungsmittel zu verwenden.
345
Dieser Händler darf nur Beträge
bereits durchgeführter Transaktionen erstatten.
Prüfen Sie, ob die Erstattung einer Transaktion zuzuordnen ist.
346
Parameter timestamp falsch.
Überprüfen Sie den Inhalt des Parameters timestamp und vergleichen Sie dessen Format mit der
Dokumentation.
347
Abbruch durch Benutzer.
Lassen Sie den Kunden ein anderes Bezahlverfahren auswählen.
349
Das Transaktionslimit für dieses
Zahlungsmittel wurde überschritten.
Zeigen Sie dem Kunden eine Fehlermeldung an.
Überprüfen Sie ggf. in der Händleransicht Ihre Limit-Konfiguration.
350
Dieses Zahlungsmittel ist auf der
Sperrliste.
Zeigen Sie dem Kunden eine Fehlermeldung an.
Überprüfen Sie ggf. in der Händleransicht Ihre
Sperrliste.
351
Mit diesem Institut sind giropayZahlungen derzeit nicht möglich.
Zeigen Sie dem Kunden eine Fehlermeldung an.
352
Die Bankleitzahl ist unbekannt.
Zeigen Sie dem Kunden eine Fehlermeldung an.
Bieten Sie dem Kunden an, es noch einmal zu versuchen. Möglicherweise handelt es sich um einen
Tippfehler.
353
Die angegebene Pseudokartennummer existiert bereits.
Senden Sie die Anfrage noch einmal mit einer
neuen, noch nicht vergebenen Pseudokartennummer oder geben Sie keine Pseudokartennummer an. Sie erhalten dann in der Antwort eine
eindeutige, von Sparkassen-Internetkasse generierte Pseudokartennummer.
354
Die Nutzung von Pseudokartennummern ist für den Händler
nicht freigeschaltet.
Wenn Sie die Nutzung von Pseudokartennummern vereinbart haben, liegt vermutlich eine
Fehlkonfiguration vor. Wenden Sie sich in diesem
Fall bitte an den Kunden-Support. Ansonsten prüfen Sie bitte die Eingabeparameter.
355
Dieser Händler darf nur Transaktionen mit Pseudokartennummer durchführen.
Wenn Sie die Nutzung von Pseudokartennummern nicht vereinbart haben, liegt vermutlich
eine Fehlkonfiguration vor. Wenden Sie sich in
diesem Fall bitte an den Kunden-Support. Ansonsten prüfen Sie bitte die Eingabeparameter.
356
Die angegebene Pseudokartennummer ist unbekannt.
Überprüfen Sie den Wert der Pseudokartennummer. Eventuell ist ein vorangegangener Versuch,
diese Pseudokartennummer anzulegen fehlgeschlagen und Sie nehmen deshalb irrtümlicherweise an, dass diese Pseudokartennummer bereits existiert.
357
Parameter ppan falsch.
Überprüfen Sie den Inhalt des Parameters ppan
und vergleichen Sie dessen Format mit der Dokumentation.
Ausgabedatum: 28.10.2010
58
Sparkassen-Internetkasse
5.2 Ergebnismeldungen / Antwort-Nachrichten
Ergebniswert
Bedeutung
Reaktion
358
Für die angegebene Kartennummer existiert bereits eine Pseudokartennummer.
Falls Sie nicht mehr wissen, welche Pseudokartennummer zu dieser Kreditkarte gehört, bietet Ihnen die Shop-Schnittstelle eine Möglichkeit, die
Pseudokartennummer herauszufinden. Lesen sie
dazu die Dokumentation.
359
Eine Transaktion mit dieser Vorgangsnummer wird derzeit bearbeitet.
Sie haben eine Transaktion vermutlich zeitgleich
zweimal eingereicht. Bitte vermeiden Sie dies zukünftig.
360
Der Händler darf an dieser
Schnittstelle keine Kreditkartendaten einreichen.
Benutzen Sie Pseudokartennummern an dieser
Schnittstelle. Falls Sie PCI zertifiziert sind, können
Sie Ihren Zugang so konfigurieren lassen, dass Sie
an dieser Schnittstelle Kreditkarten einreichen
dürfen.
361
Parameter additionalnote
falsch.
Überprüfen Sie den Inhalt des Parameters additionalnote und vergleichen Sie dessen Format mit
der Dokumentation.
362
Institut nimmt nicht an giropay
teil.
Bieten Sie dem Kunden an, eine andere Bankverbindung anzugeben oder eine andere Zahlungsweise auszuwählen.
Tabelle 5-7: Sparkassen-Internetkasse Meldungen
5.2.2
Meldungen des VÖB-ZVD-Payment-Gateways
Im Feld rc sind folgende Werte möglich:
Version 3.3.3
Ergebniswert
Bedeutung
000
Genehmigt oder erfolgreich beendet
002
Genehmigungsservice anrufen
003
Ungültige Händlerkennung
004
Karte einziehen
005
Genehmigung verweigert
012
Ungültige Transaktion
013
Kreditlimit überschritten
014
Ungültige Karte
021
Keine Verarbeitung
030
Formatfehler Autorisierer
031
Routing nicht definiert
033
Verfalldatum ungültig
034
Manipulationsverdacht
Ausgabedatum: 28.10.2010
59
Sparkassen-Internetkasse
Version 3.3.3
5.2 Ergebnismeldungen / Antwort-Nachrichten
Ergebniswert
Bedeutung
040
Funktion/Kartentyp nicht unterstützt
043
Gestohlene Karte, bitte einziehen
055
Falsche PIN
056
Karte nicht in der Datenbank des Autorisierers
057
Karte nicht identisch mit der Karte der zugrundeliegenden Transaktion
058
Terminalkennung unbekannt
061
Karte gesperrt
062
Eingeschränkt nutzbare Karte
064
Betrag höher als bei der zugrundeliegenden Transaktion
074
PIN muss erneuert werden
075
Zu viele PIN-Fehleingaben
077
PIN-Eingabe obligatorisch
080
Umsatz nicht mehr verfügbar
081
Fehler im Nachrichtenfluss
085
Ablehnung durch den Autorisierer
086
Der Händler ist unbekannt
091
Autorisierer z.Zt. nicht erreichbar
092
Dieser Kartentyp wird durch den Autorisierer nicht bearbeitet
096
Verarbeitung z.Zt. nicht möglich
098
Zeitstempel nicht plausibel oder Sequenzierungsproblem
101
AID-File für die Umgelenkte/capture Anfrage wurde nicht gefunden (evtl. Reservierung abgelaufen).
102
AID-File für die Umgelenkte/Gesicherte Anfrage konnte nicht gelesen werden.
103
AID-File für die Umgelenkte/Gesicherte Anfrage konnte nicht geschrieben werden.
200
Kann Beleg-Nummer für das virtuelle POS nicht lesen.
201
Kann Trace-Nummer für das virtuelle POS nicht lesen.
203
Kein freies Terminal für diesen Händler
207
Autorisierung unterbrochen wegen Time-out.
209
Keine Verbindung zum Autorisierungssystem
210
Fehler bei der Verbindung zum Routingsystem.
212
Die Trace-Nummer in der Antwort unterscheidet sich von der aus der Anfrage.
213
Die Terminal-ID in der Antwort unterscheidet sich von der ursprünglichen.
214
Ankommende Nachricht kann nicht in das ZVT-Protokoll überführt werden.
215
Abgehende Nachricht kann nicht in das ZVT-Protokoll überführt werden.
Ausgabedatum: 28.10.2010
60
Sparkassen-Internetkasse
Version 3.3.3
5.2 Ergebnismeldungen / Antwort-Nachrichten
Ergebniswert
Bedeutung
216
Die Message-Number aus der Antwort stimmt nicht mit der angeforderten Funktion
überein.
217
Diese Message-Number wird nicht vom IPS unterstützt.
218
Ungültiger Betrag für Storno oder Buchung
231
Ungültiger Währungscode
705
POS-Terminal Table wurde nicht vorher erstellt.
706
Unmögliches Anhängen an eine Semaphore für die POS-Administration.
707
Unmögliches Freimachen einer Semaphore für die POS-Administration.
719
Das angezeigte POS-Terminal für diesen Händler konnte nicht gefunden werden.
841
Authentifizierung SET ist nicht freigeschaltet.
842
Authentifizierung 3D-Secure ist nicht freigeschaltet
843
Authentifizierung UCAF ist nicht freigeschaltet
844
Transaktionsart EMV ist nicht freigeschaltet
845
Transaktionsart eCommerce ist nicht freigeschaltet
846
Transaktionsart POS ist nicht freigeschaltet
847
Transaktionsart MailOrder ist nicht freigeschaltet
850
Das PGW-Interface konnte nicht die komplette Antwort vom Autorisierungssystem
zurücksenden .
851
Die Antwort vom virtuellen POS-Terminal enthält keine oder ungültige Daten.
852
Terminal antwortet nicht
860
Die vom PGW-Interface empfangene Datenlänge stimmt nicht mit der erwarteten
Länge überein.
861
Das PGW-Interface konnte nicht den benötigten Speicher für die ankommenden Daten bereitstellen.
862
Terminal antwortet nicht
863
Das Feld msgnr enthält eine ungültige Größe.
864
Das Feld msgnr fehlt in der ankommenden Nachricht.
865
Das Feld nrofgoods fehlt in der ankommenden Nachricht.
866
Eine oder mehrere der vorgeschriebenen Felder fehlen in der ankommenden Nachricht.
867
Das PGW-Interface konnte nicht genügend Speicher für die ankommende Nachricht
zur Verfügung stellen.
868
Die Händler-Daten-Datei konnte nicht gefunden oder gelesen werden.
869
Die Händler-System-Daten-Datei konnte nicht gefunden oder gelesen werden.
870
Der Händler ist dem IP-System unbekannt.
Ausgabedatum: 28.10.2010
61
Sparkassen-Internetkasse
5.3 Formatbeschreibung der Parameter
Ergebniswert
Bedeutung
871
Die Händer-System-ID kontne nicht gelesen werden oder die Anweisung der HändlerSystem-ID passt nicht zum Händler.
872
Der Händler ist nicht berechtigt zur Nutzung des PGW-Interfaces.
873
Das Händlerpasswort ist nicht korrekt.
874
Das Händlersystempasswort ist nicht korrekt.
875
Die Transaktion konnte nicht gefunden werden im IP-System (dies ist eine Antwort
auf eine Diagnoseanfrage).
876
Die ankommende Nachricht konnte nicht zum virtuellen POS-Terminal gesendet werden um die Autorisierung auszuführen.
877
Der Gültigkeitscheck für die Kartennummer ist fehlgeschlagen.
878
Länge der Kartennummer falsch
879
Die Byte-Größe zum Lesen ist nicht definiert.
880
Die angegebene Byte-Größe zum Lesen ist null.
881
Ein oder mehrere vorgeschriebene Felder in der ankommenden Nachricht enthalten
keinen Wert.
882
Routingsystem vorübergehend außer Betrieb
883
Kontonummer ist für diese Bankleitzahl ungültig
884
Bankleitzahl ist ungültig
885
Formatfehler in den Eingangsdaten
890
Unbekannter Fehler. Melden Sie sich bitte bei Ihrem Support-Mitarbeiter zur Klärung.
891
Authentifizierung SET ist für diesen Händler nicht freigeschaltet
892
Authentifizierung 3DSecure ist für diesen Händler nicht freigeschaltet
893
Authentifizierung Spa-Ucaf ist für diesen Händler nicht freigeschaltet
894
EMV - Transaktionen sind für diesen Händler nicht freigeschaltet.
895
Die Transaktionsart eCommerce ist für diesen Händler nicht freigeschaltet.
896
Die Transaktionsart POS ist für diesen Händler nicht freigeschaltet
897
Die Transaktionsart MailOrder ist für diesen Händler nicht freigeschaltet
898
Die Transaktionsart Abonnement ist für diesen Händler nicht freigeschaltet
899
Vorgangsnummer schon vergeben im Backend-System
Tabelle 5-8: Meldungen des VÖB-ZVD-Payment-Gateways und der Kartenprozessoren
5.3 Formatbeschreibung der Parameter
In der folgenden Tabelle sind alle Zeichen aufgeführt und erklärt, die das Format eines Parameters definieren.
Version 3.3.3
Ausgabedatum: 28.10.2010
62
Sparkassen-Internetkasse
5.4 MAC - Message Authentication Code
Zeichen
Bedeutung
A
Buchstaben
N
Ziffern
S
Sonderzeichen
L
Leerzeichen
Xn
genau n Zeichen
X-n
maximal n Zeichen
FIX
feste Zeichenkette
[]
Eine Anzahl erlaubter Zeichen wird zwischen eckigen Klammern aufgelistet. a
Beispiele
N5
Ziffer mit genau 5 Zeichen
ANS-10
Zeichenkette mit bis zu 10 Zeichen. Diese Zeichenkette kann Buchstaben, Ziffern
und Sonderzeichen enthalten, aber keine Leerzeichen
AN[_]-10
Zeichenkette mit bis zu 10 Zeichen. Diese Zeichenkette kann Buchstaben, Ziffern
und das Zeichen '_' enthalten, aber keine Leerzeichen
a
Ist auch die eckige Klammer erlaubt, wird diese doppelt aufgeführt z.B. [[].
Tabelle 5-9: Formatbeschreibung
5.4 MAC - Message Authentication Code
Zahlungsdaten sind ohne Sicherungsverfahren nicht vor Manipulationen
geschützt. Bei der Zahlungsinitialisierung werden die Zahlungsdaten über den
Browser des Kunden geleitet und könnten dort manipuliert werden.
Der Message Authentication Code MAC dient der Absicherung der Zahlungsdaten gegen Manipulationen. Der MAC ermöglicht es dem Sparkassen-Internetkasse, Manipulationen zu erkennen und mit einer Fehlermeldung zu reagieren.
Auch die Benachrichtigung des Shops erfolgt meist über einen unverschlüsselten HTTP-Request und ist daher nicht vor Manipulationen sicher. Hier ermöglicht der von Sparkassen-Internetkasse berechnete MAC Ihrer Anwendung,
etwaige Manipulationen durch Überprüfung des MAC zu erkennen.
Dazu muss Ihre Anwendung aus den Parametern der Antwortnachricht den
MAC berechnen. Stimmt der so berechnete MAC mit dem in der Antwortnachricht übertragenen MAC überein, können Sie davon ausgehen, dass die Antwortnachricht unverfälscht ist.
5.4.1
HMAC - Keyed-Hashing for Message Authentication
Zur Berechnung des MAC wird das standardisierte Verfahren HMAC (RFC 2104)
verwendet. HMAC beschreibt, wie die Eingabenachricht - die abzusichernden
Version 3.3.3
Ausgabedatum: 28.10.2010
63
Sparkassen-Internetkasse
5.4 MAC - Message Authentication Code
Zahlungsdaten - mit einem Schlüssel verknüpft und daraus der MAC berechnet
wird. Zur Berechnung des MAC wird die kryptografische Hash-Funktion SHA-1
verwendet.
Als Schlüssel dient das SSL-Passwort, das Sie bei der Freischaltung Ihres Zugangs
bekommen. Der Schlüssel ist entscheidend für die Sicherheit des HMAC-Verfahrens. Achten Sie darauf, dass Unbefugte keinen Zugriff auf Ihr SSL-Passwort
bekommen. Zur Erhöhung der Sicherheit empfehlen wir ein "zufälliges Passwort" zu verwenden und die maximal erlaubte Länge von 20 Zeichen für das
SSL-Passwort voll auszuschöpfen. Ändern Sie Ihr SSL-Passwort von Zeit zu Zeit.
Die Nachricht, auf die das HMAC-Verfahren angewendet wird, setzt sich zusammen aus den Werten der Parameter der Anfrage- bzw. Antwortnachricht, die in
alphabetischer Reihenfolge der Parameternamen ohne Trennzeichen oder Zwischenräume aneinandergefügt werden. Wenn optionale Parameter nicht angegeben sind, wird der folgende Parameter angefügt.
Das HMAC-Verfahren wird im Folgenden kurz beschrieben. Eine detaillierte
Beschreibung finden Sie in RFC 2104, HMAC: Keyed-Hashing for Message
Authentication (siehe http://www.ietf.org/rfc/rfc2104.txt).
Für den Hash-Algorithmus SHA-1 gibt es in den gängigen Programmier- und
Skriptsprachen bereits Implementierungen, die Sie verwenden können. Teilweise finden Sie auch fertige Implementierungen des HMAC-Verfahrens.
Die Darstellung des MAC erfolgt hexadezimal. Ein Byte wird jeweils durch zwei
Zeichen (Ziffern, Kleinbuchstaben a bis f) repräsentiert.
Ablauf HMAC mit SHA-1
Das HMAC-Verfahren besteht aus folgenden Schritten:
1. Hängen Sie an den Schlüssel so viele Null-Bytes (0x00) an, dass Sie einen 64
Byte langen Schlüssel haben.
2. Führen Sie bitweise eine Exklusiv-Oder-Verknüpfung (XOR) des so erhaltenen Schlüssels mit einer Bytefolge bestehend aus 64 Bytes 0x36 durch.
3. Hängen Sie die Eingabenachricht ohne Leer- oder Trennzeichen an das
Ergebnis von Schritt 2. Die Eingabenachricht besteht aus den Werten folgender Parameter:
•
Version 3.3.3
Initialisierung der Zahlung: Erlaubte Ausgabeländer (acceptcountries,
optional), additionalnote (optional), Betrag (amount), Zeit bis zur automatischen Buchung (autocapture, optional), Warenkorbnummer (basketid, optional), Requestdefinition (command), countryrejectmessage
(optional), cssurl (optional), Währung (currency), Stadt
(customer_addr_city, optional), Hausnummer (customer_addr_number,
optional), Straße (customer_addr_street, optional), Postleitzahl
(customer_addr_zip, optional), Datum und Uhrzeit (date, optional), Lieferland (deliverycountry, optional), deliverycountryaction (optional),
deliverycountryrejectmessage (optional), locale (optional), merchantref (optional), notificationfailedurl (optional), Vorgangsnummer
(orderid), payment_options (optional), Zahlungsart (paymentmethod),
Pseudokartennummer (ppan, optional), nicht erlaubte Ausgabeländer
(rejectcountries, optional), Sessionkennung (sessionid, optional),
Ausgabedatum: 28.10.2010
64
Sparkassen-Internetkasse
5.4 MAC - Message Authentication Code
Händlerkennung (sslmerchant), Transaktionstyp (transactiontype), version
•
Benachrichtigung des Shops - Zahlungen: Genehmigungsnummer (aid),
Betrag (amount), Warenkorbnummer (basketid, wenn in der Initialisierungsnachricht enthalten), Währung (currency), deliverycountry (optional), Sparkassen-Internetkasse-Antwortcode (directPosErrorCode),
Erfolgs-/Fehlermeldung (directPosErrorMessage), Vorgangsnummer
(orderid), Pseudokartennummer (ppan, optional), sekundärer Rückgabecode (rc), rc_avsamex und rc_score (nur bei American Express Adressverifizierung), Referenznummer des Payment-Gateways (retrefnum),
Sessionkennung (sessionid, wenn in der Initialisierungsnachricht enthalten), Sparkassen-Internetkasse-Transaktionsnummer (trefnum)
•
Benachrichtigung des Shops - Pseudokartennummer registrieren: Karteninhaber (cardholder, optional), Kreditkartennummer (creditc), Sparkassen-Internetkasse-Antwortcode (directPosErrorCode), Erfolgs/Fehlermeldung (directPosErrorMessage), Ablaufdatum der Kreditkarte
(expdat), Pseudokartennummer (ppan, optional), Sessionkennung (sessionid, wenn in der Initialisierungsnachricht enthalten), Markenname
der Kreditkarte (txn_card).
Die genannten Parameter werden in dieser Reihenfolge ohne Leer- oder
Trennzeichen aneinandergefügt.
4. Wenden Sie auf das Ergebnis von Schritt 3 die SHA-1 Hashfunktion an.
5. Führen Sie bitweise eine Exklusiv-Oder-Verknüpfung (XOR) des in Schritt 1
erzeugten 64-Byte-Schlüssels mit einer Bytefolge bestehend aus 64 Bytes
0x5c durch.
6. Hängen Sie das Ergebnis von Schritt 4 ohne Leer- oder Trennzeichen an den
64-Byte-Schlüssel, den Sie in Schritt 5 erzeugt haben.
7. Wenden Sie auf das Ergebnis von Schritt 6 die SHA-1 Hashfunktion an und
geben Sie das Ergebnis hexadezimal kodiert aus.
Die Ergebnisse von Schritt 2 und Schritt 5 müssen nur initial einmal und nach
Änderungen des SSL-Passworts berechnet werden. Sie können deshalb die
Ergebnisse von Schritt 2 und Schritt 5 abspeichern, um nicht für jede Nachricht
die XOR-Verknüpfungen des Schlüssels berechnen zu müssen.
5.4.2
Beispiele
Es folgen zwei Beispiele für die Berechnung des MAC. Weitere Testfälle für Ihre
HMAC-Implementierung finden Sie in RFC 2202 (siehe
http://www.ietf.org/rfc/rfc2202.txt).
Version 3.3.3
Parameter
Wert
amount
10,00
basketid
ba_100202
Ausgabedatum: 28.10.2010
65
Sparkassen-Internetkasse
5.4 MAC - Message Authentication Code
Parameter
Wert
command
sslform
currency
EUR
date
20091206_12:23:45
orderid
2009120601
paymentmethod
creditcard
sessionid
Nhdz747458sNX
sslmerchant
mycompany
transactiontype
preauthorization
version
1.5
SSL-Passwort
8A!v#6qPc3?+G1on
mac
3508adf0a9e2b00cfb0c401fd37f3bed1c358580
Tabelle 5-10: MAC-Berechnung - Initialisierung der Zahlung
Die zusammengesetzte Nachricht, auf die das HMAC-Verfahren angewandt
wird, heißt in diesem Fall
"10,00ba_100202sslformEUR20030806_12:23:452003080601creditcardNhdz7474
58sNXmycompanypreauthorization1.5". Zusammen mit dem SSL-Passwort
"8A!v#6qPc3?+G1on" als Schlüssel berechnet sich daraus der MAC
"3508adf0a9e2b00cfb0c401fd37f3bed1c358580".
Parameter
Wert
aid
a34232
amount
10,00
basketid
ba_100202
currency
EUR
directPosErrorCode
0
directPosErrorMessage
orderid
2003080601
rc
000
retrefnum
316124
sessionid
Nhdz747458sNX
trefnum
2003080601_01
SSL-Passwort
8A!v#6qPc3?+G1on
mac
efaada83d2b62d44bb685abb23897a4e591952db
Tabelle 5-11: MAC-Berechnung - Benachrichtigung des Shops
Version 3.3.3
Ausgabedatum: 28.10.2010
66
Sparkassen-Internetkasse
5.4 MAC - Message Authentication Code
Die zusammengesetzte Nachricht, auf die das HMAC-Verfahren angewandt
wird, heißt in diesem Fall
"a3423210,00ba_100202EUR02003080601000316124Nhdz747458sNX200308060
1_01". Zusammen mit dem SSL-Passwort "8A!v#6qPc3?+G1on" als Schlüssel
berechnet sich daraus der MAC
"efaada83d2b62d44bb685abb23897a4e591952db".
5.4.3
Codebeispiele
Java
Listing 5-1
import
import
import
import
import
java.io.UnsupportedEncodingException;
java.security.InvalidKeyException;
java.security.NoSuchAlgorithmException;
javax.crypto.Mac;
javax.crypto.spec.SecretKeySpec;
public class HmacSha1 {
private static final String HEXDIGITCHARS = "0123456789abcdef";
private static final String ENCODING = "ISO-8859-1";
/**
* Convert a byte array to a hex string of the format
* "1f30b7".
*/
public static final String byteArrayToHex(byte[] byteArray) {
int hn, ln, cx;
StringBuffer buf = new StringBuffer(byteArray.length * 2);
for(cx = 0; cx < byteArray.length; cx++) {
hn = ((int)(byteArray[cx]) & 0x00ff) / 16;
ln = ((int)(byteArray[cx]) & 0x000f);
buf.append(HEXDIGITCHARS.charAt(hn));
buf.append(HEXDIGITCHARS.charAt(ln));
}
return buf.toString();
}
/**
* RFC 2104 HMAC implementation
* Creates an SHA-1 HMAC
*/
public static String hmac(String key, String data) throws InvalidKeyException,
NoSuchAlgorithmException, UnsupportedEncodingException {
String algorithm = "HMACSHA1";
// Get the HMAC algorithm
Mac mac = Mac.getInstance(algorithm);
// Initialize the algorithm with the key
byte[] keyBytes = key.getBytes(ENCODING);
mac.init(new SecretKeySpec(keyBytes, 0, keyBytes.length, algorithm));
// calculate and output MAC
mac.update(data.getBytes(ENCODING));
return byteArrayToHex(mac.doFinal());
}
public static void main(String args[]) throws NoSuchAlgorithmException,
InvalidKeyException, UnsupportedEncodingException {
Version 3.3.3
Ausgabedatum: 28.10.2010
67
Sparkassen-Internetkasse
5.4 MAC - Message Authentication Code
System.out.println(hmac("8A!v#6qPc3?+G1on", "10,00ba_100202sslformEUR"
+ "20091206_12:23:452009120601creditcardNhdz747458sNXmycompany"
+ "preauthorization1.5"));
}
}
Das Programm gibt "3508adf0a9e2b00cfb0c401fd37f3bed1c358580" aus. Die
verwendeten Klassen der Java Cryptography Extension (JCE) gehören ab Version
1.4 zum Standardumfang des Java SE SDK.
PHP (ab Version 4.3.0)
Listing 5-2
<?php
function hmac ($key, $data) {
// RFC 2104 HMAC implementation for php.
// Creates an SHA-1 HMAC.
$b = 64; // byte length for SHA-1
// if the key has more than 64 bytes, hash it
//if (strlen($key) > $b) {
//
$key = pack("H*",sha1($key));
//}
$key = str_pad($key, $b, chr(0x00));
$ipad = str_pad('', $b, chr(0x36));
$opad = str_pad('', $b, chr(0x5c));
$k_ipad = $key ^ $ipad;
$k_opad = $key ^ $opad;
return sha1($k_opad
. pack("H*",sha1($k_ipad . $data)));
}
echo hmac("8A!v#6qPc3?+G1on",
"10,00ba_100202sslformEUR20091206_12:23:452009120601creditcardNhdz747458sNXmycomp
anypreauthorization1.5");
?>
Das Skript gibt "3508adf0a9e2b00cfb0c401fd37f3bed1c358580" aus. Die SHA-1
Hashfunktion gehört ab Version 4.3.0 zum Standardumfang von PHP.
Version 3.3.3
Ausgabedatum: 28.10.2010
68
Sparkassen-Internetkasse
6
6 Glossar
Glossar
Account
Benutzerzugang zu einem Datensystem oder Online-Angebot.
Acquirer
Ein Acquirer ist ein Unternehmen, welches im Auftrag der Kreditkartenunternehmen Verträge mit Händlern über die Akzeptanz von Kreditkarten als Zahlungsmittel abschließt. Acquirer in Deutschland sind zum Beispiel B+S Card
Service oder ConCardis.
API
Authentifizierung
Application Programming Interface: Programmier- und Anwendungsschnittstelle.
Eine Sicherheitsmaßnahme bei der Benutzung bestimmter Systeme. Zugang
erfolgt zum Beispiel nach Eingabe von Benutzername und korrektem Passwort.
CCS
Credit Card Security Cartridge. Von Visa zertifizierte Sparkassen-Internetkasse
Komponente, die Zahlungen nach dem 3D-Secure-Protokoll ermöglicht.
CGI
Common Gateway Interface - Standard zur Ausführung extern laufender Programme auf einem WWW-Server.
Client
CSS
Gateway
Hash
(engl.): Rechner in einem Netzwerk (z. B. Internet, Intranet), der die Dienste
eines zentralen Rechners (des Servers) wie Daten, Speicherplatz und Ressourcen
in Anspruch nimmt.
Cascading Stylesheets - Sprache zur Formatierung von HTML-Elementen.
Ein Gateway ist eine Schnittstelle zwischen verschiedenen Netzwerken und
Diensten. Im Zusammenhang mit Sparkassen-Internetkasse bezeichnet es als
Payment Gateway den Übergang zwischen Händler bzw. Payment-HostingDienstleister und dem Kreditkartenacquirer (z.B. B+S Cardservice).
eindeutige Prüfsumme, siehe SHA-1
HMAC
Keyed-Hashing Message Authentication Code: siehe MAC
HTML
Hypertext Markup Language (engl.): Seitenbeschreibungssprache, die eine universelle Formatierung eines Dokuments vornimmt und eine Verlinkung ermöglicht.
HTTP
Hypertext Transfer Protocol: Übertragungsprotokoll für den Datenaustausch in
Rechnernetzen.
HTTP-Basic-Authentifizierung
Zugriffsschutz durch Passwort und Login für ein Online-Angebot. Der Server
schickt bei einer Anfrage ohne Authentifizierung eine Antwort mit Statuscode
401(Unauthorized). Der Client muss in der Anfrage einen HTTP-Header für die
Authentifizierung senden, der Login und Passwort in Base64-kodierter Form
enthält.
HTTPS
Hypertext Transfer Protocol Secure: besonders sicheres Übertragungsprotokoll
für den Datenaustausch in Rechnernetzen, benutzt SSL.
Version 3.3.3
Ausgabedatum: 28.10.2010
69
Sparkassen-Internetkasse
Java
6 Glossar
objektorientierte Programmiersprache
JavaScript
Skriptsprache für HTML-Dateien. (Skripte werden nicht direkt verarbeitet, sondern müssen Schritt für Schritt in Maschinencode umgewandelt werden.)
MAC
Message Authentication Code (engl.): kryptografischer Prüfwert; stellt Integrität und Authentizität von Nachrichten sicher.
Meta-Tag
PCI DSS
PGW
Auszeichnung im Kopf einer HTML-Datei. Siehe auch: Tag
Payment Card Industry Data Security Standards. Gemeinsame Sicherheitsstandards aller wichtigen Kreditkartenorganisationen für die Verarbeitung von Kreditkartendaten.
Abkürzung Payment-Gateway
PHP
PHP Hypertext Preprocessor, eine serverseitige Scriptsprache
PIN
Personal Identification Number (engl.): persönliche Identifikationsnummer
Redirect
(engl.): Automatische Um- oder Weiterleitung
Request
(engl.): Anfrage
Response
(engl.): Antwort
RFC
Requests For Comments (engl.): Dokumentierung von Standards und Technologien im Internet
Server
(engl.): Zentraler Rechner in einem Netzwerk (z. B. Internet, Intranet). Der Server stellt anderen Rechnern (den Clients) Dienste wie Daten, Speicherplatz und
Ressourcen zur Verfügung.
SessionID
SHA-1
SSL
Stylesheet
Tag
Timeout
URL
Eindeutige Identifikationsnummer eines Prozesses
Secure Hash Algorithm (engl.): ein Algorithmus zur Erzeugung eindeutiger Prüfsummen; dient dem Signieren elektronischer Dateien ("digitaler Fingerabdruck").
Secure Socket Layer (engl.): ein Protokoll zur verschlüsselten Übertragung von
sensiblen Daten (z.B. Kreditkartennummern) über das Internet.
(engl.): definierte Gestaltungsanweisungen und Formatvorgaben
(engl.): Auszeichung, Markierung, Steuerzeichen in Seitenbeschreibungssprachen. Tags sind im Quelltext durch spitze Klammern markiert.
(engl.): Zeitüberschreitung
Uniform Resource Locator (engl.): die Adresse, unter der ein Dokument im
World Wide Web zu finden ist.
VÖB-ZVD
Die VÖB-ZVD Bank für Zahlungsverkehrsdienstleistungen GmbH ist eine Einrichtung des Bundesverbandes Öffentlicher Banken Deutschlands e.V. (VÖB).
Webbrowser
to browse (engl.): durchblättern, sich umsehen. Programm, das Daten aus dem
Internet (siehe Web/WWW) auf einem lokalen Rechner verarbeitet und darstellt
(z. B. Netscape oder Internet Explorer)
WWW
World Wide Web oder kurz Web: Teil des Internets, ein weltweiter Rechner-Verbund
Version 3.3.3
Ausgabedatum: 28.10.2010
70