Tpay
DOCS

Google Pay

Google Pay pozwala użytkownikom na dokonywanie płatności za pomocą kart płatniczych zapisanych na koncie Google. Podczas płatności tym kanałem, jeśli użytkownik jest zalogowany w usłudze Google, wyświetlona zostanie mu preferowana karta płatnicza, możliwość zmiany na inną zapisaną na koncie Google oraz możliwość potwierdzenia transakcji. Jeśli użytkownik nie jest zalogowany, wyświetlany jest formularz logowania do konta Google. Podczas przetwarzania płatności generowany jest przez Google jednorazowy token płatniczy, który służy do przetwarzania płatności zamiast danych karty. Dzięki temu zwiększone jest bezpieczeństwo transakcji.

Rodzaje obsługiwanych kart

Obecnie obsługujemy wyłącznie karty Visa i Mastercard.

Zanim zaczniesz

Upewnij się, że:

Transakcja Google Pay

Realizuj płatności Google Pay wykorzystując endpoint zakładania transakcji podając groupId: 166.

Wyślij zapytanie o utworzenie transakcji Google Pay

Aby utworzyć transakcję Google Pay, wyślij żądanie POST na endpoint:

https://api.tpay.com/transactions

Sprawdź szczegóły w dokumentacji API Reference: POST /transactions

W zapytaniu określ następujące parametry:

amount
 *
Kwota transakcji.
description
 *
Opis transakcji widoczny dla płatnika.
payer.email
Adres e-mail płatnika.
payer.name
Imię i nazwisko płatnika.
pay.groupId
Identyfikator grupy płatności dla Google Pay: 166.

* Pola obowiązkowe.

Podstawowe body żądania powinno wyglądać następująco:

{
  "amount": 0.1,
  "description": "Testowa płatność Google Pay",
  "payer": {
    "email": "[email protected]",
    "name": "Jan Nowak"
  },
  "pay": {
    "groupId": 166
  }
}

Przykład:

curl --location 'https://api.tpay.com/transactions' \
--header 'Authorization: Bearer <access_token>' \
--header 'Content-Type: application/json' \
--data-raw '{
"amount": 0.1,
"description": "Testowa płatność Google Pay",
"payer": {
"email": "[email protected]",
"name": "Jan Nowak"
},
"pay": {
"groupId": 166
}
}'

Po wysłaniu żądania otrzymasz w odpowiedzi schemat TransactionCreated.

Najważniejsze parametry odpowiedzi:

result
success - Transakcja została utworzona pomyślnie.
status
pending - Transakcja oczekuje opłacenia.
transactionPaymentUrl
Adres URL, na który należy przekierować płatnika.

Przykładowa odpowiedź:

{
  "result": "success",
  "requestId": "8d67feda5067b7df97f0",
  "transactionId": "01K5BK4HEPB0WBCGT51FMTYSYJ",
  "title": "TR-BRA-CN7CN3X",
  "posId": "ps_NyRBLzV5kelrpjaM",
  "status": "pending",
  "date": {
    "creation": "2024-06-04 21:39:46",
    "realization": null
  },
  "amount": 0.1,
  "currency": "PLN",
  "description": "Testowa płatność Google Pay",
  "hiddenDescription": "",
  "payer": {
    "payerId": "py_a9rjlZWxRLdG1bqY",
    "email": "[email protected]",
    "name": "Jan Nowak",
    "phone": "",
    "address": "",
    "city": "",
    "country": "PL",
    "postalCode": ""
  },
  "payments": {
    "status": "pending",
    "method": "pay_by_link",
    "amountPaid": 0,
    "date": {
      "realization": null
    }
  },
  "transactionPaymentUrl": "https://secure.tpay.com/?title=TR-BRA-CN7CN3X&uid=01HZJC7HJXA31Z67XNWRV9R0A3"
}

Przekieruj płatnika na Panel Transakcyjny

Przekieruj płatnika na URL zawarty w odpowiedzi w polu transactionPaymentUrl.

Pod wskazanym URL płatnik zobaczy arkusz płatności z listą dostępnych kart płatniczych zapisanych na jego koncie Google albo formularz logowania do konta Google.

