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ć merchantName oraz merchantId dla obiektu paymentDataRequest.merchantInfo w 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.