Google Pay
Introduction
As part of the integration, it is possible to initiate Google Pay payments via imoje within a widget on the shop summary page, without having to go to the imoje gateway page.
Configuration data
To implement the Google Pay widget on your website, follow the instructions in the Google Pay API documentation.
In tokenisationSpecification, use imoje as the gateway value and your imoje shop ID as the gatewayMerchantId value.
NOTE! To obtain
merchantNameandmerchantIdfor thepaymentDataRequest.merchantInfoobject in the production environment, you must first obtain ** production access** within your Google Pay Business Console.
Creating a Google Pay transaction in imoje
After successfully initialising the Google Pay widget, you will receive a PaymentMethodData object in return, which will contain, among other things, a tokenisationData object.
To create a Google Pay transaction in imoje, you will need the value from the token parameter in the tokenisationData object, which you must pass in the appropriate parameters.
Example of a Google Pay API response
{
"type": "CARD",
"description": "Visa••••1234",
"info": {
"cardNetwork": "VISA",
"cardDetails": "1234"
},
"tokenizationData": {
"type": "PAYMENT_GATEWAY",
"token": "examplePaymentMethodToken"
}
}
Making a request to imoje
To create a request that generates a transaction, you must add a wallet and additionalData.
Example of the BODY of a request to imoje
{
"type": "sale",
"serviceId": "yourServiceId",
"amount": 1000,
"currency": "PLN",
"orderId": "yourOrderId",
"customer": {
"firstName": "John",
"lastName": "Doe",
"email": "john.doe@example.com"
},
"successReturnUrl": "https://yourshopname.com/success",
"failureReturnUrl": "https://yourshopname.com/failure",
"paymentMethod": "wallet",
"paymentMethodCode": "gpay",
"wallet": {
"signature": "signature",
"protocolVersion": "protocolVersion",
"signedMessage": "signedMessage"
},
"additionalData": {
"browser": {
"ip": "127.0.0.1",
"language": "pl-PL",
"jsEnabled": true,
"timezoneOffset": 100,
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36",
"accept": "application/json, text/javascript, */*; q=0.01",
"javaEnabled": false,
"screenColorDepth": 24,
"screenHeight": 1080,
"screenWidth": 2560
}
}
}
Response to request
The response to the request has a standard form and contains useful information about the transaction.
Depending on the Payer's card issuer, 3DSecure authorisation may be required for the transaction. In this case, if the action object is returned with the url parameter, the Payer should be redirected to the provided address to enable 3DSecure authorisation. After successful authorisation, the Payer will be automatically redirected to the page specified in the successReturnUrl parameter.
If the action object is not returned or does not contain the url parameter, redirect the Payer to the page with successReturnUrl or another page of your choice for the order placement process.
Apple Pay
Introduction
Integration allows you to initialise imoje transactions as part of Apple Pay payments using the Apple Pay API directly on your shop's website or in your mobile application.
Getting started
Before integrating Apple Pay payments on your website or mobile application, you will need an Apple Development Account. You will also need to apply to join the Apple Developer Programme.
Then follow the guidelines in the Apple Pay documentation.
Configuration
In order for payments to work properly, you need to configure your settings correctly.
General guidelines for configuring Apple Pay can be found **here.
Guidelines for configuring Apple Pay on your website can be found here.
Payment Processing Certificate
One of the configuration steps is to create a Payment Processing Certificate. To do this, you will need the appropriate CSR file, which you can obtain by contacting us at kontakt.tech@imoje.pl.
Then, send the generated certificate (apple_pay.cer file) to us at kontakt.tech@imoje.pl.
Integration
Integration in a mobile application
To integrate Apple Pay payments into your mobile application, follow the guidelines in the Apple Pay documentation.
Integration on a website
To integrate Apple Pay payments on your website, follow the guidelines in the Apple Pay on the Web documentation.
Please note that for Apple Pay on the Web payments, you must also ** register and validate your website, as well as create a ** Merchant identity certificate.
Creating an Apple Pay transaction in imoje
In order to create an Apple Pay transaction in imoje that will charge the card used by the Payer within Apple Pay, you must send a request creating a transaction.
In the BODY of the request, it is necessary to include the additionalData object and the wallet object and, within it, the paymentData. The paymentData object should contain the values received in the Apple Pay Token.
Example of Apple Pay Token content
{ "version": "EC_v1", "data": "DjI8Ez7nPhVo742aGEzABz/TfxCPt9LSdf2/h+0xIgVJbi3fQqd4lv3ogoTI3SQ7vZrDAWI8g2lbd5sflXBHc0z+wSeybsCcqZB3n1edRFXU7+6DYmdhFFWWCejwUc6XZWmsSaVNEQf+Kc0SeYrj8Eskdapj8bYX/QXxXSPqS4IKSjB+f3O0gUXSq7LK/jA9dl+BbWW0l3gXERU6n5rcYndO5rnjiwNUpnm7EMIMfNU+IPbsubpL82kbL2MdMJB1grel03J4JKld6G0pFSmjR2mF/xBY/yKkADRhoQkVlDRicuKVMpdRXXbIQjw/yRkLv/u8iy1wXI5YmEBB+W4QpPYsuxys94gMPaKhcaEK/OaT099aFrNBezbuLMTcTzbhXOpPwWn9pkAK0eZNOQ==",
"signature": "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", "header": { "ephemeralPublicKey": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZMzlWOx8Xo8pXlOvzYONy+gvUy59ZOeuCov3kzc7fESczZTyvmA9dU9AdVMFaYyfCXlMG5oedi3Wy4yubqfxtg==", "publicKeyHash": "xrJqUFO2jN5edGS8iETkfNXtwqnwSqRUUrQJBysFpZ8=", "transactionId": "aa0b77fbb4f64cd3e5deef65177938b2d836e0d7d93d58000d8d54cfca19ae13" } }
Example of a BODY request to imoje
{
"type": "sale",
"serviceId": "yourServiceId",
"amount": 1000,
"currency": "PLN",
"orderId": "yourOrderId",
"customer": {
"firstName": "John",
"lastName": "Doe",
"email": "john.doe@example.com"
},
"successReturnUrl": "https://yourshopname.com/success",
"failureReturnUrl": "https://yourshopname.com/failure",
"paymentMethod": "wallet",
"paymentMethodCode": "applepay",
"wallet": {
"paymentData": {
"version": "version",
"data": "data",
"signature": "signature",
"header": {
"ephemeralPublicKey": "ephemeralPublicKey",
"publicKeyHash": "publicKeyHash",
"transactionId": "transactionId"
}
}
},
"additionalData": {
"browser": {
"ip": "127.0.0.1",
"language": "pl-PL",
"jsEnabled": true,
"timezoneOffset": 100,
"userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36",
"accept": "application/json, text/javascript, */*; q=0.01",
"javaEnabled": false,
"screenColorDepth": 24,
"screenHeight": 1080,
"screenWidth": 2560
}
}
}
Response to request
The response to the request has a standard form and contains information about the transaction.
Depending on the Payer's card issuer, 3DSecure authorisation may be required for the transaction. In this case, if the action object is returned with the url parameter, the Payer should be redirected to the address provided in order to enable 3DSecure authorisation. After successful authorisation, the Payer will be automatically redirected to the page specified in the successReturnUrl parameter.
If the action object is not returned or does not contain the url parameter, the Payer should be redirected to the page with successReturnUrl or another page of your choice for the order placement process.