Płatnik wybiera kartę i finalizuje transakcję.

Uwaga

Jeśli integrujesz płatności z aplikacją mobilną i otwierasz panel transakcyjny w WebView, metoda płatności Google Pay nie zostanie poprawnie obsłużona. Zalecamy otwarcie płatności w domyślnej przeglądarce internetowej lub integrację on-site.

Płatnik zostanie przekierowany na stronę sukcesu lub porażki

Gdy płatność zostanie zakończona, płatnik zostanie przekierowany na stronę sukcesu (success page) lub stronę porażki (error page) w zależności od tego, czy transakcja się udała.

Obsłuż powiadomienie

Poinformujemy Ciebie o statusie transakcji na webhook transakcyjny. Sprawdź szczegóły.

Google Pay on-site

Google Pay on-site to integracja płatności Google Pay bezpośrednio w sklepie internetowym/aplikacji mobilnej.

Polega ona na umieszczeniu mechanizmu do płatności Google Pay w sposób umożliwiający klientom płatność bezpośrednio z poziomu Twojej strony internetowej/aplikacji mobilnej.

Uwaga

Metoda Google Pay on-site aktualnie jest dostępna tylko dla agenta rozliczeniowego Pekao. Sprawdź, czy Twoje płatności kartowe, są realizowane za pośrednictwem tego agenta rozliczeniowego.

Obsługiwane scenariusze integracji

Google Pay on-site może zostać zintegrowany w następujących scenariuszach:

ScenariuszOpis
Aplikacja Android (natywna)Google Pay uruchamiany bezpośrednio w natywnej aplikacji mobilnej na Androida, gdzie integracja realizowana jest poprzez implementację Google Pay API for Android.
Aplikacja Android z WebViewGoogle Pay uruchamiany w aplikacji mobilnej poprzez komponent WebView, gdzie użytkownik jest przekierowywany do panelu transakcyjnego Tpay obsługującego płatność Google Pay.
Przeglądarka internetowa (Web)Google Pay uruchamiany bezpośrednio na stronie checkoutu w Twoim sklepie internetowym, gdzie integracja realizowana jest poprzez implementację Google Pay JavaScript SDK.

Integracja w aplikacji mobilnej (Android - natywna)

Jeżeli integrujesz swoją płatność w aplikacji mobilnej na Androida, zrealizuj instrukcję przygotowaną przez Google:

Instrukcja aplikacja mobilna.

Wymagania:

Aby poprawnie uruchomić Google Pay w aplikacji Android, aplikacja powinna:

  • być podpisana certyfikatem aplikacji (SHA-256),
  • zostać zgłoszona i skonfigurowana w Google Pay & Wallet Console,
  • posiadać poprawnie skonfigurowany package name zgodny z danymi aplikacji zarejestrowanymi w Google.

Wymagania aplikacyjne oraz konfiguracja środowiska zostały opisane w dokumentacji Google:

Testowanie i gotowość produkcyjna

Google udostępnia checklistę wymagań funkcjonalnych i brandingowych, które należy spełnić przed publikacją integracji:

Integration checklist (Android)

Integracja w aplikacji mobilnej z Webview

W przypadku integracji Google Pay w aplikacji mobilnej z wykorzystaniem WebView, aplikacja powinna przekierować użytkownika do panelu transakcyjnego Tpay, gdzie uruchamiana jest płatność Google Pay.

W tym modelu:

  • integracja Google Pay realizowana jest na panelu transakcyjnym Tpay,
  • nie implementujesz Google Pay bezpośrednio w swojej aplikacji ani na stronie checkoutu.

Wymagania po stronie aplikacji:

Aby płatność Google Pay mogła zostać poprawnie uruchomiona w WebView, aplikacja powinna:

  • korzystać z aktualnych wersji Android System WebView / Chrome,
  • posiadać włączoną obsługę Payment Request API w środowisku WebView,
  • spełniać wymagania Google dotyczące obsługi płatności w WebView,
  • przejść proces publikacji integracji aplikacji w Google Pay & Wallet Console (dla środowiska produkcyjnego).

