Ограничения
Демо
Требования к брендированию
Документация по интеграции Google Pay API
Инструкция
Интегрируйте Google Pay API следуя документации выше для получения PaymentData.
Параметры:
allowPaymentMethods : CARD
tokenizationSpecification = { "type": "PAYMENT_GATEWAY"}
allowedCardNetworks = ['MASTERCARD', 'VISA'];
allowedCardAuthMethods = ['PAN_ONLY', 'CRYPTOGRAM_3DS'];
gateway = platon
gatewayMerchantId = CLIENT_KEY (выдается сотрудником компании Platon)
Если все сделано правильно - на своем сайте/приложении вы получите кнопку GooglePay и после выбора карты вам вернется набор данных с PaymentData.
Для просмотра примера раскройте список
Пример набора данных, которые возвращаются от Google Pay
{
"apiVersionMinor": 0,
"apiVersion": 2,
"paymentMethodData": {
"description": "Mastercard •••• 5179",
"tokenizationData": {
"type": "PAYMENT_GATEWAY",
"token": {
"signature": "MEYCIQC+IHxUu9Wwra2Vu6tBa2wJPCMT3pWtN1VphLGYtNVLLwIhAOkdbNje//eLrXVc+n6LOlc4PqxWOUcqwrmki/CNA1ur",
"intermediateSigningKey": {
"signedKey": "{\"keyValue\":\"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEwhRrvGB0kZ1248MEJAPwX0YfrQInhyyRM7nyGFjQuzGSViZG3QC9NMvXR9Zd6uVcVzAz+6K/+NEGIWbX8zbk6A\\u003d\\u003d\",\"keyExpiration\":\"1571208568000\"}",
"signatures": [
"MEUCIQCR6vIEiyHB8qmlho4/tLd7W8CIGrZDJlCI48CBHeFPvQIgLZJIe4cZv6pYtYYa56QCI/vvg1GqXTP3bTBjO49r5mI="
]
},
"protocolVersion": "ECv2",
"signedMessage": "{\"encryptedMessage\":\"k85CGUMmd5PaGmQlHFqHc0HrDZmjM1yG82rFB/p31ZyUleN5nihzjOZif/BKXwg3XA2oLXqBSSWcAdfZwXxCEOqvAQE+kpTC7qVO4wTPip6RruraT6vO9M9FtIf0kcqzYSAN7pl1SUA5jC9rHrqucPoh0/FSspup78SWBt8TnmVKC9O3sQhIZ3SMoGOG4mdjtIrgCwWH2cbrxUH0dHAqOe5ANGOY/mII4nTEp7xaKu41hK/kFE15zVyqgPJXP9bPxzMVk/ozEZSfhSzVTS+9stjkU/kT5EibKB3O1bbxyybKcGQ5vxBOtNOBKKd/NuqNmN2eEK3UbSKb1M3gv45gT9cCeEvlzO7Wg0N100vUBp9RPDN9TH4tj4w578sWFKfTi6FsSrZB27SGWcU0EaKHO9buo94mRBY5yqffF3bKg5mAMPzjDhyHSujqWKAs9C5fBzMEuEr2z7A23kfLqBceH5uS9LJMiZ/yVKCwfpY9u2XyCjKdp7I\\u003d\",\"ephemeralPublicKey\":\"BAMDAtfgcPNuzItrwGLigGj3rtxmyHhZLwx1B4RJZ2oo11jpFf3SA6a3utryCMmlCEcqLfLn6WDH2ArrNBGn+Ew\\u003d\",\"tag\":\"T/qhZ/XY5/3Fe4QBKafm6NqS6EzwVeiKXhRlp8NeWrA\\u003d\"}"
}
},
"type": "CARD",
"info": {
"cardNetwork": "MASTERCARD",
"cardDetails": "5179"
}
}
}
Настройте отправку полученного значения параметра "token" POST запросом по API Platon, в параметре payment_token
Предусловия
Прежде чем вы получите доступ к платежной платформе, вы должны предоставить следующее данные администратору платежной платформы:
список ваших IP-адресов, с которых будут направляться запросы на платежную платформу;
callback URL - URL-адрес, на который будет отправляться уведомления о результатах обработки Вашего запроса через платежную платформу;
контактный E-mail разработчика.
Краткое описание взаимодействия с платежной платформой
Для транзакций вы должны отправлять POST-запрос сервер на сервер HTTPS с помощью полей, перечисленные ниже, на PAYMENT_URL.
Если мерчант поддерживает 3D-Secure тогда платежная платформа вернет ссылку на сервер управления безопасностью для выполнения 3D-Secure проверки. В этом случае вам необходимо перенаправить держателя карты на эту ссылку. Если есть иные параметры, которые отдаются ссылкой необходимо перенаправить владельца карты по этой ссылке вместе с параметрами, используя метод передачи данных, указанный в том же самом результате.
В случае 3D-Secure после проверки на стороне сервера 3D-Secure Владелец кредитной карты вернется на ваш сайт, используя ссылку, указанную в запросе и платежная система вернет результат обработки транзакции на указанный CALLBACK URL.
API параметры запроса
HTTP METHOD: POST
API ENDPOINT: https://secure.platononline.com/post/
Параметр | Значение | Описание | Особенности | Обязательно |
---|
action
| GOOGLEPAY
| Код платежного метода | | ДА |
async
| Y
N
| Включить асинхронный режим | В асинхронном режиме обязательное использование коллбеков. По умолчанию значение N | НЕТ |
client_key
| String | API ключ мерчанта | Ключ предоставляется на почту мерчанту | ДА |
channel_id
| String | Дополнительный платежный канал | Позволяет отправить платежи на другой банковский терминал | НЕТ |
order_id
| String | ID платежа в системе мерчанта | Max 32 символа | ДА |
order_amount
| Number | Сумма платежа | | ДА |
order_currency
| UAH
| Валюта платежа | | ДА |
order_description
| String | Описание платежа | Max 255 символов | ДА |
payment_token
| String | Токен, полученный мерчантом от Google | | ДА |
payer_first_name
| String | Имя плательщика | Max 32 символа без пробелов | НЕТ |
payer_last_name
| String | Фамилия плательщика | Max 32 символа без пробелов | НЕТ |
payer_middle_name
| String | Отчество плательщика | Max 32 символа без пробелов | НЕТ |
payer_birth_date
| String | Дата рождения плательщика | В формате “YYYY-MM-DD” | НЕТ |
payer_address
| String | Адрес плательщика | Max 256 символа Укажите NA , если нет данных | НЕТ |
payer_country
| String | Страна плательщика | Стандарт ISO 3166-1 alpha-2 В формате "ХХ" 2 символа Укажите NA , если нет данных | НЕТ |
payer_state
| String | Штат плательщика | Стандарт ISO 3166-2 В формате "ХХ" 2 символа Укажите NA , если нет данных | НЕТ |
payer_city
| String | Город плательщика | Max 32 символа Укажите NA , если нет данных | НЕТ |
payer_zip
| String | Почтовый индекс плательщика | Max 32 символа Укажите NA , если нет данных | НЕТ |
payer_email
| String | E-mail плательщика | Max 256 символа | НЕТ |
payer_phone
| Number | Номер телефона плательщика | | НЕТ |
payer_ip
| Number | IP-адрес плательщика | В формате "ХХХ.ХХХ.ХХХ.ХХХ" | НЕТ |
term_url_3ds
| String | Ссылка по которой будет отправлен клиент после успешной оплаты при прохождении 3DS | Max 255 символов | НЕТ |
ext1-ext10
| String | 10 дополнительных полей | Max 1024 символа в каждом ext поле | НЕТ |
auth
| Y
N
| Холдирование средств на карте плательщика | По умолчанию N | НЕТ |
req_token
| Y
N
| Для получения card_token | По умолчанию N | НЕТ |
hash
| String | Контрольная подпись |
md5(
strtoupper(
strrev($payer_email).
$CLIENT_PASS.
strrev($payment_token)
)
)
| ДА |
Примеры запроса:
Для просмотра примера раскройте список
Пример запроса на PHP
<?php
$CLIENT_PASS='***';
$data['action']='GOOGLEPAY';
$data['CLIENT_KEY']='***';
$data['order_id']='Test_006';
$data['order_amount']='0.51';
$data['order_currency']='UAH';
$data['order_description']='test';
$data['payment_token']='{"signature":"MEUCIQD+9/PnFvB+Lo6d/eHpgqQrMvmRDZdW1AcjQKavHrcPmQIgeVjR1hXqH7hkCn+VZqx/kjdofMIYbyL15Xp52mR9+2s\u003d","intermediateSigningKey":{"signedKey":"{\"keyValue\":\"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEBOHyOhwWk6SK5nqhFBBI1hSvWHAaOO0Ukbrl56zx7fPNttFFKs2U10f6EWbdhULrv4QT4qMNbyVAq8ig1jdsYA\\u003d\\u003d\",\"keyExpiration\":\"1570945959000\"}","signatures":["MEYCIQCe6t42U5OemtGGdYC6npBNbVxe1HbTF8pUkSD7mO+CWAIhAI/0M/XQuW6i8reT0LCNHKoNfgWYwOWHBoj2wpZdgKHh"]},"protocolVersion":"ECv2","signedMessage":{\"encryptedMessage\":\"U9ChAIukmQ85TdZKAU/26mJUwUt3cVpJmx/JtFi350F/KiRNiIEGi1CmkgVe+ohzikkKLo37Ty3YQjyjVHNTHmF3AyNVTIJCL7qYybt+aFNI1XFlpv3ArWU+fH8Bi190tl7lLyyeNjWx8L402spsLpuUe9OLLjazIq0Vfjw3wRZ2B2+ybUrnoz5Iydapn8B7c/QqR7w53n6svIK58q7eL159Ano0GyfLpUOLLQ949MhP1ze***UzapUGtMd0k0c/4Nnkfs2TnN6ETEtP8y9J29hYKGVOCo79rRSN2xLsYXGNawIiPc6082HWB82JyuW2bfWAL1R0W+2iql2dBWY\\u003d\",\"ephemeralPublicKey\":\"BPYYpVT5INyXSwoNbP/HuGkjQnfnUwUPMH2bCp6Od3EoihnegFZObjP0IVvDA5YfNlLDJjHutBDj30GW5Fei8xw\\u003d\",\"tag\":\"qt4FcCGO4rp969CBBTPJ0nhAeQeR+rOM0FmXk8DdGLQ\\u003d\"}"}';
$data['payer_email']='sale@gmail.com';
$data['term_url_3ds']='http://google.com';
$hash = md5(
strtoupper(
strrev(
$data['payer_email']
).
($CLIENT_PASS).
strrev(
$data['payment_token']
)
)
);
?>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Payment</title>
</head>
<body onload="javascript:document.forms[0].submit()">
<form action="https://secure.platononline.com/post/" method="post">
<input type="hidden" name="action" value="<?=$data['action']?>" />
<input type="hidden" name="client_key" value="<?=$data['client_key']?>" />
<input type="hidden" name="order_id" value="<?=$data['order_id']?>" />
<input type="hidden" name="order_amount" value="<?=$data['order_amount']?>" />
<input type="hidden" name="order_currency" value="<?=$data['order_currency']?>" />
<input type="hidden" name="order_description" value="<?=$data['order_description']?>" />
<input type="hidden" name="payment_token" value="<?=$data['payment_token']?>" />
<input type="hidden" name="payer_email" value="<?=$data['payer_email']?>" />
<input type="hidden" name="term_url_3ds" value="<?=$data['term_url_3ds']?>" />
<input type="hidden" name="hash" value="<?=$hash?>" />
</form>
</body>
</html>
Работа с Callback
Callback и Response (Синхронный режим)
Для просмотра примера раскройте список
Промежуточный Response при наличии 3DS проверки
{
"action": "SALE",
"result": "REDIRECT",
"status": "3DS",
"trans_id": "03346-89225-87891",
"order_id": "ORDER-12345",
"trans_date": "2012-04-0316:02:02",
"redirect_url": "https://server_3ds.com/3ds.php",
"redirect_params": {
"PaReq": "bc5865698ae46de4eba4c51f0359a714",
"MD": "111111111111111111111",
"TermUrl": "https://term_url.com/3ds/67c14e5?trans_id=03346-89225-87891&hash=8b98db60fb3c24c14a6d7075241da38b"
},
"redirect_method": "POST"
}
Параметры | Описание |
---|
action
| GOOGLEPAY |
result
| REDIRECT |
status
| 3DS |
order_id
| ID транзакции в системе мерчанта |
trans_id
| ID транзакции в платежной системе |
trans_date
| Дата транзакции в платежной системе. Время UTC |
redirect_url
| URL, на который должен быть перенаправлен плательщик |
redirect_params
| Массив определенных параметров 3DS |
redirect_method
| Метод передачи параметров (POST/GET) |
Промежуточный Callback при наличии проверки 3DS
array (
'action' => 'SALE',
'result' => 'REDIRECT',
'status' => '3DS',
'order_id' => '6b51033e-3e58-42e0-8ec3-88c97388018b',
'trans_id' => '28738-47774-55067',
'trans_date' => '2020-04-20 12:12:57',
'redirect_url' => 'https://acs.privatbank.ua/pPaReqMC.jsp',
'redirect_params' =>
array (
'PaReq' => 'eJxVUllu2zAQvYqg/4qUIlFUMGYgxykaoEqN2j4AIxGxUi2Olsb+K/qTG+S3VygKpGhRtL0CdaMMHWUDSHDeLJw3Cxxty8L6rJo2r6uJ7TrUtlSV1lleXUzs1fLtG24fCViuG6VmC5X2jRKQqLaVF8rKs4k9lx/VlRvw8ID7YRhFYcgDHrmeF/KQc8apG/jcFjCP0U/AmElgIscD8gjxyyZdy6oTINOr6emZwCgWcCAjhFI1pzPBXB66jAF5gFDJUolpPF29P1k4xx8SZxUD2Sshrfuqa3aCUx/II4C+KcS66zbtISGbQnZ1VeSVctK6BGJsQJ6ZzHsjtfjXNs9EMouv8e7w0uQy3p4t6HWy/IT4ZALEeEAmOyU86lHqe9RyvUM8QQRkrwdZGhKmcoplPQDYmBzxaDGGlwrAdjc4jZ2IOJqeEKjtpq4UemALn2TIVJsK/U3fDV/0nf4x3OL7b7jRf/Uv/dvS//Uf/X34Otzqn9a5PO8L1Zq6nV4iQxMK5Lni43dmEmmHTfZdN2CMMz/wzTj2OsMgx356B5TtKRgAxESRcdJk3BKUXm3PPfYf2CM=',
'TermUrl' => 'https://secure.platononline.com/3ds/4de0025?operation_type=purchase&trans_id=28738-47774-55067&hash=***************************************************
),
'redirect_method' => 'POST',
'hash' => '********************************',
)
Параметры | Описание |
---|
action
| SALE |
result
| REDIRECT |
status
| 3DS |
order_id
| ID транзакции в системе мерчанта |
trans_id
| ID транзакции в платежной системе |
trans_date
| Дата транзакции в платежной системе. Время UTC |
redirect_url
| URL, на который должен быть перенаправлен плательщик |
redirect_params
| Строка параметров |
redirect_method
| Метод передачи параметров (POST/GET) |
hash
| Зашифрованная подпись для проверки достоверности коллбека
md5(
strtoupper(
strrev(email).
CLIENT_PASS.
strrev(payment_token)
)
)
|
Response при успешном списании
{
"action": "SALE",
"result": "SUCCESS",
"status": "SETTLED",
"trans_id": "03346-89217-70541",
"order_id": "ORDER-12345",
"descriptor": "test",
"trans_date": "2012-04-03 16:02:01"
}
Параметры | Описание |
---|
action
| GOOGLEPAY |
result
| SUCCESS |
status
| PENDING/SETTLED; статус PENDING только когда было указано "auth=Y" |
order_id
| ID транзакции в системе мерчанта |
trans_id
| ID транзакции в платежной системе |
trans_date
| Дата транзакции в платежной системе. Время UTC |
descriptor
| Это строка, которую владелец кредитной карты увидит в выписка из банка. В большинстве случаев это веб-сайт поддержки клиентов. |
amount
| Сумма транзакции |
currency
| Валюта операции |
Callback при успешном списании
array (
'action' => 'SALE',
'result' => 'SUCCESS',
'status' => 'SETTLED',
'order_id' => '1_691201',
'trans_id' => '31176-65336-00444',
'trans_date' => '2021-01-27 16:55:33',
'descriptor' => NULL,
'auth_code' => '990647',
'hash' => '********************************',
)
Параметры | Описание |
---|
action
| SALE |
result
| SUCCESS |
status
| PENDING/SETTLED; статус PENDING только когда было указано "auth=Y" |
order_id
| ID транзакции в системе мерчанта |
trans_id
| ID транзакции в платежной системе |
trans_date
| Дата транзакции в платежной системе. Время UTC |
descriptor
| Это строка, которую владелец кредитной карты увидит в выписка из банка. В большинстве случаев это веб-сайт поддержки клиентов. |
auth_code
| Код авторизации от банка |
ext1-ext10
| Дополнительные поля от 1 до 10 |
hash
| Зашифрованная подпись для проверки достоверности коллбека
md5(
strtoupper(
strrev($payer_email).
$CLIENT_PASS.
strrev($payment_token)
)
)
|
Response при неуспешном списании
{
"action": "SALE",
"result": "DECLINED",
"status": "DECLINED",
"trans_id": "03346-89214-54141",
"order_id": "ORDER-12345",
"trans_date": "2012-04-0316:02:01",
"decline_reason": "Declined by processing"
}
Параметры | Описание |
---|
action
| GOOGLEPAY |
result
| DECLINED |
status
| DECLINED |
order_id
| ID транзакции в системе мерчанта |
trans_id
| ID транзакции в платежной системе |
trans_date
| Дата транзакции в платежной системе. Время UTC |
decline_reason
| Причина, по которой транзакция была отклонена |
Callback при неуспешном списании
array (
'action' => 'SALE',
'result' => 'DECLINED',
'status' => 'DECLINED',
'order_id' => '1_691201',
'trans_id' => '31176-65336-00444',
'trans_date' => '2021-01-27 16:55:33',
'decline_reason' => 'Declined by processing',
'hash' => '********************************',
)
Параметры | Описание |
---|
action
| SALE |
result
| DECLINED |
status
| DECLINED |
order_id
| ID транзакции в системе мерчанта |
trans_id
| ID транзакции в платежной системе |
trans_date
| Дата транзакции в платежной системе. Время UTC |
decline_reason
| Причина, по которой транзакция была отклонена |
hash
| Зашифрованная подпись для проверки достоверности коллбека
md5(
strtoupper(
strrev(email).
CLIENT_PASS.
strrev(payment_token)
)
)
|
Response в случая ошибки в запросе
{
"result": "ERROR",
"error_message": "Error description"
}
Callback и Response (Асинхронный режим)
Данный режим активируется при передаче async = Y
. В этом режиме обязательно необходимо принимать callback на ваш callback url.
Для просмотра примера раскройте список
Response о принятии запроса в обработку
{
"action": "SALE",
"result": "ACCEPTED",
"trans_id": "03346-89211-86461",
"order_id": "ORDER-12345",
"trans_date": "2012-04-03 16:02:01"
}
Параметры | Описание |
---|
action
| GOOGLEPAY |
result
| ACCEPTED |
order_id
| ID транзакции в системе мерчанта |
trans_id
| ID транзакции в платежной системе |
trans_date
| Дата транзакции в платежной системе. Время UTC |
Response в случая ошибки в запросе
{
"result": "ERROR",
"error_message": "Error description"
}
Callback при успешном списании
array (
'action' => 'SALE',
'result' => 'SUCCESS',
'status' => 'SETTLED',
'order_id' => '1_691201',
'trans_id' => '31176-65336-00444',
'trans_date' => '2021-01-27 16:55:33',
'descriptor' => NULL,
'auth_code' => '990647',
'hash' => '********************************',
)
Параметры | Описание |
---|
action
| SALE |
result
| SUCCESS |
status
| PENDING/SETTLED; статус PENDING только когда было указано "auth=Y" |
order_id
| ID транзакции в системе мерчанта |
trans_id
| ID транзакции в платежной системе |
trans_date
| Дата транзакции в платежной системе. Время UTC |
descriptor
| Это строка, которую владелец кредитной карты увидит в выписка из банка. В большинстве случаев это веб-сайт поддержки клиентов. |
auth_code
| Код авторизации от банка |
ext1-ext10
| Дополнительные поля от 1 до 10 |
hash
| Зашифрованная подпись для проверки достоверности коллбека
md5(
strtoupper(
strrev($payer_email).
$CLIENT_PASS.
strrev($payment_token)
)
)
|
Callback при неуспешном списании
array (
'action' => 'SALE',
'result' => 'DECLINED',
'status' => 'DECLINED',
'order_id' => '1_691201',
'trans_id' => '31176-65336-00444',
'trans_date' => '2021-01-27 16:55:33',
'decline_reason' => 'Declined by processing',
'hash' => '********************************',
)
Параметры | Описание |
---|
action
| SALE |
result
| DECLINED |
status
| DECLINED |
order_id
| ID транзакции в системе мерчанта |
trans_id
| ID транзакции в платежной системе |
trans_date
| Дата транзакции в платежной системе. Время UTC |
decline_reason
| Причина, по которой транзакция была отклонена |
hash
| Зашифрованная подпись для проверки достоверности коллбека
md5(
strtoupper(
strrev(email).
CLIENT_PASS.
strrev(payment_token)
)
)
|
Промежуточный Callback при наличии проверки 3DS
array (
'action' => 'SALE',
'result' => 'REDIRECT',
'status' => '3DS',
'order_id' => '6b51033e-3e58-42e0-8ec3-88c97388018b',
'trans_id' => '28738-47774-55067',
'trans_date' => '2020-04-20 12:12:57',
'redirect_url' => 'https://acs.privatbank.ua/pPaReqMC.jsp',
'redirect_params' =>
array (
'PaReq' => 'eJxVUllu2zAQvYqg/4qUIlFUMGYgxykaoEqN2j4AIxGxUi2Olsb+K/qTG+S3VygKpGhRtL0CdaMMHWUDSHDeLJw3Cxxty8L6rJo2r6uJ7TrUtlSV1lleXUzs1fLtG24fCViuG6VmC5X2jRKQqLaVF8rKs4k9lx/VlRvw8ID7YRhFYcgDHrmeF/KQc8apG/jcFjCP0U/AmElgIscD8gjxyyZdy6oTINOr6emZwCgWcCAjhFI1pzPBXB66jAF5gFDJUolpPF29P1k4xx8SZxUD2Sshrfuqa3aCUx/II4C+KcS66zbtISGbQnZ1VeSVctK6BGJsQJ6ZzHsjtfjXNs9EMouv8e7w0uQy3p4t6HWy/IT4ZALEeEAmOyU86lHqe9RyvUM8QQRkrwdZGhKmcoplPQDYmBzxaDGGlwrAdjc4jZ2IOJqeEKjtpq4UemALn2TIVJsK/U3fDV/0nf4x3OL7b7jRf/Uv/dvS//Uf/X34Otzqn9a5PO8L1Zq6nV4iQxMK5Lni43dmEmmHTfZdN2CMMz/wzTj2OsMgx356B5TtKRgAxESRcdJk3BKUXm3PPfYf2CM=',
'TermUrl' => 'https://secure.platononline.com/3ds/4de0025?operation_type=purchase&trans_id=28738-47774-55067&hash=***************************************************
),
'redirect_method' => 'POST',
'hash' => '********************************',
)
Параметры | Описание |
---|
action
| SALE |
result
| REDIRECT |
status
| 3DS |
order_id
| ID транзакции в системе мерчанта |
trans_id
| ID транзакции в платежной системе |
trans_date
| Дата транзакции в платежной системе. Время UTC |
redirect_url
| URL, на который должен быть перенаправлен плательщик |
redirect_params
| Строка параметров |
redirect_method
| Метод передачи параметров (POST/GET) |
hash
| Зашифрованная подпись для проверки достоверности коллбека
md5(
strtoupper(
strrev(email).
CLIENT_PASS.
strrev(payment_token)
)
)
|
Пройдите контрольный список интеграции:
После добавления кнопки на ваш сайт/мобильное приложение необходимо пройти контрольный список интеграции для проверки корректности работы Google Pay API:
Для сайтов: https://developers.google.com/pay/api/web/guides/test-and-deploy/integration-checklist
Для мобильных приложений: https://developers.google.com/pay/api/android/guides/test-and-deploy/integration-checklist
Запросите доступ к рабочей версии Google Pay API:
Для возможности начать принимать реальные платежи необходимо запросить доступ в рабочей версии:
https://developers.google.com/pay/api/android/guides/test-and-deploy/request-prod-access
Подпишите ваше приложение:
Если вы интегрируете Google Pay в свое моибльное приложение - необходимо дополнительно его подписать, следуя инструкциям:
https://developers.google.com/pay/api/android/guides/test-and-deploy/deploy-your-application