Skocz do: nawigacja, szukaj

Google Pay


Gpay-logo.png

1 Wstęp

Google Pay to szybki i prosty sposób płatności od Google. Dane karty są przechowywane bezpiecznie na serwerach firmy Google i pozwalają użytkownikowi wykonać proces płatności bez potrzeby manualnego wypełniania formularza kartowego lub kontaktowego.

2 Opis

Google Pay to produkt pozwalający na uzyskanie zaszyfrowanych danych karty płatniczej klienta umożliwiających obciążenie. Aby wykonać płatność przez Google Pay klient wcześniej musi zapisać kartę płatniczą pod swoim kontem Google, używając jakiejkolwiek platformy Google (np. kupując aplikację w Google Play, płacąc za przestrzeń dyskową na Google Drive, przypisując kartę do swojego konta AdWords) lub bezpośrednio na stronie https://payments.google.com.

Exclam.svg Ważne Usługa wymaga wcześniejszego podpisania umowy z operatorem kartowym (po szczegółowe informacje należy kierować pytania do Działu Handlowego Przelewy24).

3 Schemat komunikacji

Po kliknięciu w przycisk "Zapłać z Google Pay" klientowi pojawia się na ekranie formatka Google Pay, na której potwierdza swoje konto Google i kartę, którą ma zamiar zapłacić (może również na tym etapie zmienić kartę na inną wcześniej zapisaną, lub dodać nową). Skrypt w tle przekazuje zakodowane dane karty przez funkcję postMessage, którą sklep musi przejąć, a następnie zakodować przez funkcję base64 ponownie i przesłać w parametrze p24_method_ref_id wraz z danymi transakcji.

