Following table lists all card brands that can be uses via the Hosted Payment Page. When submitting the value CC in parameter PayTypes all brands are displayed that are configured for a certain merchant. Selecting specific brands can be done by submitting a string of the desired brand names separated by pipe signs.
Kreditkartenmarke / Scheme Names → values for CCBrand |
---|
AirPlus |
AMEX |
ARGENCARD |
Aura |
Bancontact |
CABAL |
Cartes Bancaires |
Maestro |
CBN |
CENCOSUD |
ComfortCard |
CUP |
Dankort |
DINERS |
Discover |
Elo |
Hipercard |
JCB |
Laser |
Maestro |
MasterCard |
NARANJA |
RuPay |
SHOPPING |
TOTAL |
VISA |
Process of payment
To make payments via the Hosted Payment Page you send a request to following URL with HTTPS GET or HTTPS POST:
https://www.payjet-cockpit.de/paymentPage.aspx |
All details required for payment processing are forwarded as parameters. The parameters are encrypted with Blowfish to ensure that neither the customer nor a third party can manipulate the data.
When calling the form Cockpit decrypts the parameters and shows the HTML page with the payment methods. The customer selects the payment method and triggers the forwarding by clicking the button "Next".
After the payment has been made Cockpit redirects the customers back to a shop page via HTTPS GET (URLSuccess, URLFailure) and transmits the result of the payment as a Blowfish-encrypted parameter string to these URLs. In addition Cockpit transmits the result via HTTPS POST to the shop's Notify page (URLNotify). The shop accepts the payment result and decrypts the data in order to inform the customer about the status.
Calling the Hosted Payment Page
Calling the Hosted Payment Page starts with the correct composition of the parameters which consist of a key and a value and which are separated by an equals sign (=):
|
All parameters are assembled in a character string and separated by the character &:
|
Notice: Since the characters "=" and "&" are used as separating characters, these characters cannot be transmitted as values. All values which you transmit without BlowFish-encryption must be URL-Encoded.
A correct parameter character string for Cockpit contains three basic parameters: MerchantID, Len and Data. The parameters MerchantID and Len are unencrypted. Only the Data parameter is Blowfish-encrypted:
|
The Data parameter contains the sensitive payment details such as amount and currency. The encrypted bytes are Hex-encoded and completed to two characters from the left with a zero. Encryption is via Blowfish ECB and is available to you as source-code and components.
The Len parameter is very important for encryption because it contains the length of the unencrypted(!) character string in the Data parameter. Since the data quantity to be encrypted is increased by a multiple of 8 in the case of the Blowfish encryption, the correct length of the character string must be known for decryption. Otherwise accidental characters emerge at the end of the character string.
The parameters are transmitted via HTTPS POST or HTTPS GET. The recommended transmit method is HTTPS POST because the parameter character string in the case of GET is attached to the URL, which is limited to 2048 bytes depending on the browser.
Notice: Please note that the maximum length of a payment request is limited to 5120 characters. If you require longer strings please contact Pay-Jet Support.
The following listings show the development of a payment request. The first listing is the unencrypted parameter character string:
|
Notice: Please note that a value is to be assigned to each parameter. Do not transmit empty parameters, as this can cause the payment to fail.
This character string is encrypted and transmitted as the Data parameter. The HTTPS GET request for the Hosted Payment Page looks like this:
<a href=https://www.payjet-cockpit.de/paymentPage.aspx?MerchantID=Test&Len=162&Data=E98D40FFFD622C5FE7414F73539A1852C2CE7C8B09D34DF217E27FA2E194B9968DE9ABAE3B1F44B5485EFE3EF2597C7395BADBAD4340CDFD000DD57129EEFAA0BE904A7E2339DCF9363DA6ACDBE5EF98E169FC3092B160252A037135421FD0CE092C174A7D1D63517BD45099AC2B682F5E3CD2C942A6F0E741A833C0&Language=en&URLBack=https://www.shop.com/canceled”> |
Notice: Please note that parameters like Language or URLBack are transmitted unencrypted. A table with all possible unencrypted parameters can be found also witihn this document.
Cockpit interface
Format Description a alphabetical as alphabetical with special characters n numeric an alphanumeric ans alphanumeric with special characters ns numeric with special characters bool boolean expression (true or false) 3 fixed length with 3 digits/characters ..3 variable length with maximum 3 digits/characters enum enumeration of allowed values dttm ISODateTime (YYYY-MM-DDThh:mm:ss) Abbreviation Description CND condition M mandatory O optional C conditional Notice: Please note that the names of parameters can be returned in upper or lower case.Definitions
Data formats
Abbreviations
Comment If a parameter is mandatory, then it must be present If a parameter is optional, then it can be present, but it is not required If a parameter is conditional, then there is a conditional rule which specifies whether it is mandatory or optional
Parameters of the Hosted Payment Page
These parameters are mandatory for all payment methods and has to be submitted Blowfish-encrypted within the Data parameter to the Hosted Payment Page.
Notice: Please take all further parameters specifically for a payment method from the manual of that respective payment method.
The following table describes the encrypted payment request parameters:
Parameters for Hosted Payment Page
Following parameters are optional and can be submitted unencrypted to the Hosted Payment Page:
Optional parameters for Hosted Payment Page
Corporate PaymentPage: XSLT layout for forms
You can change the parameter Template to create an individual layout for your Hosted Payment Page form which exactly matches the shop layout To this end your graphic designer can design an HTML-template in the shop-design based on XSLT (Extensible Stylesheet Language Transformation). Pay-Jet Support copies this XSLT-template to our Cockpit Server. If you enter the name of your XSLT-file in the Template parameter, the Cockpit form will appear in your layout.
The XSLT templates for the Hosted Payment Page form have several advantages:
- Merchants can bypass the costly PCI-security authorisation
- The Hosted Payment Page is responsive, i.e. it works on Smartphones, Tablets or on the Laptop
For general information about XSLT see www.w3.org.
The subsequent conventions apply for the use of the Corporate Paypage with XSLT:
File names
A XSL file designed by you defines your individual layout. The associated XML file contains the texts that are to be displayed on the form. Hence, multilingualism is easy. Always use your MerchantID in the names of the files.
Purpose | Naming |
---|---|
XSL template | MerchantID_PaymentPage.xsl |
XML text file | MerchantID_PaymentPage.xml |
Sub folder for pictures, CSS- and JS-files | Templates/imagesMerchantID_PaymentPage |
In order not to receive safety notices, please ensure that external image sources are retrieved via SSL.
In order to call the individual layout, use the ‘Template’ parameter with your MerchantID and attach it unencrypted to the call of the form of Hosted Payment Page, for example:
https://www.payjet-cockpit.de/paymentPage.aspx?MerchantID=IhreMID&Len=123&Data=AGSDJ…ASDF&template=IhreMerchantID
Hidden Fields
The following hidden fields must be implemented so that the values can be passed on when sending the form:
Value of | Name of hidden field |
---|---|
MerchantID | "MerchantID" |
Request length | "Len" |
Request data | "Data" |
Template | "Template" |
Language | "Language" |
URL for back button | "URLBack" |
Payment method | "PaymentMethod" |
Credit card brand | "CreditCardBrand" |
Language selection
The language selection on the Hosted Payment Page form occurs automatically depending on the parameter Language. Other language areas are filtered out. If you wish to access the field of another language area e.g. with JavaScript, you can do so via the following path: paygate/language/@name.
XML structure
The ‘Language’ parameter controls which section of the XML text file is read out. German ‘de’ is always used as standard.
The XML file should have the following basic structure:
<?xml version="1.0" encoding="utf-16"?> </languages> <language name="de"> <title>Zahlung</title> ... </language> <language name="en"> <title>Payment</title> ... </language> </languages>
‘UTF-8’ is also possible for the encoding.
With <xsl:variablename=““ select=“paygate/language/@name”/> you can directly address an XML language section from the XSL file.
For an overview of which parameters are rendered by the Hosted Payment Page, please examine the following structure (XSL file is rendered against the following XML string):
strXML = "<?xml version='1.0' encoding='windows-1252'?>" & _ <paygate> <merchantID>...</merchantID> <len>257</len> <data>E98D4...F7065</data> <template> <urlBack><![CDATA[http://www.google.de]]></urlBack> <paymentMethods> <VISA type="CC" displayName="Visa"/> <MasterCard type="CC" displayName="MasterCard"/> <AMEX type="CC" displayName="American Express"/> <DINERS type="CC" displayName="Diners Club International"/> <Discover type="CC" displayName="Discover"/> <JCB type="CC" displayName="JCB"/> <EDD lowercase="edd"> <PayPal lowercase=="paypal"> <iDEAL lowercase=="ideal"> </paymentMethods> <language name="de"> <title>Zahlung</title> ... </language> </paygate>
JavaScript
You can find individual JavaScript methods either in the HEAD section of your XSL file or within the file main.js that can be found in the images folder at Templates/imagesMerchantID_PaymentPage/js.
Notice: Please do not use any external links to your JavaScript!