g-pay

1. Wstęp

Google Pay to błyskawiczny i intuicyjny system płatności od Google. Pozwala on użytkownikowi na przeprowadzenie procesu płatności bez wypełniania formularza kartowego, ponieważ dane karty są przechowywane bezpiecznie na serwerach firmy.

2. Opis

Google Pay to produkt umożliwiający uzyskanie zaszyfrowanych danych karty płatniczej klienta pozwalających na jej obciążenie. W celu dokonania płatności przez Google Pay należy zapisać kartę płatniczą na swoim koncie Google, używając jakiejkolwiek platformy Google (np. kupując aplikację w Google Play) lub bezpośrednio na stronie https://pay.google.com/payments/home#paymentMethods

Usługa wymaga wcześniejszego podpisania umowy z operatorem kartowym (po szczegółowe informacje należy kierować pytania do Działu Biznesu BlueMedia).

3. Schemat komunikacji

Po kliknięciu w przycisk "Zapłać przez Google Pay" na stronie sklepu pojawia się formularz Google Pay. Klient potwierdza w nim swoje konto Google i kartę, którą ma zamiar zapłacić (na tym etapie może też zmienić kartę na inną lub dodać nową). Skrypt w tle przekazuje zakodowane dane karty przez funkcję postMessage, sklep musi je przyjąć, a następnie zakodować przez funkcję base64 i wysłać w parametrze paymentToken wraz z pozostałymi parametrami (danymi transakcji).

Na swojej stronie sklep musi wywołać skrypt udostępniony przez Google (szczegóły dostępne pod adresem: https://developers.google.com/pay/api/web/guides/tutorial) z podmienionymi danymi Procesora płatności jak poniżej:

    
const tokenizationSpecification = {
    type: 'PAYMENT_GATEWAY',
    parameters: {
        'gateway': 'bluemedia',
        'gatewayMerchantId': '[Identyfikator akceptanta - AcceptorID - (np. 123456) z systemu PayBM]'
    }
};
 
//...
 
paymentDataRequest.merchantInfo = {
    // merchantId jest Twoim identyfikatorem nadanym przez Google (niepowiązanym z Blue Media).
    // 01234567890123456789 jest identyfikatorem obowiązującym tylko w trybie TESTOWYM ( {env: 'TEST'} ).
    // Identyfikator, który obowiązuje w trybie produkcyjnym ( {env: 'PROD'} ) zostanie nadany przez Google po przejściu weryfikacji:
    // https://developers.google.com/pay/api/web/guides/test-and-deploy/integration-checklist
    merchantId: '01234567890123456789',
    // merchantOrigin jest domeną, pod którą działa Twój sklep.
    // Kliknięcie w przycisk "Zapłać przez Google Pay" powinno odbyć się w tej domenie!
    merchantOrigin: 'mojsklep.com',
    // merchantName jest nazwą Twojego sklepu.
    merchantName: 'Mój Sklep',
    // authJwt jest tymczasowym tokenem zwracanym przez system PayBM.
    // Aby otrzymać ten token należy wysyłać zapytanie do systemu PayBM. Szczegółowa dokumentacja wysyłana jest na e-maila.
    authJwt: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c',
};
    

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

Diagram sekwencji dla synchronicznej komunikacji

4. Rejestracja Transakcji

Transakcja Google Pay rejestrowana jest przez dodanie dodatkowego parametru PaymentToken z danymi otrzymanymi od Google przez postMessage i zakodowaniu ich funkcją base64.

Nazwa parametru Typ Wymagalność Opis
PaymentToken String Nie Dane otrzymane z Google Pay zakodowane funkcją base64

Start transakcji zgodny z najnowsza dokumentacja systemu PayBM

Rejestracja Transakcji

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

5. Implementacja dla systemu Android

Google Pay daje możliwość implementacji płatności w systemie Android wykorzystując Usługę Google Play oraz podpiętego pod tę usługę konta Google.

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

Lista kontrolna czynności wymaganych do uruchomienia płatności w systemie Android dostępna pod tym adresem: https://developers.google.com/pay/api/android/guides/test-and-deploy/integration-checklist

6. Informację dodatkowe

Aby zachować integralność estetyczną stylistyki stosowanej na stronie www oraz w aplikacji mobilnej należy skorzystać ze wskazówek, które znajdują się pod adresem https://developers.google.com/pay/api/web/guides/brand-guidelines (opisy styli oraz oraz przycisków dla stron www) oraz https://developers.google.com/pay/api/android/guides/tutorial gdzie możemy znaleźć informacje potrzebne przy tworzeniu aplikacji mobilnej.

Przykładowy kod do integracji z Blue Media:
https://github.com/bluepayment-plugin/google-pay-integration-sample

7. Konfiguracja kart.


    
    const allowedCardNetworks = ["MASTERCARD", "VISA"];
const allowedCardAuthMethods = ["PAN_ONLY"];