1.3 Aufruf der Hosted Payment Page
Der Aufruf der Hosted Payment Page beginnt mit der korrekten Zusammenstellung der Parameter, die aus einem Schlüssel und einem Wert bestehen und durch ein Gleichheitszeichen (=) getrennt sind:
MerchantID=Test
Alle Parameter werden in einer Zeichenkette aneinandergereiht und durch das Zeichen & getrennt:
Amount=100&Currency=EUR&TransID=12345
Hinweis: Da die Zeichen „=“ und „&“ als Trennzeichen verwendet werden, können diese Zeichen nicht als Wert übergeben werden. Alle Werte, die Sie ohne Blowfish-Verschlüsselung übergeben, müssen URL-encoded sein.
Eine korrekte Parameter-Zeichenkette für das 1cs Online Bezahlsystem enthält grundsätzlich drei Parameter: MerchantID, Len und Data. Die Parameter MerchantID und Len sind unverschlüsselt. Nur der Parameter Data wird Blowfish-verschlüsselt:
MerchantID=Test&Len=67&Data=0A67FE96a65d384350F50FF1
Der Parameter Data enthält die sensiblen Zahlungsdaten wie Betrag und Währung. Die verschlüsselten Bytes sind Hex-codiert und auf zwei Zeichen von links mit einer Null aufgefüllt. Die Verschlüsselung erfolgt über Blowfish ECB und steht Ihnen als Source-Code und Komponente zur Verfügung.
Für die Entschlüsselung ist der Parameter Len sehr wichtig, der die Länge der unverschlüsselten(!) Zeichenkette im Parameter Data enthält. Da bei der Verschlüsselung mit Blowfish die zu verschlüsselnde Datenmenge auf ein Vielfaches von 8 vergrößert wird, muss bei der Entschlüsselung die korrekte Länge der Zeichenkette bekannt sein. Andernfalls tauchen am Ende der Zeichenkette zufällige Zeichen auf.
Die Übergabe der Parameter erfolgt per HTTPS POST oder HTTPS GET. Die empfohlene Übertragungsmethode ist HTTPS POST, weil die Parameterzeichenkette bei GET an die URL angehängt wird, die je nach Browser auf 2048 Bytes begrenzt ist.
Hinweis: Bitte beachten Sie, dass die maximale Länge einer Zahlungsanfrage auf 5120 Zeichen begrenzt ist. Wenn Sie längere Zeichenketten benötigen, melden Sie sich bitte beim First Cash Solution Support.
Die folgenden Listings zeigen die Entwicklung eines Zahlungsaufrufs. Das erste Listing ist die unverschlüsselte Parameterzeichenkette:
MerchantID=Test&TransID=100000001&Amount=11&Currency=EUR&URLSuccess=https://www.shop.de/ok.html&URLFailure=https://www.shop.de/failed.html&URLNotify=https://www.shop.com/notify.cgi&OrderDesc=Mein Einkauf
Hinweis: Bitte beachten Sie, dass jedem Parameter ein Wert zugewiesen wird. Leere Parameter dürfen nicht übergeben werden, da andernfalls die Zahlung scheitern kann.
Diese Zeichenkette wird verschlüsselt und als Parameter Data übergeben, so dass der HTTPS GET Aufruf der Hosted Payment Page so aussieht:
<a href=https://www.computop-paygate.com/paymentPage.aspx?MerchantID=Test&Len=162&Data=E98D40FFFD622C5FE7414F73539A1852C2CE7C8B09D34DF217E27FA2E194B9
968DE9ABAE3B1F44B5485EFE3EF2597C7395BADBAD4340CDFD000DD57129EEFAA0
BE904A7E2339DCF9363DA6ACDBE5EF98E169FC3092B160252A037135421FD0CE
092C174A7D1D63517BD45099AC2B682F5E3CD2C942A6F0E741A833C0&Language=
enURLBack=https://www.shop.com/canceled>
Hinweis: Bitte beachten Sie, dass Parameter wie Language oder URLBack unverschlüsselt übergeben werden. Eine Tabelle mit allen möglichen unverschlüsselten Parametern finden Sie ebenfalls in diesem Dokument.