Google Pay
Google Pay nabízí uživatelům pohodlný, rychlý a bezpečný způsob platby prostřednictvím zařízení se systémem Android. Následující dokument popisuje postup integrace tlačítka Google Pay do mobilní aplikace a získání platebního tokenu, který se následně odesílá ke zpracování do platební brány Comgate.
1. Google Play Console
Před nasazením Google Pay do produkční verze aplikace je nutné aplikaci správně nakonfigurovat a publikovat v obchodě Google Play. Tento krok je požadován společností Google a je nezbytný pro aktivaci Google Pay v souladu s jejími podmínkami.
Konfigurace, nahrávání a správa aplikace se provádí prostřednictvím rozhraní Google Play Console. Aplikace musí být dostupná minimálně v režimu interního nebo uzavřeného testování. Možností je také plné zveřejnění.
V dokumentaci není popsán podrobný postup nastavení v Google Play Console. Proces může být rozsáhlý a liší se podle konkrétní situace, proto doporučujeme řídit se oficiálními pokyny společnosti Google.
Během vývoje je také nutné zohlednit další požadavky Google, které se týkají zveřejnění aplikace s dostupným Google Pay.
2. Google Pay Console
Jakmile je aplikace zpřístupněna alespoň v režimu interního testování, je vhodné seznámit se s požadavky na schválení v Google Pay Console. Tento krok je nezbytný pro aktivaci produkční verze Google Pay.
Celý proces registrace a konfigurace je popsán v oficiální dokumentaci.
Schvalovací proces může trvat několik dní a vyžaduje splnění následujících požadavků:
- pravidel pro používání značky (brand guidelines),
- doporučených postupů UX,
- a podmínek uvedených v kontrolním seznamu integrace.
Součástí schvalovacího procesu je také doložení screenshotů implementace Google Pay ve vaší aplikaci.
V tomto kroku postačuje zřídit přístup do Google Pay Console a ověřit, že je v sekci „Rozhraní API služby Google Pay“ uvedena vaše aplikace, která byla nakonfigurována v Google Play Console.
Podání žádosti o schválení bude popsáno v pozdější sekci, a to po dokončení integrace.
3. Implementace
Následující část popisuje jednotlivé kroky potřebné k integraci tlačítka Google Pay do mobilní aplikace – od jeho konfigurace až po získání platebního tokenu.
Vzorový projekt
Pro orientaci v implementaci doporučujeme stáhnout a prozkoumat oficiální vzorový projekt Google Pay. Naše testovací implementace i následující kroky v dokumentaci vycházejí ze šablony Basic integration napsané v jazyce Java.
Tutorial
Před implementací tlačítka Google Pay je nutné do projektu přidat potřebné závislosti. Postup přidání je popsán v oficiální dokumentaci: Setup – Google Pay for Android
Po úspěšném nastavení závislostí lze pokračovat samotnou implementací. Doporučujeme řídit se oficiálním návodem: Tutorial – Google Pay for Android
V průběhu implementace je potřeba definovat specifické konfigurační údaje. Doporučujeme tedy současně sledovat naši dokumentaci, zejména sekci Pokyny pro implementaci, aby konfigurace odpovídala požadavkům Comgate.
Pokyny pro implementaci
Při integraci Google Pay je nutné postupovat podle konkrétních kroků, které definují základní konfiguraci, nastavení identifikátorů a odesílání platebních požadavků. Následující části shrnují doporučený postup a navazují na vzorový projekt od společnosti Google.
Krok 1 – konfigurace platby
Prvním krokem integrace je nastavení základních parametrů, které určují chování platby. Google tento krok označuje jako Step 1 – Payment configuration.
Pokud aplikace potřebuje získat e-mail nebo doručovací údaje uživatele prostřednictvím Google Pay, je možné rozšířit konfigurační objekt o příslušné parametry. Tyto údaje nejsou na straně Comgate dále zpracovávány. Pokud je nevyužíváte, doporučujeme je do požadavku nezařazovat.
Následující tabulka obsahuje požadované položky konfigurace a jejich doporučené hodnoty:
Klíč | Hodnota | Poznámka |
---|---|---|
apiVersion | 2 | |
apiVersionMinor | 0 | |
tokenizationSpecification | ||
type | "PAYMENT_GATEWAY" | Podporován je pouze typ PAYMENT_GATEWAY . Typ DIRECT není podporován. |
gateway | "itcardpaymentservice" | |
gatewayMerchantId | Gxxxxxxxxxx | Hodnotu naleznete v klientském portálu Comgate. Více pod tabulkou. |
allowedPaymentMethods | ||
allowedCardNetworks | "MASTERCARD" a "VISA" | Jiné karetní sítě nejsou podporovány. |
allowedAuthMethods | ||
allowedCardAuthMethods | "PAN_ONLY" a "CRYPTOGRAM_3DS" |
Kde najdu hodnotu pro parametr gatewayMerchantId
?
Hodnotu naleznete v klientském portálu Comgate: Integrace → Nastavení obchodů → váš obchod
Hodnota musí začínat písmenem
G
následovaným čísly.
Krok 2 – vytvoření PaymentsClient
Třída PaymentsClient
slouží jako hlavní rozhraní pro práci s Google Pay API. Její instanci je nutné vytvořit, aby bylo možné zobrazit tlačítko Google Pay a provádět samotné platby.
Při vývoji nebo testování aplikace je vždy nutné použít testovací prostředí.
Produkční platby jsou dostupné až po schválení aplikace v Google Pay Console a její instalaci přes Google Play — včetně režimu interního testování.
Krok 3 – dostupnost Google Pay na zařízení
V tomto kroku se ověřuje, zda zařízení uživatele podporuje Google Pay a je schopno zpracovávat platby.
Kontrola se provádí prostřednictvím metody isReadyToPay()
.
Ze strany Comgate nejsou k tomuto kroku vyžadovány žádné speciální úpravy.
Krok 4 – zobrazení tlačítka Google Pay
Způsob zobrazení tlačítka Google Pay musí odpovídat doporučeným UX principům a pravidlům pro používání značky Google Pay.
Dbejte na správný kontrast tlačítka vůči pozadí:
- na světlém pozadí použijte černou variantu tlačítka,
- na tmavém pozadí bílou variantu.
Tlačítko musí mít stejnou velikost jako ostatní akční prvky na obrazovce a nesmí být příliš blízko k jiným ovládacím prvkům – je nutné zachovat předepsaný ochranný prostor.
Grafiku tlačítka nelze nijak upravovat. Jediným přípustným způsobem úpravy je využití parametrů, které nabízí oficiální knihovna Google Pay.
Krok 5 – sestavení Payment Request objektu
Před odesláním požadavku je nutné připravit informace o transakci. Tato data určují částku, měnu a způsob, jakým má Google Pay vygenerovat platební token.
Klíč | Hodnota | Poznámka |
---|---|---|
transactionInfo | ||
totalPrice | 199.99 | Částka s desetinnou tečkou typu string . |
totalPriceStatus | "FINAL" | Používejte vždy hodnotu "FINAL" . |
countryCode | CZ | Vždy nastavte na "CZ" . |
currencyCode | CZK , EUR , ... | Musí odpovídat měně, ve které byla platba založena v systému Comgate. |
Hodnoty totalPrice
a currencyCode
musí přesně odpovídat údajům, se kterými byla nebo bude platba založena v systému Comgate.
Rozdíl v částce nebo měně může způsobit zamítnutí platby.
Vzorový Payment Request object
Pro lepší představu doporučujeme nahlédnout na vzorový objekt s kompletní konfigurací požadavku.
- Základní objekt
- Reálný objekt
{
"apiVersion":2,
"apiVersionMinor":0,
"allowedPaymentMethods":[
{
"type":"CARD",
"parameters":{
"allowedAuthMethods":[
"PAN_ONLY",
"CRYPTOGRAM_3DS"
],
"allowedCardNetworks":[
"MASTERCARD",
"VISA"
]
},
"tokenizationSpecification":{
"type":"PAYMENT_GATEWAY",
"parameters":{
"gateway":"<YOUR_GATEWAY>", // itcardpaymentservice nebo csob
"gatewayMerchantId":"<YOUR_MERCHANT_ID>" // Gxxxxxxxxxx nebo M1MIPSxxxx
}
}
}
],
"merchantInfo":{
"merchantName":"<YOUR_MERCHANT_NAME>" // Můj obchod
},
"transactionInfo":{
"totalPriceStatus":"FINAL",
"totalPrice":"<YOUR_PAYMENT_PRICE>", // 199.99
"currencyCode":"<YOUR_PAYMENT_CURRENCY>", // CZK
"countryCode": "CZ" // neměnit
}
}
{
"apiVersion": 2,
"apiVersionMinor": 0,
"allowedPaymentMethods": [
{
"type":"CARD",
"parameters": {
"allowedAuthMethods": [
"PAN_ONLY",
"CRYPTOGRAM_3DS"
],
"allowedCardNetworks": [
"MASTERCARD",
"VISA"
]
},
"tokenizationSpecification": {
"type":"PAYMENT_GATEWAY",
"parameters": {
"gateway":"itcardpaymentservice",
"gatewayMerchantId":"G14...55"
}
}
}
],
"merchantInfo": {
"merchantName":"Váš obchod"
},
"transactionInfo": {
"totalPriceStatus":"FINAL",
"totalPrice":"199.90",
"currencyCode":"CZK",
"countryCode": "CZ"
}
}
Krok 6 – dokončení integrace
V závěrečné fázi integrace dochází k propojení všech předchozích kroků a k plnému zprovoznění tlačítka Google Pay. Po kliknutí na tlačítko by mělo být možné získat platební token, který slouží pro další zpracování platby prostřednictvím Comgate API.
Zobrazení tlačítka Google Pay
Po úspěšném dokončení všech výše uvedených kroků by se mělo tlačítko Google Pay zobrazit přímo v aplikaci. Po jeho stisknutí se uživateli zobrazí standardní rozhraní Google Pay s detaily transakce a možností jejího potvrzení.
Získání payment tokenu
Po úspěšné autorizaci platby uživatelem Google Pay vygeneruje zašifrovaný platební token.
Potvrzení platby v dialogu Google Pay neznamená její automatické provedení. Pokud token neodešlete na API Comgate, platba nebude zpracována.
Platební token má omezenou platnost a je určen pouze pro jedno použití.
Platební token lze získat v callbacku handlePaymentSuccess(...)
, jak je uvedeno v oficiální ukázce pro Javu.
Token je součástí objektu PaymentData
a callback se volá po úspěšném potvrzení platby uživatelem.
Získaný token je nutné odeslat na Comgate API společně s dodatečnými údaji (paymentDetails
).
Token je dostupný ve struktuře: paymentData → paymentMethodData → tokenizationData → token
jako textový řetězec.
Před odesláním je nutné tento řetězec převést do formátu Base64, např. pomocí metody Base64.encodeToString(...)
.
Podrobný popis struktury objektu PaymentData
je k dispozici v oficiální
dokumentaci služby Google Pay.
final String token = paymentMethodData
.getJSONObject("tokenizationData")
.getString("token");
final String paymentToken = Base64.encodeToString(token.getBytes(), Base64.NO_WRAP);
Map<String, Object> paymentDetails = new HashMap<>();
paymentDetails.put("displayName", paymentMethodData.getString("description"));
paymentDetails.put("network", paymentMethodData.getJSONObject("info").getString("cardNetwork"));
paymentDetails.put("cardType", paymentMethodData.getString("type"));
Zpracování tokenu
Získaný platební token je nutné odeslat na API Comgate společně s doplňujícími údaji. API je jednotné pro platby uskutečněné pomocí Google Pay i Apple Pay.
Podrobný postup pro odeslání dat a zpracování platby je uveden v sekci Zpracování platby.
Před zahájením další implementace doporučujeme podat žádost o schválení Google Pay v Google Pay Console. Díky integraci tlačítka Google Pay již aplikace splňuje předpoklady pro doložení požadovaných screenshotů.
4. Podání žádosti o schválení
Pro aktivaci Google Pay v produkčním režimu je nutné odeslat žádost o schválení prostřednictvím Google Pay Console. Tento krok je nezbytný pro zpřístupnění plateb reálným plátcům a zároveň zajišťuje soulad s požadavky společnosti Google.
Checklist integrace
Před podáním žádosti je nutné projít kontrolní seznam integrace a ověřit, zda je integrace funkční. Google neprovádí detailní kontrolu splnení jednotlivých položek checklistu. V rámci integrace přes Comgate není možné splnit všechny požadavky uvedené v seznamu, přesto doporučujeme ověřit alespoň klíčové části.
Následující tabulka shrnuje požadavky, které buď není možné v rámci integrace s Comgate splnit, nebo jejich splnění není povinné:
Sekce | Test | Splnitelnost | Vysvětlení |
---|---|---|---|
Basics | If you complete a DIRECT tokenizationSpecification type integration... | Nelze splnit | Integrace probíhá prostřednictvím platební brány.
Přímá integrace (DIRECT ) není podporována. |
Functional tests | If you require a shipping address... | Volitelné | Adresa není na straně Comgate zpracovávána. |
If you require a telephone number... | Volitelné | Telefonní číslo není na straně Comgate zpracováváno. |
Průvodce žádostí
Než podáte žádost o schválení, doporučujeme připravit si všechny požadované screenshoty aplikace.
Google vyžaduje snímky obrazovky znázorňující následující situace:
- uživatel si prohlíží položku nebo službu,
- uživatel je připraven dokončit nákup,
- uživatel si zvolil Google Pay jako platební metodu,
- uživateli se zobrazují platební údaje uložené v Google Pay (doporučujeme vyfotit jiným zařízením),
- nákup byl úspěšně dokončen.
Přesné znění požadavků najdete na konci formuláře žádosti v Google Pay Console.
- Přihlaste se do Google Pay Console a vyberte obchodní profil, pod kterým budou platby Google Pay provozovány.
- Na úvodní stránce (případně v levém menu v sekci Rozhraní API služby Google Pay → Integrate with your Android app) zvolte aplikaci, pro kterou má být žádost o schválení podána.
- Výběr z hlavní stránky
- Výběr prostřednictvím menu vlevo
- Ve formuláři v sekci Your Google Pay API integration type zvolte možnost Brána (Gateway).
- Nahrajte všechny připravené screenshoty, které demonstrují správnou funkčnost Google Pay ve vaší aplikaci.
Některé kategorie ve formuláři mohou obsahovat shodné screenshoty – záleží na tom, jakým způsobem je navržen váš checkout proces.
-
Po vyplnění všech požadovaných údajů klikněte na tlačítko Uložit.
-
Pokud se formulář úspěšně uloží (v některých případech může tlačítko „Uložit“ zůstat zablokované v animaci) a neobsahuje žádné chyby, zobrazí se v horní části stránky nová sekce pro odeslání žádosti. Zkontrolujte, že jsou splněny všechny požadavky, potvrďte je zaškrtnutím příslušných políček a klikněte na tlačítko Submit for approval, čímž žádost odešlete.
Po odeslání žádosti provede podpora Google Pay kontrolu vaší aplikace. V případě úspěchu bude integrace schválena, v opačném případě obdržíte e‑mail s instrukcemi, co je potřeba upravit. Proces schvalování může trvat několik dní.
V některých případech se může stát, že podpora Google Pay na žádost delší dobu nereaguje. Doporučujeme vyčkat alespoň 5 pracovních dní (dle kalendáře USA) a teprve poté kontaktovat podporu s dotazem na stav žádosti.
Možnost Kontaktovat podporu najdete v levém menu Google Pay Console.
- Jakmile je aplikace schválena, obdržíte email s potvrzením. Schválení též uvidíte v Google Pay Console, kde bude aplikace označena jako "Aktivní". nyní je možné přepnout Google Pay v aplikaci do produkčního režimu.
5. Testovací prostředí
Na rozdíl od integrace Apple Pay je testování Google Pay podstatně jednodušší. Pro testování je však nutné použít fyzické zařízení s aktivovanou peněženkou Google Wallet.
Jako doplněk při vývoji lze využít také emulátor systému Android, integrovaný v rámci Android Studia. Ten však podporuje pouze omezené funkce, například zobrazení tlačítka Google Pay.
Fyzické Android zařízení
Pro plnohodnotné testování Google Pay doporučujeme používat skutečné zařízení. Zařízení musí být přihlášeno k libovolnému účtu Google a podporovat Google Wallet.
Pro testování postačí, pokud je aplikace sestavena s konfigurací testovacího prostředí, která se nastavuje v kroku 2.
-
Připravte zařízení
- Zkontrolujte, že je nainstalována aktuální verze Androidu.
- Přihlaste se do Google účtu určeného pro testování.
- Připravte si USB kabel pro připojení zařízení k počítači.
-
Aktivujte vývojářský režim
- Postup aktivace se liší podle výrobce a verze systému. Řiďte se oficiální dokumentací, případně pokyny výrobce.
- Aktivujte volby USB debugging a povolení instalace aplikací z neznámých zdrojů.
-
Testovací karty
- Pokud je Google Pay správně nastaven pro testování, po kliknutí na tlačítko Google Pay se automaticky zobrazí testovací karty.
- Tyto karty nelze použít pro reálné transakce a slouží výhradně k ověření integrace.
- Podrobnosti naleznete v oficiální dokumentaci Google.
-
Spusťte aplikaci na zařízení
- Pro spuštění aplikace na připojeném testovacím zařízení postupujte podle oficiálních pokynů Android Studia.
-
Otestujte platbu
- Po spuštění aplikace klikněte na tlačítko Google Pay.
- Pokud je vše nastaveno správně, zobrazí se výběr testovacích karet.
- Transakce bude simulována – nedojde k jejímu reálnému provedení.
Pokud se Google Pay nezobrazuje, zkontrolujte nastavení klienta Google Pay v testovacím režimu, správnost Payment Request objektu a podporu Google Wallet na zařízení.
Android emulátor
Android emulátor podporuje Google Pay pouze v omezeném rozsahu. Lze otestovat zobrazení tlačítka Google Pay a základní UI. Není možné dokončit platbu ani získat platební token. Pro testování generování tokenu je vždy nutné použít fyzické Android zařízení.
Spuštění aplikace v emulátoru je popsáno v oficiální dokumentaci.
Na Android emulátoru nelze získat zašifrovaný platební token. Jedná se o záměrné omezení ze strany společnosti Google.