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&basketid=b1057316117&command=sslform&currency=EUR&date= 20060119_15:40:39&orderid=o1057316117&paymentmethod=creditcard&sessioni d=s105731611&sslmerchant=tobechanged&transactiontype=authorization&vers ion=1.5&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