Google Pay
Wprowadzenie
W ramach integracji możliwe jest zainicjalizowanie płatności Google Pay poprzez imoje w ramach widgetu na stronie podsumowania sklepu, bez konieczności przechodzenia na stronę bramki imoje.
Dane konfiguracyjne
Aby zaimplementować widget Google Pay na Twojej stronie postępuj zgodnie z instrukcjami z dokumentacji Google Pay API.
W tokenizationSpecification jako gateway użyj wartości imoje, a jako gatewayMerchantId Twojego identyfikatora sklepu w imoje.
UWAGA! Aby uzyskać
merchantNameorazmerchantIddla obiektupaymentDataRequest.merchantInfow ramach środowiska produkcyjnego musisz w pierwszej kolejności uzyskać dostęp produkcyjny w ramach Twojego Google Pay Business Console.
Utworzenie transakcji Google Pay w imoje
Po poprawnym zainicjalizowaniu widgetu Google Pay otrzymasz zwrotnie obiekt PaymentMethodData, który zawierać będzie m.in. obiekt tokenizationData.
Do utworzenia transakcji Google Pay w imoje będziesz potrzebować wartości z parametru token w obiekcie tokenizationData, którą musisz przekazać w odpowiednich parametrach.
Przykład odpowiedzi Google Pay API
{
"type": "CARD",
"description": "Visa••••1234",
"info": {
"cardNetwork": "VISA",
"cardDetails": "1234"
},
"tokenizationData": {
"type": "PAYMENT_GATEWAY",
"token": "examplePaymentMethodToken"
}
}
Wykonanie zapytania do imoje
Do zapytania tworzącego transakcję musisz dodać obiekt wallet oraz additionalData.
Przykład BODY zapytania do 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
}
}
}
Odpowiedź do zapytania
Odpowiedź do zapytania ma standardową formę i zawiera przydatne informacje na temat transakcji.
W zależności od wydawcy karty Płatnika, przy transakcji może być wymagana autoryzacja 3DSecure. W takiej sytuacji jeśli zostanie zwrócony obiekt action wraz z parametrem url należy przekierować Płatnika pod przekazany adres w celu umozliwienia autoryzacji 3DSecure. Po pomyślnej autoryzacji Płatnik zostanie automatycznie przekierowany na stronę w wskazaną w parametrze successReturnUrl.
Jeśli obiekt action nie zostanie zwrócony lub nie będzie zawierał parametru url to należy przekierować Płatnika dalej do strony z successReturnUrl lub innej wybranej przez Ciebie dla procesu składania zamówienia.
Apple Pay
Wprowadzenie
Integracja pozwala na inicjalizację transakcji imoje w ramach płatności Apple Pay przy wykorzystaniu Apple Pay API bezpośrednio na stronie Twojego sklepu lub w aplikacji mobilnej.
Pierwsze kroki
Przed zintegrowaniem płatności Apple Pay na Twojej stronie internetowej lub w aplikacji mobilnej będziesz potrzebować Apple Development Account. Konieczne jest również złożenie wniosku o przystąpienie do Apple Developer Program.
Następnie postępuj zgodnie z wytycznymi w dokumentacji Apple Pay.
Konfiguracja
W celu prawidłowego działania płatności konieczne jest wykonanie odpowiedniej konfiguracji.
Ogólne wytyczne konfiguracji Apple Pay znajdziesz tutaj.
Wytyczne konfiguracji Apple Pay na stronie internetowej znajdziesz tutaj.
Payment Processing Certificate
Jednym z etapów konfiguracji jest utworzenie Payment Processing Certificate. W tym celu będziesz potrzebować odpowiedni plik CSR, który otrzymasz kontaktując się znami pod adresem kontakt.tech@imoje.pl.
Następnie wygenerowany certyfikat (plik apple_pay.cer) prześlij do nas na adres kontakt.tech@imoje.pl.
Integracja
Integracja w aplikacji mobilnej
W celu zintegrowania płatności Apple Pay w Twojej aplikacji mobilnej, postępuj zgodnie z wytycznymi dokumentacji Apple Pay.
Integracja na stronie internetowej
W celu zintegrowania płatności Apple Pay na Twojej stronie internetowej, postępuj zgodnie z wytycznymi dokumentacji Apple Pay on the Web.
Zwróć uwagę, że dla dla płatności Apple Pay na stronie internetowej konieczne jest również zarejestrowanie i walidacja Twojej strony, a także utworzenie Merchant identity certificate.
Utworzenie transakcji Apple Pay w imoje
W celu utworzenia transakcji Apple Pay w imoje, która obciąży użytą przez Płatnika kartę w ramach Apple Pay musisz wysłać zapytanie tworzące transakcję.
W BODY zapytania konieczne jest dołączenie obiektu additionalData oraz obiektu wallet i w ramach niego obiektu paymentData. Obiekt paymentData powinien zawierać wartości otrzymane w Tokenie Apple Pay.
Przykład zawartości Tokena Apple Pay
{ "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" } }
Przykład BODY zapytania do 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
}
}
}
Odpowiedź do zapytania
Odpowiedź do zapytania ma standardową formę i zawiera informacje na temat transakcji.
W zależności od wydawcy karty Płatnika, przy transakcji może być wymagana autoryzacja 3DSecure. W takiej sytuacji jeśli zostanie zwrócony obiekt action wraz z parametrem url należy przekierować Płatnika pod przekazany adres w celu umozliwienia autoryzacji 3DSecure. Po pomyślnej autoryzacji Płatnik zostanie automatycznie przekierowany na stronę w wskazaną w parametrze successReturnUrl.
Jeśli obiekt action nie zostanie zwrócony lub nie będzie zawierał parametru url to należy przekierować Płatnika dalej do strony z successReturnUrl lub innej wybranej przez Ciebie dla procesu składania zamówienia.