With the PAYONE hosted-iFrame Mode you have the flexibility with design of integration and an easy PCI DSS certification with level SAQ A.
The basic requirements to be eligible for SAQ A are:
---end
Solution:
With PAYONE hosted-iFrame mode you will be compliant with all these requirements as the input fields for sensitive credit card data are designed as iframes and are provided by the PCI DSS certified PAYONE platform.
Include the following JavaScript in your HTML page containing the form:
JavaScript URL: https://secure.pay1.de/client-api/js/v1/payone_hosted_min.js
<script type="text/javascript" src="https://secure.pay1.de/client-api/js/v1/payone_hosted_min.js"></script>
---end
Please find some samples here: Hosted Iframe Examples
This JavaScript includes support of classic Client-API features described in chapter "AJAX mode" and "Redirect mode" (see following chapters) to support bank based payments and the PAYONE hosted iFrame mode.
To use the features of the classic Client-API with the new JavaScript you simply have to change "new PayoneRequest(…)" to "new Payone.ClientApi.Request(…)".
There is a known issue with an old version (1.6 or before) of framework "prototype" – please ensure to use the current version (at least 1.7).
The merchant has to implement:
The selected cardtype has to be passed to the public method "setCardType".
You may also specify in config.cardtype available cardtypes for selection in a PAYONE iFrame.
Once all fields are set you will have to start the public function "iframes.creditCardCheck" which will initiate a creditcardcheck-request. This request will check the entered creditcard details and return a response-object which contains either:
---end
card |
card |
card |
card |
card |
attribute |
value |
||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
x |
|
|
|
|
cardtypes |
Define possible cardtypes for selection in PAYONE iFrame, e.g. New cardtype "#" has been implemented to enforce user selection and display "Please select" initially. If used, it should be the first element of the array. |
||||||||
o |
o |
o |
o |
o |
selector |
Name of your div-container, e.g. "cardpan". Either "selector" or "element" is required. |
||||||||
o |
o |
o |
o |
o |
element |
Javascript Element of the div-container, e.g. " Either " element" or "selector" is required. |
||||||||
|
x |
x |
x |
x |
size |
Size of input field in characters, e.g. "20" |
||||||||
|
x |
x |
x |
x |
maxlength |
Maximum length of accepted input, e.g. "20" |
||||||||
|
|
x |
|
|
length |
Array of exact length of accepted input per CC-type e.g.: length: While optional, we strongly recommend using the "length" parameter so the enforced CVC length corresponds to the selected card type. |
||||||||
|
x |
x |
x |
x |
type |
Define type of input field:
|
||||||||
x |
x |
x |
x |
x |
style |
CSS style properties for not-focused element, e.g.
Remark:
|
||||||||
x |
x |
x |
x |
x |
styleFocus
|
CSS style properties for focused element, e.g.
Remark:
|
||||||||
x |
x |
x |
x |
x |
iframe |
Size, e.g.:
|
---end
---end
These attributes and values are allowed in object "request":
---end
attribute |
value |
---|---|
request |
fixed value: 'creditcardcheck' |
responsetype |
fixed value: 'JSON' |
storecarddata |
fixed value: 'yes' |
mode |
mode for transactions, either 'live' or 'test' |
encoding |
your encoding, either 'ISO-8859-1' or 'UTF-8' |
mid |
your Merchant ID |
aid |
your Account ID |
portalid |
your Portal ID |
checktype |
optional configuration - valid for Deutsche Bahn only Fixed value "TC" -> starting "creditcardcheck with travel cards" |
hash |
sha2_384 hash over request values (alphabetical order) plus portal key in your PMI portal configuration. e.g.:
hash_hmac("sha384", "10002UTF-810001live2000002creditcardcheckJSONyes", "123456") =1cf456bf692453613ebb992a3fb859cc347ddc7e94e2ca764efbe8b0089de6964ab1266df0831e59de89dc5291070fe7 |
---end
attribute |
value |
---|---|
input |
CSS style properties for input fields, |
inputFocus |
CSS style properties for focused input fields (overwrites “input”), |
select |
CSS style properties for focused select fields (overwrites “select”), |
iframe |
Size in pixel, e.g.:
|
attribute |
value |
||||||||
---|---|---|---|---|---|---|---|---|---|
supportedCardtypes |
Define possible cardtypes that should be accepted by automatic detection, e.g. ["V", "M", "A"] |
||||||||
callback |
Define a function that is used as a callback-function if result of automatic cardtype detection changes. Detection starts after first 6 digits of the PAN – this is the BIN (Bank Identification Number) of a credit card and the official id for cardtype and origin detection. This callback-function can be used to change highlighting of logos for selected / detected cardtypes. Possible result codes in callback-function:
Further cardtypes may be added in future. |
||||||||
select |
CSS style properties for focused select fields (overwrites “select”), |