Sklep na swojej stronie musi wywołać skrypt udostępniony przez Google (szczegóły dostępne pod adresem: https://developers.google.com/pay/api/web/guides/tutorial ).

Aby dodać Przelewy24 należy w wywołaniu skryptu zmodyfikować dane Procesora.

var tokenizationParameters = {
 tokenizationType: 'PAYMENT_GATEWAY',
 parameters: {
   gateway: 'przelewy24',
   gatewayMerchantId: '[id Merchanta z systemu Przelewy24]'
 }
}

Klient musi zostać przekierowany na formatkę logowania, na której wybiera swoje konto, a następnie kartę, którą ma zamiar zapłacić. Skrypt w tle przekazuje zakodowane dane karty przez funkcję postMessage, którą sklep musi przejąć, a następnie zakodować przez funkcję base64 ponownie i przesłać w parametrze p24_method_ref_id wraz z danymi transakcji.

Poniżej szczegółowy schemat komunikacji i wymiany danych: Schemat komunikacji Google Pay


3.1 Rejestracja transakcji

Rejestracja transakcji przez Google Pay polega na dodaniu dodatkowego parametru p24_method_ref_id z danymi otrzymanymi z Google przez postMessage (paymentMethodToken.token) i zakodowaniu ich funkcją base64.

post https://secure.przelewy24.pl/trnRegister

Dodatkowy parametr POST wywołania

Nazwa pola Typ Wymagane Opis
p24_method_ref_id string T token otrzymany z Google Pay zakodowany funkcją base64

Przed wysłaniem żądania transakcji należy zapisać jej dane do lokalnej bazy danych sprzedawcy. W szczególności należy zachować informacje o identyfikatorze sesji i kwocie transakcji.


post https://secure.przelewy24.pl/trnRegister

Parametry POST wywołania

Nazwa pola Typ Wymagane Opis
p24_merchant_id INT T ID sprzedawcy
p24_pos_id INT T ID Sklepu (domyślnie ID sprzedawcy)
p24_session_id STRING(100) T Unikalny identyfikator z systemu sprzedawcy.
p24_amount INT T Kwota transakcji wyrażona w WALUTA/100 (1.23 PLN = 123)
p24_currency STRING(3) T Waluta w jakiej ma być przyjęta płatność. (PLN,EUR,GBP,CZK...)
p24_description STRING(1024) T Opis transakcji
p24_email STRING(50) T Adres email klienta
p24_client STRING(100) N** Imię i nazwisko Klienta
p24_adress STRING(80) N** Adres Klienta
p24_zip STRING(10) N** Kod pocztowy klienta
p24_city STRING(50) N** Miasto Klienta
p24_country STRING(2) T Kody krajów zgodne z ISO 3166
p24_phone STRING(12) N Telefon klienta w formacie: 48111222333
p24_language STRING(2) N pl/ en / de / es / it
p24_method INT N Identyfikator metody płatności. Lista metod płatności widoczna w panelu lub dostępna przez API.
p24_url_return STRING(250) T Adres powrotny, na który zostanie przekierowany Klient, bez względu na wynik płatności.
p24_url_status STRING(250) N Adres URL na który zostaną przekazane informacje o wpłacie w przypadku poprawnej płatności.
p24_time_limit INT N Limit czasu na wykonanie transakcji przez Klienta.

0 - brak limitu, maks. 99(czas w minutach)

p24_wait_for_result INT N Oczekiwanie na przekazanie notyfikacji o płatności transakcji

0 - nie, 1 - tak

p24_channel INT N
p24_shipping INT N Koszt dostawy / wysyłki / etc.
p24_transfer_label STRING(20) N Opis pojawiający się w tytule przelewy 1
p24_api_version STRING(5) T Wersja API wg której realizowane jest wdrożenie. Zalecane: 3.2
p24_sign STRING(100) T Suma kontrolna wyliczana według wzoru opisanego w Obliczanie p24_sign
p24_encoding STRING(15) N System kodowania przesyłanych znaków:

ISO-8859-2, UTF-8, Windows-1250

Lista zakupów, gdzie X jest liczbą od 1 do 100 (opcjonalne 2)
p24_name_X STRING(127) T Nazwa towaru
p24_description_X STRING(127) N Dodatkowy opis towaru
p24_quantity_X INT T Ilość sztuk towaru
p24_price_X INT T Cena jednostkowa towaru
p24_number_X INT N ID towaru w systemie sprzedawcy
Parametry Wyjścia
Nazwa_pola Typ Opis
error INT Rezultat żądania
token String Identyfikator wywołania, stosowany m.in. w TrnRequest, Występuje tylko gdy error=0
ErrorMessage String Informacja o zaistniałym błędzie w wywołaniu. Występuje tylko gdy error!=0

3.2 Przekazanie tokenu

<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>PayWithGoogle</title>
    <script src="https://secure.przelewy24.pl/bundle/payWithGoogle/{{TOKEN}}"></script>
</head>
<body>
<script>
    document.addEventListener("DOMContentLoaded", function () {
        Przelewy24PayWithGoogle.config({
            errorCallback: function () {
                alert("error");
            },
            exceptionCallback: function () {
                alert("exception");
            },
            requestFailedCallback: function () {
                alert('requestFailed');
            },
            completePaymentCallback: function () {
                alert("success");
            }
        });
        Przelewy24PayWithGoogle.charge();
    });
</script>

</body>

Po otrzymaniu tokenu z Przelewy24 należy na stronie wywołać skrypt w java script.

get https://secure.przelewy24.pl/bundle/payWithGoogle/{TOKEN}

Skrypt w Java Script procesuje transakcje, po jej wykonaniu wywoływany jest odpowiednia odpowiedź zwrotna (callback).

document.addEventListener("DOMContentLoaded", function () {
       Przelewy24PayWithGoogle.config({
           errorCallback: function () {
               alert("error");
           },
           exceptionCallback: function () {
               alert("exception");
           },
           requestFailedCallback: function () {
               alert('requestFailed');
           },
           completePaymentCallback: function () {
               alert("success");
           }
       });
       Przelewy24PayWithGoogle.charge();
   });

W przypadku transakcji wymagającej dodatkowej autoryzacji (3DSecure) klient zostaje przekierowany, a następnie wraca na adres podany przy rejestracji transakcji w parametrze p24_url_return.

4 Implementacja dla systemu Android

Google Pay umożliwia implementację w systemie Android wykorzystując Usługę Google Play oraz podpiętego pod tą usługę konta Google.

Szczegółowe informacje na temat Google Pay API dostępne są pod adresem: https://developers.google.com/pay/api/android

5 Informacje dodatkowe

W celu uspójnienia stylistyki stosowanej na stronie www oraz w aplikacji mobilnej dostępne są wskazówki, których należy się trzymać przy wdrażaniu usługi Google Pay.

Pod adresem https://developers.google.com/pay/api/web/guides/brand-guidelines dostępne są opisy styli oraz oraz przycisków dla stron www, natomiast pod adresem https://developers.google.com/pay/api/android/guides/tutorial możemy znaleźć informacje na temat zaleceń przy tworzeniu aplikacji mobilnej.