Info |
---|
Этот функционал будет активирован после вашего запроса в групповом чате. |
Содержание
Table of Contents | ||||||||
---|---|---|---|---|---|---|---|---|
|
Описание
Данный метод позволит разместить на вашем сайте или в приложении отдельную кнопку для оплаты Google Pay.
Демо
Iframe | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
Чеклист интеграции
- Привести сайт / приложение к соответствию требованиям.
- Интегрировать API Google Pay.
- Указать
environment
в режимTEST
. - Передать тех поддержке PSP Platon ссылку для Callback.
- Сообщить в тех поддержке PSP Platon ваши IP адреса сервера сайта или о том, что будет использоваться приложение (в этом случае ограничения по IP будут сняты).
- Провести запрос для получения зашифрованных данных согласно API Google Pay.
- После авторизации пользователя и выбора реальной карты в кошельке Google Pay вернет зашифрованные данные.
- Провести запрос согласно API PSP Platon используя зашифрованные данные от Google Pay.
- Получить Response или Callback для редиректа плательщика на 3DS проверку.
- Отправить клиента на 3DS проверку.
- Получить Response или Callback со статусом платежа
DECLINED
от PSP Platon. - Отправить запрос в Google Business Console для активации аккаунта.
- Сообщить в тех поддержке PSP Platon об активации аккаунта.
- Указать
environment
в режимPRODUCTION
. - Провести запрос с получение успешного Response или Callback со статусом платежа
SUCCESS
от PSP Platon. - Уведомить клиента об успешной / не успешной оплате.
Требования
Expand | ||
---|---|---|
| ||
У вашего сайта должен быть SSL сертификат. Для проверки валидности и срока действия вашего SSL сертификата рекомендуем воспользоваться сервисом по ссылке. |
Expand | ||||||
---|---|---|---|---|---|---|
| ||||||
В футере вашего сайта необходимо разместить логотипы платежных систем и PSP Platon. Скачайте подходящие под стиль вашего сайта варианты логотипов.
|
Expand | ||
---|---|---|
| ||
Необходима поддержка протокола TLS не ниже версии 1.2 |
Ограничения
Expand | ||
---|---|---|
| ||
На данный момент Google Pay работает в таких браузерах:
|
Expand | ||
---|---|---|
| ||
Для работы Google Pay в WebView необходимо следовать согласно документации Google https://developer.android.com/guide/webapps/webview?hl=ru#BindingJavaScript |
Google Pay API
Для сайта: https://developers.google.com/pay/api/web
Для мобильных приложений: https://developers.google.com/pay/api/android
Интегрируйте Google Pay API следуя документации выше для получения PaymentData.
Параметры:
allowPaymentMethods : CARD
tokenizationSpecification = { "type": "PAYMENT_GATEWAY"}
allowedCardNetworks = ['MASTERCARD', 'VISA'];
allowedCardAuthMethods = ['PAN_ONLY', 'CRYPTOGRAM_3DS'];
gateway = platon
gatewayMerchantId = CLIENT_KEY (API ключ выдается сотрудником компании PSP Platon)
Expand | |||||
---|---|---|---|---|---|
| |||||
|
Если все сделано правильно - на своем сайте/приложении вы получите кнопку Google Pay и после выбора карты вам вернется набор данных с PaymentData.
Expand | |||||
---|---|---|---|---|---|
| |||||
|
С примером PaymentData можете ознакомиться ниже:
Expand | |||||
---|---|---|---|---|---|
| |||||
|
Настройте отправку полученного значения параметра "token" POST запросом по API Platon, в параметре payment_token.
Предусловия:
Прежде чем вы получите доступ к платежной платформе, вы должны предоставить следующее данные администратору платежной платформы:
список ваших IP-адресов, с которых будут направляться запросы на платежную платформу;
callback URL - URL-адрес, на который будет отправляться уведомления о результатах обработки Вашего запроса через платежную платформу;
контактный E-mail разработчика.
Note |
---|
Callback url должен быть обязателен если вы работаете в асинхронном режиме и не должен превышать 255 символов. |
API параметры
HTTP METHOD: POST
API ENDPOINT: https://secure.platononline.com/post/
Параметр | Значение | Описание | Особенности | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
| Код платежного метода | ||||||||||||
| String | API ключ мерчанта | Ключ предоставляется на почту мерчанту | |||||||||||
| String | ID платежа в системе мерчанта | Max 32 символа | |||||||||||
| Number | Сумма платежа |
| |||||||||||
|
| Валюта платежа |
| |||||||||||
| String | Описание платежа |
Max 255 символов | |||||||||||
| String | Токен, полученный мерчантом от Google | ||||||||||||
| Number | IP-адрес плательщика | В формате "ХХХ.ХХХ.ХХХ.ХХХ"
| |||||||||||
| String | Ссылка по которой будет отправлен клиент после успешной оплаты при прохождении 3DS | Max 255 символов | |||||||||||
| String | Контрольная подпись |
| |||||||||||
| String | Имя плательщика | Max 32 символа без пробелов | |||||||||||
| String | Фамилия плательщика | Max 32 символа без пробелов | |||||||||||
| String | Отчество плательщика | Max 32 символа без пробелов | |||||||||||
| String | Дата рождения плательщика | В формате “YYYY-MM-DD” | |||||||||||
| String | Адрес плательщика | Max 256 символа | |||||||||||
| String | Страна плательщика | Стандарт ISO 3166-1 alpha-2 | |||||||||||
| String | Штат плательщика |
Стандарт ISO 3166-2 | |||||||||||
| String | Город плательщика | Max 32 символа | |||||||||||
| String | Почтовый индекс плательщика | Max 32 символа | |||||||||||
| String | E-mail плательщика | Max 256 символа | |||||||||||
| Number | Номер телефона плательщика |
| |||||||||||
| String | 10 дополнительных полей | Max 1024 символа в каждом ext поле | |||||||||||
| String | Дополнительный платежный канал | Позволяет отправить платежи на другой банковский терминал | |||||||||||
|
| Включить асинхронный режим |
По умолчанию значение | |||||||||||
|
| По умолчанию | ||||||||||||
|
| Для получения card_token | По умолчанию |
Примеры запроса
Expand | |||||||
---|---|---|---|---|---|---|---|
| |||||||
|
Тестирование
Переведите environment в режим 'TEST’.
Используйте реальную карту подвязанную в Google Pay для оплаты.
При успешном тесте вы получите ответ о неуспешной транзакции (особенности тестового режима) и 'decline_reason' => 'Declined by processing'
Сообщите тех саппорту об успешном тесте и только после этого перейдите к активации бизнес-аккаунта Google.
Warning |
---|
Параметр environment в режим 'TEST’ оставить до указаний со стороны тех саппорта PSP Platon. |
Проверка платежей
Expand | ||||||
---|---|---|---|---|---|---|
| ||||||
|
Callback и Response
Expand | ||||||
---|---|---|---|---|---|---|
| ||||||
|
Expand | ||||||
---|---|---|---|---|---|---|
| ||||||
|
Синхронный режим:
Данный режим работает по умолчанию. Передавать async = N
не нужно.
Промежуточный редирект плательщика на 3DS (синхронный режим):
Expand | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Expand | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
При успешной оплате (синхронный режим):
Expand | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
title | Callback при
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Expand | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Expand | |||||
---|---|---|---|---|---|
| |||||
|
title | Callback при неуспешном списании |
---|
Code Block | ||
---|---|---|
| ||
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
amount
Сумма транзакции
Info |
---|
Поле опционально и по умолчанию выключено. Для включения просьба написать запрос в ваш групповой чат. |
ext1
- ext10
10 дополнительных полей
Info |
---|
Поля опционально и по умолчанию выключены. Для включения просьба написать запрос в ваш групповой чат. |
decline_reason
Причина, по которой транзакция была отклонена
hash
Зашифрованная подпись для проверки достоверности коллбека
Code Block | ||
---|---|---|
| ||
md5(
strtoupper(
strrev(email).
CLIENT_PASS.
strrev(payment_token)
)
) |
Info |
---|
Внимание! Если при запросе на оплату не был указан |
При ошибке в запросе (синхронный режим):
Expand | |||||
---|---|---|---|---|---|
| |||||
|
Асинхронный режим:
Данный режим активируется при передаче async = Y
. В этом режиме обязательно необходимо принимать callback на ваш callback url.
Промежуточный ответ (асинхронный режим):
title | Response о принятии запроса в обработку |
---|
Code Block | ||
---|---|---|
| ||
{
"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
Промежуточный редирект плательщика на 3DS (асинхронный режим):
Expand | |||||||||
---|---|---|---|---|---|---|---|---|---|
| |||||||||
Code Block | | ||||||||
|
Параметры | Описание | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
| ||||||||
|
| ||||||||
|
| ||||||||
| ID транзакции в системе мерчанта | ||||||||
| ID транзакции в платежной системе | ||||||||
| Дата транзакции в платежной системе. Время UTC | ||||||||
| Это строка, которую владелец кредитной карты увидит в выписка из банка. В большинстве случаев это веб-сайт поддержки клиентов. | ||||||||
| Код авторизации от банка | ||||||||
| Сумма транзакции
| ||||||||
| 10 дополнительных полей
| ||||||||
| |||||||||
| Зашифрованная подпись для проверки достоверности коллбека
|
При неуспешной оплате (синхронный режим):
title | Response при неуспешном списании |
---|
Code Block | ||
---|---|---|
| ||
{
"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 транзакции в платежной системе
amount
Сумма транзакции
Info |
---|
Поле опционально и по умолчанию выключено. Для включения просьба написать запрос в ваш групповой чат. |
ext1
- ext10
10 дополнительных полей
Info |
---|
Поля опционально и по умолчанию выключены. Для включения просьба написать запрос в ваш групповой чат. |
trans_date
Дата транзакции в платежной системе. Время UTC
decline_reason
Причина, по которой транзакция была отклонена
|
При неуспешной оплате (синхронный режим):
Expand | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Expand | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
| ||||||||
Expand | ||||||||
| ||||||||
Code Block | | |||||||
|
Параметры | Описание | ||||||
---|---|---|---|---|---|---|---|
|
| ||||||
|
|
status
|
|
order_id
|
| ||||||
|
| ||||||
| ID транзакции в системе мерчанта | ||||||
| ID транзакции в платежной системе | ||||||
| Дата транзакции в платежной системе. Время UTC |
redirect_url
URL, на который должен быть перенаправлен плательщик
redirect_params
Строка параметров
redirect_method
Метод передачи параметров (POST/GET)
hash
Зашифрованная подпись для проверки достоверности коллбека
Code Block | ||
---|---|---|
| ||
md5(
strtoupper(
strrev(email).
CLIENT_PASS.
strrev(payment_token)
)
) |
Info |
---|
Внимание! Если при запросе на оплату не был указан |
При успешной оплате (асинхронный режим):
|
При ошибке в запросе (синхронный режим):
Expand | |||||
---|---|---|---|---|---|
| |||||
|
Асинхронный режим:
Данный режим активируется при передаче async = Y
. В этом режиме обязательно необходимо принимать callback на ваш callback url.
Промежуточный ответ (асинхронный режим):
Expand | |||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||||||||||||||||||||
|
Промежуточный редирект плательщика на 3DS (асинхронный режим):
Expand | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
При успешной оплате (асинхронный режим):
Expand | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
При неуспешной оплате (асинхронный режим):
Expand | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Expand | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
SUCCESS | PENDING/SETTLED; статус PENDING только когда было указано "auth=Y"
Это строка, которую владелец кредитной карты увидит в выписка из банка. В большинстве случаев это веб-сайт поддержки клиентов.
Код авторизации от банка amount
ext10 10 дополнительных полей
Зашифрованная подпись для проверки достоверности коллбека
|
При неуспешной оплате (асинхронный режим):
|
При ошибке в запросе (асинхронный режим):
Expand | |||||
---|---|---|---|---|---|
| |||||
|
Ошибки запросов
Expand | ||||||
---|---|---|---|---|---|---|
| ||||||
|
Боевой режим
Пройдите контрольный список интеграции:
После добавления кнопки на ваш сайт/мобильное приложение необходимо пройти контрольный список интеграции для проверки корректности работы 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
Получите доступ на Production в Google Pay:
https://developers.google.com/pay/api/android/guides
Для этого необходимо создать учетную запись в https://pay.google.com/business/console/ (используя гугл аккаунт, желательно корпоративный и общий)
Заполните информацию о компании.
В интеграциях выбрать Сайт, заполнить домен (пока домен тестового сайта), указать тип PaymentGateway и вложить 5 скринов процесса заказа и оплаты.
Сразу можете подавать заявку и для получения доступа с продовым доменом.
Note |
---|
Просьба обратить внимание, что в прод режиме Google Pay будет работать только на проаппрувленых гуглом доменах. |
https://developers.google.com/pay/api/android/guides/test-and-deploy/request-prod-access
Получение доступа занимает 2-3 дня. Если у сотрудников Google будут замечания - они отправят письмо на мейл, под которым вы зарегистируетесь.
После этого с вашей стороны необходимо переключиться на Production в интеграции с GooglePay:
Для этого: https://developers.google.com/pay/api/web/guides/test-and-deploy/deploy-production-environment
Установить environment: ‘PRODUCTION' вместо 'TEST’
Указать значение merchantId из бизнес аккаунта GooglePay (правый верхний угол)
И сообщить нам по готовности для переключения настроек с нашей стороны.
Дополнительно для мобильного приложения Android:
Рекомендуем подавать заявку в бизнес консоли с Google аккаунта, под которым вы зарегистрированы в Google Play и выкладываете приложения.
Если будете подавать заявку с другого аккаунта - дополнительно нужно будет связать аккаунты. Инструкция как связать https://support.google.com/googleplay/android-developer/answer/2528691
Для интеграции в моб приложении необходимо будет подписать приложение релизными ключами когда получите доступ на прод и будете преключаться https://developers.google.com/pay/api/android/guides/test-and-deploy/deploy-your-application