1. Informacje ogólne

_images/GPay_Logo.svg.png

Google Pay™ to system elektronicznego portfela pozwalający w intuicyjny sposób dokonać płatności z wykorzystaniem numeru karty zapisanego w bezpieczny sposób w usługach Google. W ramach płatności Google Pay nie jest wymagane wprowadzanie numerów karty podczas transakcji a dostęp do mechanizmu płatności możliwy jest z każdego urządzenia.

Po wybraniu metody płatności Google Pay w sklepie, klientowi pojawia się na ekranie formatka, na której potwierdza swoje konto Google oraz kartę, którą ma zamiar użyć w celu zapłaty za zamówienie. Jeśli Klient nie posiadał wcześniej zarejestrowanej karty, może tego dokonać w trakcie dokonywania płatności.

Ważne

Jeśli do wyboru kanału płatniczego korzystasz ze strony Dotpay, bądź też w celu realizacji płatności przekierowujesz płacącego do Dotpay, nie musisz wykonywać żadnych zmian technicznych. Pamiętaj aby kanał Google Pay był dla Ciebie dostępny, Twoje konto musi mieć możliwość realizacji płatności kartami. Jeśli go nie masz, skontaktuj się z Działem Handlowym Dotpay.

Niniejsza instrukcja dotyczy tylko Partnerów, którzy chcą przycisk płatności z Google umieścić w koszyku własnego sklepu.

2. Opis funkcjonalności

2.1. Bezpieczeństwo

Dane karty przechowywane są na koncie Google, które jest wielowarstwowo zabezpieczone, a przede wszystkim nie są udostępniane Sklepowi.

2.1.1. Proces płatności Google Pay - diagram

@startuml caption Proces płatności Google Pay -> Dotpay


skinparam handwritten false
skinparam style strictuml
autonumber


skinparam note {
    BackgroundColor #F1FFFF
    BorderColor #2980B9
}

skinparam actorBackgroundColor #FEFECE
skinparam actorBorderColor    Maroon
skinparam ActorFontColor DarkRed
skinparam ActorFontSize 17
skinparam ActorFontName Aapex


skinparam sequence {
    ArrowColor DeepSkyBlue
    LifeLineBorderColor blue
    LifeLineBackgroundColor #A9DCDF

    ParticipantBorderColor DeepSkyBlue
    ParticipantBackgroundColor DodgerBlue
    ParticipantFontName Impact
    ParticipantFontSize 17
    ParticipantFontColor #d2eeef

}

participant "Google" as Google
actor "Klient" as Klient
participant "Akceptant" as Akceptant
participant "Dotpay" as Dotpay
participant "Acquirer" as Acquirer




Klient -> Akceptant: Wybranie metody Google Pay

Akceptant -> Google: Akceptant wysyła do Google zapytanie o token

Google -> Akceptant: Google zwraca token do Akceptanta