Szczegółowe kroki wdrożeniowe opisane są w dokumentacji Google:

Uwaga

W przypadku gdy środowisko WebView nie spełnia wymagań Google Pay, przycisk płatności może nie zostać wyświetlony lub płatność nie zostanie poprawnie uruchomiona.

Integracja webowa (przeglądarka)

Jeżeli integrujesz swoją płatność w systemie, który płatnik obsługuje poprzez przeglądarkę internetową, zrealizuj samouczek przygotowany przez Google:

Instrukcja przeglądarka.

Rejestracja domeny (Web – wymagana)

W przypadku integracji Google Pay w przeglądarce musisz zgłosić domenę, na której uruchamiany jest checkout, w Google Pay & Wallet Console.

Aby to zrobić:

  1. Zaloguj się do Google Pay & Wallet Console
  2. Przejdź do sekcji Business information → Websites
  3. Dodaj domenę, z której wywoływane jest Google Pay API
  4. Prześlij domenę do zatwierdzenia przez Google

Podczas procesu zatwierdzania Google weryfikuje m.in.:

  • poprawność implementacji Google Pay API,
  • zgodność integracji z wymaganiami bezpieczeństwa,
  • działanie płatności w środowisku testowym i produkcyjnym,
  • zgodność z wytycznymi dotyczącymi checkoutu oraz UX.

Rejestracja domeny dotyczy integracji realizowanej bezpośrednio na stronie merchanta. Jeśli płatność odbywa się poprzez przekierowanie do panelu transakcyjnego Tpay, rejestracja domeny po stronie merchanta nie jest wymagana.

Dodatkowe wymagania oraz lista kroków wdrożeniowych dostępne są w dokumentacji Google

Konfiguracja Google Pay SDK dla integracji webowej

W celu poprawnej implementacji skonfiguruj Google Pay SDK w następujący sposób.

Wersja Google Pay API wykorzystywana w integracji:

const baseRequest = {
  apiVersion: 2,
  apiVersionMinor: 0,
};

Brama wykorzystywana podczas płatności:

const tokenizationSpecification = {
  type: "PAYMENT_GATEWAY",
  parameters: {
    gateway: "tpaycom",
    gatewayMerchantId: "{MERCHANT_ID}",
  },
};
parameters.gateway
Upewnij się, że masz ustawiony na tpaycom.
{MERCHANT_ID}
Unikalny identyfikator, który został ci nadany podczas rejestracji konta w Tpay.

Obsługiwane sieci kart:

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

Obsługiwane metody autoryzacji:

const allowedCardAuthMethods = ["PAN_ONLY", "CRYPTOGRAM_3DS"];

Format adresu:

const BillingAddressParameters = {
  format: "MIN",
};

Wartość podana wyżej jest wartością standardową, nie musisz jej implementować.

Wyślij zapytanie o utworzenie transakcji Google Pay

Aby utworzyć transakcję Google Pay, wyślij żądanie POST na endpoint:

https://api.tpay.com/transactions

Sprawdź szczegóły w dokumentacji API Reference: POST /transactions

W zapytaniu określ następujące parametry:

amount
 *
Kwota transakcji.
description
 *
Opis transakcji widoczny dla płatnika.
payer.email
Adres e-mail płatnika.
payer.name
Imię i nazwisko płatnika.
payer.ip
Adres IP płatnika (IPv4 lub IPv6).
groupId
Identyfikator grupy płatności dla Google Pay: 166.

* Pola obowiązkowe.

Podstawowe body żądania powinno wyglądać następująco:

{
  "amount": 0.1,
  "description": "Testowa płatność Google Pay",
  "payer": {
    "email": "[email protected]",
    "name": "Jan Nowak",
    "ip": "127.0.0.1"
  },
  "pay": {
    "groupId": 166
  }
}

Przykład:

curl --location 'https://api.tpay.com/transactions' \
--header 'Authorization: Bearer <access_token>' \
--header 'Content-Type: application/json' \
--data-raw '{
"amount": 0.1,
"description": "Testowa płatność Google Pay",
"payer": {
"email": "[email protected]",
"name": "Jan Nowak"
"ip": "127.0.0.1"
},
"pay": {
"groupId": 166
}
}'