Akceptant [#4468aa,dashed]--> Akceptant: Kodowanie tokenu\n za pomocą Base64

Akceptant -> Dotpay: Zakodowany token przesłany\n w parametrze 'gp_token'

Dotpay [#4468aa,dashed]--> Dotpay: Odszyfrowanie\n danych karty

Dotpay -> Acquirer: Próba obciążenia karty

Acquirer -> Dotpay: Informacja o statusie transakcji

Dotpay -> Akceptant: Notyfikacja URLC o statusie transakcji

Akceptant -> Klient: Potwierdzenie realizacji transakcji


@enduml

2.1.2. Opis procesu płatności:

  1. Klient wybiera formę płatności Google Pay

  2. Akceptant przekazuje do serwera Google zapytanie o token

  3. Google przekazuje odpowiedź z wartością tokena transakcji

  4. Otrzymany token Akceptant koduje za pomocą Base64

  5. Zakodowany token Akceptant przekazuje do Dotpay w parametrze gp_token wraz z pozostałymi niezbędnymi do inicjacji płatności danymi

  6. Po stronie Dotpay następuje odszyfrowanie danych kartowych

  7. Dotpay wykonuje próbę obciążenia karty w banku wystawcy karty

  8. Informacja o wyniku próby obciążenia przekazywana jest zwrotnie do Dotpay

  9. Dotpay wysyła do Akceptanta potwierdzenie realizacji płatności zgodnie z ustawieniami konta (np. notyfikacja URLC, powiadomienie email)

  10. Akceptant potwierdza Klientowi status transakcji.

3. Integracja płatności Google Pay™

Integracja Google Pay sprowadza się do wykonania trzech kroków:

  • Integracja z Google Pay

  • Odebranie tokenu karty płatniczej

  • Wysłanie żądanie do Dotpay z podaniem kompletu niezbędnych danych oraz tokenem pozyskanym z Google Pay, zakodowanym wcześniej funkcją Base64

Aby rozpocząć przetwarzanie płatności Google Pay, należy najpierw zintegrować się bezpośrednio z Google. Po zakończeniu integracji można dodać przycisk Google Pay do strony realizacji transakcji i przetwarzać zaszyfrowane dane klientów.

3.1. Zapoznaj się z dokumentacją Google Pay

Informacja

W celu implementacji płatności z Google Pay bezpośrednio na stronie sklepu, należy najpierw zapoznać się z poniższą dokumentacja: https://developers.google.com/pay/api/web/guides/tutorial

Przed uruchomieniem produkcyjnym Google Pay każdy sprzedawca powinien wcześniej zarejestrować się w Google, zaakceptować Warunki korzystania z usługi i otrzymać od Google identyfikator sprzedawcy.

Jeśli potwierdzisz, że wszystkie wymagane kroki w integracji zostały wykonane z listy kontrolnej integracji, wówczas możesz poprosić Google o dostęp produkcyjny.

3.2. Pobranie niezbędnych informacji z Dotpay

W celu poprawnej konfiguracji Google Pay na stronie Akceptanta, należy pobrać z Dotpay niezbędne informacje, które pomogą skonfigurować usługę.

Można się w tym celu posłużyć Api Dotpay do pobierania listy kanałów, które dodatkowo pozwala na zwrócenie dla danego sklepu ( id ) właściwych parametrów do konfiguracji usługi.

Informacja

Opis metody pozwalającej na pobranie listy kanałów oraz ich konfiguracji, znajduje się w Dokumentacji technicznej implementacji płatności Dotpay przy okazji opisu parametru channel .

Przykład:

Dotpay API: pobranie listy kanałów oraz ich konfiguracja
 GET https://ssl.dotpay.pl/t2/payment_api/channels/?id=123456&amount=100.00&currency=PLN&lang=pl&format=json
Api Dotpay - konfiguracja kanałów
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
channels: [

    {
        "id": 260,
        "name": "Google Pay",
        "logo": "https://ssl.dotpay.pl/test_payment/cloudfs2/magellan_media/payment_channel_logo/5c8637e8eb0a1937424941cd/",
        "group": "credit_cards",
        "group_name": "Karty płatnicze",
        "short_name": "Google Pay",
        "is_disable": "False",
        "is_not_online": "False",
        "warranty_available": false,
        "form_names": [
            "personal_data",
            "agreement"
        ],
        "config": {
            "type": "google_pay",
            "data": {
              "gp_gateway": "dotpay",
              "gp_script_url": "https://pay.google.com/gp/p/js/pay.js",
              "gp_environment": "TEST",
              "gp_gateway_merchant_id": "123456",
              "gp_protocol_version": "ECv2",
              "gp_api_version": "2",
              "gp_auth_methods": [ "PAN_ONLY" ],
              "gp_merchant_name": "My Company Name",
              "gp_currency_code": "PLN",
              "gp_merchant_id": "04619821273743693712",
              "gp_total_price": "150.00",
              "gp_card_brands": [ "MASTERCARD","VISA" ],
              "gp_api_version_minor": "0"
            }
          }
    },
]

3.3. Konfiguracja Google Pay

3.3.1. Krok 1 Google Pay: Określ wersję Google Pay API

Użyto danych dla Google Pay, zgodnie z Api Dotpay - konfiguracja kanałów :

config: { data: { gp_api_version, gp_api_version_minor } }

Google Pay API: wersja Google Pay Api
const baseRequest = {
    apiVersion: 2,    // 'gp_api_version' from Dotpay Api
    apiVersionMinor: 0    // 'gp_api_version_minor' from Dotpay Api
  };

3.3.2. Krok 2 Google Pay: Wybierz metodę tokenizacji płatności

Użyto danych dla Google Pay, zgodnie z Api Dotpay - konfiguracja kanałów :

config: { data: { gp_gateway, gp_gateway_merchant_id } }

Google Pay API: metoda tokenizacji parametrów
const tokenizationSpecification = {
  type: 'PAYMENT_GATEWAY',
  parameters: {
    'gateway': 'dotpay',    // 'gateway' from Dotpay Api
    'gatewayMerchantId': '123456'   // 'gp_gateway_merchant_id' from Dotpay Api
  }
};

3.3.3. Krok 3 Google Pay: Określ obsługiwane sieci kart płatniczych

Użyto danych dla Google Pay, zgodnie z Api Dotpay - konfiguracja kanałów :

config: { data: { gp_card_brands } }

Google Pay API: obsługiwane karty płatnicze
const allowedCardNetworks = ["MASTERCARD", "VISA"];      // 'gp_card_brands' from Dotpay Api
Google Pay API: aktualnie wspierana metoda autoryzacji kart
const allowedCardAuthMethods = ["PAN_ONLY"];    // 'gp_auth_methods' from Dotpay Api

3.3.4. Krok 4 Google Pay: Opisz dozwolone formy płatności

Postępuj zgodnie z opisem tego kroku w dokumentacji Google Pay


3.3.5. Krok 5 Google Pay: Wczytaj bibliotekę JavaScript Google Pay API

Użyto danych dla Google Pay, zgodnie z Api Dotpay - konfiguracja kanałów :

config: { data: { gp_script_url } }

Google Pay API: wczytanie biblioteki js Google Pay API
     <script
     async
     src="https://pay.google.com/gp/p/js/pay.js"
     onload="console.log('TODO: add onload function')">
     </script>

     <!-- use the value from Dotpay Api (param: 'gp_script_url')  to 'src'  -->

Określenie typu środowiska Google Pay.

Użyto danych dla Google Pay, zgodnie z Api Dotpay - konfiguracja kanałów :

config: { data: { gp_environment } }

Google Pay API: określenie typu środowiska
     const paymentsClient =
         new google.payments.api.PaymentsClient({environment: 'PRODUCTION'});      // 'gp_environment' from Dotpay Api

3.4. Odebranie tokenu karty płatniczej

Po wywołaniu poprawnie skonfigurowanego skryptu Google Pay, do sklepu zwrotnie zostanie przesłany token podobny do poniższego:

 {
  "signature":"MEQCIFCJnLAb5FNt7x0OBu8xOyWQ2+2jqAhj+lP1vhjaJHVNAiBGDTp2OT93Mc1W52zUQaZ+UR0Zb44++9A7sga4aQAIVQ\u003d\u0034d",
  "intermediateSigningKey":{
         "signedKey":"{\"keyValue\":\"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE/2u5JqEr0QqKSR/mATqeKkLcUVJVuN8T9ePL9nVKXXDSCksbg5r7jf0b4r5dA3+2lCPUy3lFMoMILxZV3aGxHg\\u003d\\u003d\",\"keyExpiration\":\"1550936472498\"}",
         "signatures":[
                "MEYCIQDuO/OWef7yHqS7giNytFPEvOFX12HFXtBDP1zTEV+0iQIhAN1otbxYwkjApDBRAH5MZkpzXcKYMCMIHhD2OnnOqCmW"
         ]
  },
  "protocolVersion":"ECv2",
  "signedMessage":"{\"encryptedMessage\":\"fFsjd2QBg11M/h9ZHQtXd+yhsaa3XXPeZwYKAF+RF2t8FvmRvJ0o1sVmLrxM743UrcZtihjiuvMGP0pia0jpZ6plSiiPQfy6gX+/41mfUYhQ4ICpJa5AXZvAN4Q0btwLeCrpaB0kfF2PFEF2lURsMluymM8dhZtGUffGRnhpZIPawuH3QHAaJfb/bdjhi5xKbKH9X+aMLYC7C6ZjtHm9Ano/pjqEufjb3aGSoVaXOBNy1xYst+CLTOLKvLo8O5GnvZIjxw7w5tMOtG//ZW3Xe4BXWO7K9xFVjaFl+5S0pZEcg9auz8UQHmnVu8u0PvJvQJA2tY9PXSeRrfQ1MOeJugW9wuXX8cTD4lzDy3y4MF2CnarRDD8iFl/CdMza5EV8da7Z76AsAW7xJjmvJ6gtl2J/+rsMg+wPWGwQ044HSQ3PTgndWBYV45TOgWuc25GV9Om8zXrtDlZWkDiKKSdRer9ORJxtkJ5cBawc\\u003d\",\"ephemeralPublicKey\":\"BDHO5r+LJUb1+dOm1yGfm4w19EBaMXQJH5smFQwvVSmaWWLaDeBX9xQuUvCOmNBHi1zA1ATc1oROIVX9A1Rkq/w\\u003d\",\"tag\":\"fsPXn4u3L2nlceG7fPG2fnXtQwAUgR6lC6btBMvR1Lc\\u003d\"}"
}

Jego zawartość należy przechwycić, zakodować przy użyciu funkcji Base64 a następnie umieścić w dodatkowym parametrze gp_token , oraz przesłać go razem z innymi, standardowymi danymi płatności do Dotpay.

Przykład:

gp_token = eyJzaWduYXR1cmUiOiJNRVFDSUZDSm5MQWI1Rk50N3gwT0J1OHhPeVdRMisyanFBaGorbFAxdmhqYUpIVk5BaUJHRFRwMk9UOTNNYzFXNTJ6VVFhWitVUjBaYjQ0Kys5QTdzZ2E0YVFBSVZRPTRkIiwiaW50ZXJtZWRpYXRlU2lnbmluZ0tleSI6eyJzaWduZWRLZXkiOiJ7XCJrZXlWYWx1ZVwiOlwiTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFLzJ1NUpxRXIwUXFLU1IvbUFUcWVLa0xjVVZKVnVOOFQ5ZVBMOW5WS1hYRFNDa3NiZzVyN2pmMGI0cjVkQTMrMmxDUFV5M2xGTW9NSUx4WlYzYUd4SGdcXHUwMDNkXFx1MDAzZFwiLFwia2V5RXhwaXJhdGlvblwiOlwiMTU1MDkzNjQ3MjQ5OFwifSIsInNpZ25hdHVyZXMiOlsiTUVZQ0lRRHVPL09XZWY3eUhxUzdnaU55dEZQRXZPRlgxMkhGWHRCRFAxelRFViswaVFJaEFOMW90YnhZd2tqQXBEQlJBSDVNWmtwelhjS1lNQ01JSGhEMk9ubk9xQ21XIl19LCJwcm90b2NvbFZlcnNpb24iOiJFQ3YyIiwic2lnbmVkTWVzc2FnZSI6IntcImVuY3J5cHRlZE1lc3NhZ2VcIjpcImZGc2pkMlFCZzExTS9oOVpIUXRYZCt5aHNhYTNYWFBlWndZS0FGK1JGMnQ4RnZtUnZKMG8xc1ZtTHJ4TTc0M1VyY1p0aWhqaXV2TUdQMHBpYTBqcFo2cGxTaWlQUWZ5NmdYKy80MW1mVVloUTRJQ3BKYTVBWFp2QU40UTBidHdMZUNycGFCMGtmRjJQRkVGMmxVUnNNbHV5bU04ZGhadEdVZmZHUm5ocFpJUGF3dUgzUUhBYUpmYi9iZGpoaTV4S2JLSDlYK2FNTFlDN0M2Wmp0SG05QW5vL3BqcUV1ZmpiM2FHU29WYVhPQk55MXhZc3QrQ0xUT0xLdkxvOE81R252WklqeHc3dzV0TU90Ry8vWlczWGU0QlhXTzdLOXhGVmphRmwrNVMwcFpFY2c5YXV6OFVRSG1uVnU4dTBQdkp2UUpBMnRZOVBYU2VScmZRMU1PZUp1Z1c5d3VYWDhjVEQ0bHpEeTN5NE1GMkNuYXJSREQ4aUZsL0NkTXphNUVWOGRhN1o3NkFzQVc3eEpqbXZKNmd0bDJKLytyc01nK3dQV0d3UTA0NEhTUTNQVGduZFdCWVY0NVRPZ1d1YzI1R1Y5T204elhydERsWldrRGlLS1NkUmVyOU9SSnh0a0o1Y0Jhd2NcXHUwMDNkXCIsXCJlcGhlbWVyYWxQdWJsaWNLZXlcIjpcIkJESE81citMSlViMStkT20xeUdmbTR3MTlFQmFNWFFKSDVzbUZRd3ZWU21hV1dMYURlQlg5eFF1VXZDT21OQkhpMXpBMUFUYzFvUk9JVlg5QTFSa3Evd1xcdTAwM2RcIixcInRhZ1wiOlwiZnNQWG40dTNMMm5sY2VHN2ZQRzJmblh0UXdBVWdSNmxDNmJ0Qk12UjFMY1xcdTAwM2RcIn0ifQ==

Uwaga

Google Pay nie zezwala na konfigurację kart testowych w jego portfelu online. Symulacja płatności (również w ramach środowiska testowego) wymaga użycia rzeczywistych danych kartowych.

Pomimo podania rzeczywistych danych karty, przy płatności w trybie testowym nie zostaną one przekazane do Dotpay przez to karta nie zostanie również obciążona.

4. Tworzenie transakcji w Dotpay

Po prawidłowym odebraniu tokenu z Google Pay, można przystąpić do próby obciążenia karty Klienta. W tym celu należy wykonać prawidłowe "przekierowanie" albo za pomocą "api register order" ze sklepu Akceptanta do Dotpay z podaniem niezbędnych danych.

4.1. Przykład użycia parametrów inicjujących płatność w Dotpay

Generator formularza w języku PHP inicjującego przekierowanie do Dotpay - tworzenie płatności
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<?php

$EnvironmentAddress = 'https://ssl.dotpay.pl/test_payment/';  // Dotpay test Environment

//$EnvironmentAddress = 'https://ssl.dotpay.pl/t2/';  //Dotpay production Environment



//-- Sample data sent to Dotpay with a card token in the 'gp_token' parameter --//

$ParametersArray = array(
    'id' => 123456,
    'type' => 4,
    'channel' => 260,
    'api_version' => 'dev',
    'amount' => '100.00',
    'currency' => 'PLN',
    'description' => 'Order no. 567915976',
    'control' => 'M1231MzaUdLQWR3',
    'url' => 'https://www.example.com/thanks_page.php',
    'urlc' => 'https://www.example.com/urlc_receiver.php',
    'firstname' => 'Jan',
    'lastname' => 'Nowak',
    'email' => 'jan.nowak@example.com',
    'gp_token' => 'eyJzaWduYXR1cmUiOiJNRVFDSUZDSm5MQWI1Rk50N3gwT0J1OHhPeVdRMisyanFBaGorbFAxdmhqYUpIVk5BaUJHRFRwMk9UOTNNYzFXNTJ6VVFhWitVUjBaYjQ0Kys5QTdzZ2E0YVFBSVZRPTRkIiwiaW50ZXJtZWRpYXRlU2lnbmluZ0tleSI6eyJzaWduZWRLZXkiOiJ7XCJrZXlWYWx1ZVwiOlwiTUZrd0V3WUhLb1pJemowQ0FRWUlLb1pJemowREFRY0RRZ0FFLzJ1NUpxRXIwUXFLU1IvbUFUcWVLa0xjVVZKVnVOOFQ5ZVBMOW5WS1hYRFNDa3NiZzVyN2pmMGI0cjVkQTMrMmxDUFV5M2xGTW9NSUx4WlYzYUd4SGdcXHUwMDNkXFx1MDAzZFwiLFwia2V5RXhwaXJhdGlvblwiOlwiMTU1MDkzNjQ3MjQ5OFwifSIsInNpZ25hdHVyZXMiOlsiTUVZQ0lRRHVPL09XZWY3eUhxUzdnaU55dEZQRXZPRlgxMkhGWHRCRFAxelRFViswaVFJaEFOMW90YnhZd2tqQXBEQlJBSDVNWmtwelhjS1lNQ01JSGhEMk9ubk9xQ21XIl19LCJwcm90b2NvbFZlcnNpb24iOiJFQ3YyIiwic2lnbmVkTWVzc2FnZSI6IntcImVuY3J5cHRlZE1lc3NhZ2VcIjpcImZGc2pkMlFCZzExTS9oOVpIUXRYZCt5aHNhYTNYWFBlWndZS0FGK1JGMnQ4RnZtUnZKMG8xc1ZtTHJ4TTc0M1VyY1p0aWhqaXV2TUdQMHBpYTBqcFo2cGxTaWlQUWZ5NmdYKy80MW1mVVloUTRJQ3BKYTVBWFp2QU40UTBidHdMZUNycGFCMGtmRjJQRkVGMmxVUnNNbHV5bU04ZGhadEdVZmZHUm5ocFpJUGF3dUgzUUhBYUpmYi9iZGpoaTV4S2JLSDlYK2FNTFlDN0M2Wmp0SG05QW5vL3BqcUV1ZmpiM2FHU29WYVhPQk55MXhZc3QrQ0xUT0xLdkxvOE81R252WklqeHc3dzV0TU90Ry8vWlczWGU0QlhXTzdLOXhGVmphRmwrNVMwcFpFY2c5YXV6OFVRSG1uVnU4dTBQdkp2UUpBMnRZOVBYU2VScmZRMU1PZUp1Z1c5d3VYWDhjVEQ0bHpEeTN5NE1GMkNuYXJSREQ4aUZsL0NkTXphNUVWOGRhN1o3NkFzQVc3eEpqbXZKNmd0bDJKLytyc01nK3dQV0d3UTA0NEhTUTNQVGduZFdCWVY0NVRPZ1d1YzI1R1Y5T204elhydERsWldrRGlLS1NkUmVyOU9SSnh0a0o1Y0Jhd2NcXHUwMDNkXCIsXCJlcGhlbWVyYWxQdWJsaWNLZXlcIjpcIkJESE81citMSlViMStkT20xeUdmbTR3MTlFQmFNWFFKSDVzbUZRd3ZWU21hV1dMYURlQlg5eFF1VXZDT21OQkhpMXpBMUFUYzFvUk9JVlg5QTFSa3Evd1xcdTAwM2RcIixcInRhZ1wiOlwiZnNQWG40dTNMMm5sY2VHN2ZQRzJmblh0UXdBVWdSNmxDNmJ0Qk12UjFMY1xcdTAwM2RcIn0ifQ==',
    'chk' => 'ba18d9890335b9d59a0e35a00c788214996a9f980a3b7e5d8d900306a7545dcb'
);



//--  generate a form   --/

    $RedirectionCode = '<form action="'.$EnvironmentAddress.'" method="POST" id="dotpay_redirection_form" accept-charset="UTF-8">'.PHP_EOL;

        foreach ($ParametersArray as $key => $value) {
            $RedirectionCode .= "\t".'<input name="'.$key.'" value="'.$value.'" type="hidden"/>'.PHP_EOL;
        }
        
    $RedirectionCode .= '</form>'.PHP_EOL.'<button id="dotpay_redirection_button" type="submit" form="dotpay_redirection_form" value="Submit">Confirm and Pay</button>'.PHP_EOL;



//--  print a form   --/

echo $RedirectionCode;


?>

5. Integracja dla systemu Android

Google Pay umożliwia integrację płatności w systemie Android.

Aby zintegrować aplikację mobilną z metodą Google Pay, należy postępowac zgodnie instrukcjami zamieszczonymi na tej stronie: https://developers.google.com/pay/api/android

Żeby sprawdzić, czy wszystkie wymagane kroki w integracji z Androidem zostały wykonane należy skorzystać z listy kontrolnej dostępnej pod adresem: https://developers.google.com/pay/api/android/guides/test-and-deploy/integration-checklist

6. Informacje dodatkowe

6.1. Wskazówki dotyczące marki Google Pay

Wytyczne (przyciski, style, znaki), które pomogą prawidłowo umieszczać elementy marki Google Pay na stronach internetowych oraz aplikacjach mobilnych znajdują się pod adresem: https://developers.google.com/pay/api/web/guides/brand-guidelines

Skorzystaj z tych wskazówek by zachować spójność i być zgodnym z zalecaniami Google przy wdrażaniu Google Pay.

6.2. Tworzenie aplikacji mobilnej

Informacje na temat zaleceń przy tworzeniu aplikacji mobilnej z interfejsem Google Pay API dostępne są pod adresem:

https://developers.google.com/pay/api/android/guides/tutorial