Po wysłaniu żądania otrzymasz w odpowiedzi schemat TransactionCreated.

Najważniejsze parametry odpowiedzi:

result
success - Transakcja została utworzona pomyślnie.
status
pending - Transakcja oczekuje opłacenia.
transactionId
Unikalny identyfikator transakcji - przechowaj go swoim systemie.

Przykład odpowiedzi:

{
  "result": "success",
  "requestId": "8d67feda5067b7df97f0",
  "transactionId": "01K5BK4HEPB0WBCGT51FMTYSYJ",
  "title": "TR-BRA-CN7CN3X",
  "posId": "ps_NyRBLzV5kelrpjaM",
  "status": "pending",
  "date": {
    "creation": "2024-06-04 21:39:46",
    "realization": null
  },
  "amount": 0.1,
  "currency": "PLN",
  "description": "Testowa płatność Google Pay",
  "hiddenDescription": "",
  "payer": {
    "payerId": "py_a9rjlZWxRLdG1bqY",
    "email": "[email protected]",
    "name": "Jan Nowak",
    "ip": "127.0.0.1",
    "phone": "",
    "address": "",
    "city": "",
    "country": "PL",
    "postalCode": ""
  },
  "payments": {
    "status": "pending",
    "method": "pay_by_link",
    "amountPaid": 0,
    "date": {
      "realization": null
    }
  },
  "transactionPaymentUrl": "https://secure.tpay.com/?title=TR-BRA-CN7CN3X&uid=01HZJC7HJXA31Z67XNWRV9R0A3"
}

Przetwórz obiekt odpowiedzi

Gdy płatnik potwierdzi płatność w formularzu Google Pay, obsłuż zwracane dane płatności.

Przeglądarka:

Przeglądarka jak przetworzyć dane płatności.

Android:

Android jak przetworzyć dane płatności.

Opłać transakcję wykorzystując token płatniczy

W celu opłacenia transakcji Google Pay on-site wykorzystaj wcześniej przechowany parametr transactionId, wysyłając żądanie POST na adres:

https://api.tpay.com/transactions/{transactionId}/pay

Umieść {transactionId} w adresie URL np.:

https://api.tpay.com/transactions/01K5BK4HEPB0WBCGT51FMTYSYJ/pay

Sprawdź szczegóły w dokumentacji API Reference: POST /transactions/{transactionId}/pay

W zapytaniu określ następujące parametry:

groupId
 *
Identyfikator grupy płatności dla Google Pay: 166.
googlePayPaymentData
 *
Zaszyfrowany token płatności w formacie base64.

* Pola obowiązkowe.

Uwaga

Token płatności znajduje się w obiekcie paymentMethodData.tokenizationData.token. Zaszyfruj jego zawartość algorytmem base64.

Podstawowe body żądania powinno wyglądać następująco:

{
  "groupId": 166,
  "googlePayPaymentData": "ewogInRwYXkiIDogIkhlbGxvIFdvcmxkIgp9"
}

Przykład:

curl --location 'https://api.tpay.com/transactions/01K5BK4HEPB0WBCGT51FMTYSYJ/pay'\
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <access_token>' \
--data '{
"groupId": 166,
"googlePayPaymentData": "ewogInRwYXkiIDogIkhlbGxvIFdvcmxkIgp9"
}'

Po wysłaniu żądania otrzymasz w odpowiedzi schemat TransactionCreated.

Obsłuż przekierowanie 3D Secure (3DS)

Parametr status o wartości pending, oznacza, że transakcja wymaga dodatkowego uwierzytelnienia 3DS. Przekieruj płatnika na adres zawarty w parametrze transactionPaymentUrl, gdzie będzie mógł zrealizować uwierzytelnienie 3DS. Sprawdź więcej.

Wyświetl wynik transakcji

Po otrzymaniu notyfikacji o statusie transakcji wykorzystaj pole tr_status i wyświetl wynik transakcji.