Google Pay
Обзор
Введение
Google Pay — метод, позволяющий проводить платежи в разных валютах с использованием сервисов Google в разных странах. Для этого метода в платёжной платформе ecommpay поддерживаются разовые и повторяемые оплаты, возвраты и проверка действительности карты пользователя.
В этой статье представлена информация о работе с методом Google Pay: обзорный раздел с общими сведениями и последующие разделы с информацией о действиях, необходимых со стороны мерчанта для решения разных задач.
Характеристика
Платёжный метод | платежи с использованием электронных кошельков |
---|---|
Платёжные инструменты | платёжные карты |
Регионы использования | список доступен по ссылке |
Валюты платежей | Все валюты, поддерживаемые платёжными системами American Express, Mastercard и Visa в доступных регионах |
Конвертация валют | На стороне ecommpay |
Оплаты | + |
Повторяемые оплаты | + |
Полные возвраты | + |
Частичные возвраты | + |
Выплаты | – |
Проверка действительности | + |
Опротестования | + |
Особенности |
|
Организация и стоимость подключения | по согласованию с курирующим менеджером ecommpay, дополнительную информацию можно получить ecommpay shop |
Схема работы
В проведении отдельного платежа с использованием Google Pay задействуются веб-сервис мерчанта, один из интерфейсов и платёжная платформа ecommpay, а также технические средства Google Pay.
Основные операции
Для проведения платежей и выполнения операций с использованием метода Google Pay могут применяться различные интерфейсы платёжной платформы. Так, оплаты могут проводиться через Payment Page, Gate и Dashboard (с применением платёжных ссылок), а возвраты — через Gate и Dashboard.
Сценарии использования
Проведение оплат с использованием метода Google Pay осуществляется с регистрацией платёжной карты пользователя в сервисе Google Pay и выполнения последующих необходимых действий, выполнение возвратов — с заявкой со стороны пользователя и уведомлением со стороны веб-сервиса.
Рис.: Оплата через Payment Page
Рис.: Оплата через Gate без 3‑D Secure 2 аутентификации
Рис.: Оплата через Gate с 3‑D Secure 2 аутентификацией
Рис.: Возврат через Gate
Сценарии выполнения операций через основные интерфейсы платёжной платформы соответствуют представленным на схемах. При использовании дополнительных возможностей (таких как платёжные ссылки) сценарии выполнения операций методом Google Pay соответствуют специфике этих возможностей.
Оплаты через Payment Page
Общая информация
Для проведения оплаты через Payment Page с использованием метода Google Pay со стороны веб-сервиса необходимо отправить запрос, содержащий требуемые параметры и подпись, на рабочий URL ecommpay и принять оповещение о результате. Полная схема проведения оплаты выглядит следующим образом.
Рис.: Проведение оплаты через Payment Page. Описание шагов
- Пользователь на стороне веб-сервиса инициирует оплату.
- От веб-сервиса на заданный URL ecommpay передаётся запрос на проведение оплаты через Payment Page.
- Запрос на проведение оплаты поступает в платёжную платформу.
- В платёжной платформе выполняется приём запроса, с проверкой наличия обязательных параметров и корректной подписи.
- Осуществляется подготовка Payment Page согласно параметрам проекта и вызова.
- Пользователю отображается платёжная форма.
- Пользователь выбирает оплату с использованием платёжных карт и нажимает кнопку
Google Pay
. Если кнопка отображается среди прочих методов оплат на первой странице, то пользователь только нажимает кнопкуGoogle Pay
. - В платёжную платформу передаётся запрос на открытие интерфейса и формы оплаты Google Pay.
- Запрос на открытие интерфейса и формы оплаты Google Pay и получение информации о картах, доступных пользователю, передаётся в сервис Google Pay.
- В сервисе Google Pay выполняется обработка запроса и создаётся платёжная форма со списком карт, доступных пользователю.
- Пользователю отображается интерфейс сервиса Google Pay со списком карт в маскированном виде:
- При проведении оплат на сайтах в мобильной версии браузера Google Chrome или в мобильных приложениях, поддерживающих оплату с использованием Google Pay, открывается приложение Google Pay.
- В иных случаях на мобильном устройстве или компьютере отображается окно Google Pay в браузере.
- Пользователь выбирает карту и подтверждает платёж. При подтверждении оплаты в браузере, а не приложении Google Pay, дополнительно осуществляется аутентификация 3‑D Secure.
- Сервис Google Pay перенаправляет пользователя на страницу ожидания Payment Page.
- На стороне сервиса Google Pay выполняется обработка данных пользователя.
- От сервиса Google Pay в платёжную платформу передаётся токен с зашифрованными данными пользователя.
- Запрос от платёжной платформы на проведение оплаты отправляется в сервис международной платёжной системы.
- В сервисе международной платёжной системы выполняется обработка платежа.
- От сервиса международной платёжной системы к платёжной платформе направляется информация о результате оплаты.
- От платёжной платформы к веб-сервису направляется оповещение о результате оплаты.
- От платёжной платформы к Payment Page направляется информация о результате оплаты.
- Информация о результате оплаты отображается пользователю на Payment Page.
Информация о форматах запросов и оповещений, используемых для проведения оплат методом Google Pay через Payment Page, приведена далее в этом разделе; общая информация о работе с Payment Page API — в отдельной статье Организация взаимодействия.
Формат запросов
При формировании запросов на открытие платёжной формы с применением метода Google Pay необходимо учитывать следующее:
- Должен использоваться базовый минимум параметров, обязательный для любого платежа:
project_id
— идентификатор проекта, полученный от ecommpay при интеграции;payment_id
— идентификатор платежа, уникальный в рамках проекта;payment_currency
— код валюты платежа в формате ISO-4217 alpha-3;payment_amount
— сумма платежа в дробных единицах валюты;customer_id
— идентификатор пользователя в рамках проекта.
- Должен использоваться базовый минимум параметров:
project_id
,payment_id
,payment_currency
,payment_amount
,customer_id
. - Можно выбирать вариант отображения кнопки
Google Pay
на Payment Page:- Отображение кнопки на странице для ввода данных платёжной карты. Предварительно пользователю необходимо выбирать оплату с использованием карт среди прочих платёжных методов. Этот вариант отображения задан по умолчанию.
- Отображение кнопки на странице для выбора метода оплаты среди прочих платёжных методов. Для этого необходимо обращаться в техническую поддержку ecommpay.
- Отображение кнопки на странице для ввода данных карты, когда пользователю сразу открывается эта страница и не надо предварительно выбирать оплату с использованием карт. В данном случае оба платёжных метода доступны пользователю. Для этого используется предварительный выбор метода оплаты с использованием карт и необходимо указывать код
card
в параметреforce_payment_method
. - Отображение одной кнопки на странице выбора метода оплаты. Для этого используется предварительный выбор метода Google Pay и необходимо указывать код платёжного метода
google_pay_host
в параметреforce_payment_method
.
- Дополнительно могут использоваться любые другие параметры из числа доступных для работы с Payment Page (подробнее).
- После указания всех целевых параметров необходимо составлять подпись (подробнее).
Таким образом, корректный запрос на открытие платёжной формы с применением метода Google Pay должен содержать идентификатор проекта, базовые сведения о платеже (идентификатор, сумму и код валюты), идентификатор пользователя и подпись.
{ "project_id": 120, "payment_id": "580", "payment_amount": 1000, "payment_currency": "USD", "customer_id": "customer1", "signature": "kUi2x9dKHAVNU0FYldOcZzUCwX6R\/ekpZhkIQg==" }
Рис.: Пример достаточного набора данных для запроса на оплату
{ "project_id": 120, "payment_id": "580", "payment_amount": 1000, "payment_currency": "USD", "customer_id": "customer1", "signature": "kUi2x9dKHAVNU0FYldOcZzUCwX6R\/ekpZhkIQg==" }
Формат оповещений
Для оповещений о результатах оплат с применением метода Google Pay используется типовой формат, описание которого представлено в статье Оповещения.
К особенностям метода Google Pay можно отнести то, что в оповещениях для оплат, сопровождающихся аутентификацией 3‑D Secure 2, передаётся код индикатора ECI в параметре operation.eci
. Подробнее об индикаторах ECI — в разделе Индикаторы ECI.
В следующем примере оповещение свидетельствует о том, что в рамках проекта 688
была успешно проведена оплата в размере 1 000,00 USD
с банковской карты 431422******0056
без проведения аутентификации 3‑D Secure 2.
При этом в качестве названия метода в параметре payment.method
указывается etoken-google
.
Рис.: Пример оповещения о проведении оплаты без 3‑D Secure 2 аутентификации
{ "project_id": 688, "payment": { "id": "TEST_154356886034722221", "type": "purchase", "status": "success", "date": "2019-04-11T11:22:36+0000", "method": "etoken-google", "sum": { "amount": 100000, "currency": "USD" }, "description": "TEST_154356886034722221" }, "account": { "number": "431422******0056" }, "operation": { "id": 2000015, "type": "sale", "status": "success", "date": "2019-04-11T11:22:36+0000", "created_date": "2019-04-11T11:22:20+0000", "request_id": "2b36e68d4d9fc8839d5d65ee6273dfdebbd", "sum_initial": { "amount": 100000, "currency": "USD" }, "sum_converted": { "amount": 100000, "currency": "USD" }, "provider": { "id": 1381, "payment_id": "d1b9-3qfl-9rns-1ql9aokzi2v8", "date": "2019-04-11T11:22:34+0000", "auth_code": "" }, "code": "0", "message": "Success" }, "signature": "Xkf7nUDleg8wcLltroCvNOMq751VtZcgrz6Nax...==" }
В следующем примере оповещение свидетельствует о том, что в рамках проекта 688
была успешно проведена оплата в размере 1 000,00 USD
с банковской карты 431422******0056
с проведением аутентификации 3‑D Secure 2.
Рис.: Пример оповещения о проведении оплаты с 3‑D Secure 2 аутентификацией
{ "project_id": 688, "payment": { "id": "TEST_154356886034722221", "type": "purchase", "status": "success", "date": "2019-04-11T11:22:36+0000", "method": "etoken-google", "sum": { "amount": 100000, "currency": "USD" }, "description": "TEST_154356886034722221" }, "account": { "number": "431422******0056" }, "operation": { "id": 2000015, "type": "sale", "status": "success", "date": "2019-04-11T11:22:36+0000", "created_date": "2019-04-11T11:22:20+0000", "request_id": "2b36e68d4d9fc8839d5d65ee6273dfdebbd", "sum_initial": { "amount": 100000, "currency": "USD" }, "sum_converted": { "amount": 100000, "currency": "USD" }, "provider": { "id": 1381, "payment_id": "d1b9-3qfl-9rns-1ql9aokzi2v8", "date": "2019-04-11T11:22:34+0000", "auth_code": "" }, "code": "0", "message": "Success", "eci": "02" }, "signature": "Xkf7nUDleg8wcLltroCvNOMq751VtZcgrz6Nax...==" }
В следующем примере оплата была отклонена, так как пользователь не прошел аутентификацию 3‑D Secure 2.
Рис.: Пример оповещения об отказе в проведении оплаты
{ "project_id": 688, "payment": { "id": "TEST_154356886034722222", "type": "purchase", "status": "decline", "date": "2019-04-11T11:24:51+0000", "method": "etoken-google", "sum": { "amount": 100100, "currency": "USD" }, "description": "TEST_154356886034722222" }, "account": { "number": "431422******0056" }, "operation": { "id": 2000000383, "type": "sale", "status": "decline", "date": "2019-04-11T11:24:51+0000", "created_date": "2019-04-11T11:24:35+0000", "request_id": "0eef294c20a7d72abd0fb20f3753ee674b51fbe", "sum_initial": { "amount": 100100, "currency": "USD" }, "sum_converted": { "amount": 100100, "currency": "USD" }, "provider": { "id": 1381, "payment_id": "1rvp-fc2k-cnp9-h41ocauwn6fr", "date": "2019-04-11T11:24:50+0000", "auth_code": "" }, "code": "20000", "message": "General decline", "eci": "00" }, "signature": "cQbMiD0pON9eJc5ZugNK0iT5SwHc0feItZRcAB...==" }
Дополнительные материалы
Для организации работы с оплатами через Payment Page также могут быть полезны следующие материалы:
- Организация взаимодействия — о том, как организовать взаимодействие веб-сервиса с платёжной платформой через Payment Page.
- Работа с подписью к данным — о порядке создания и проверки подписи в программных запросах и оповещениях при взаимодействии с платёжной платформой.
- Модель проведения платежей — о типах, схемах проведения и возможных статусах поддерживаемых платежей и операций.
- Разовая оплата в одну стадию — о том, как проводить разовые оплаты через Payment Page.
- Информация о выполнении операций — о служебных кодах, которые используются в платёжной платформе, чтобы фиксировать информацию о выполнении операций.
Оплаты через Gate
Общая информация
Для оплаты через Gate с использованием метода Google Pay со стороны веб-сервиса необходимо:
- Выполнить начальную настройку в соответствии с требованиями Google и свериться с контрольным списком интеграции.
- Зарегистрироваться в сервисе Google и получить Google merchant ID.
- Заполнить заявку на сопровождение интеграции с Google Pay API специалистами Google и выполнить дальнейшие действия по запросам этих специалистов. При этом может потребоваться предоставить Google дополнительную информацию об интеграции.
Также мерчант должен придерживаться политик использования Google Pay API и принимать условия предоставления услуг Google Pay.
Оплата с использованием метода Google Pay может инициироваться пользователем с устройства, поддерживающего или не поддерживающего работу с приложением Google Pay. В первом случае оплата пройдет без аутентификации 3‑D Secure 2, во втором случае — с аутентификацией.
Для оплаты через Gate с использованием метода Google Pay без 3‑D Secure 2 аутентификации (на устройствах и в браузерах, поддерживающих работу с приложением Google Pay) со стороны веб-сервиса необходимо:
- Встроить кнопку
Google Pay
, соблюдая рекомендации по правильному использованию бренда и реализовать процесс получения токена с карточными данными пользователя от сервиса Google Pay. - Отправить запрос в сервис Google Pay на открытие платёжной формы или приложения Google Pay со списком сохраненных карт, доступных пользователю для оплаты.
- Отправить запрос в сервис Google Pay для получения токена с зашифрованными данными карты, выбранной пользователем.
- Отправить запрос, содержащий токен и другие требуемые параметры и подпись, на рабочий URL ecommpay.
- Принять оповещение о результате оплаты от платформы.
Для оплаты через Gate с использованием метода Google Pay с проведением 3‑D Secure 2 аутентификации (на устройствах, не поддерживающих работу с приложением Google Pay) со стороны веб-сервиса необходимо:
- Встроить кнопку
Google Pay
, соблюдая рекомендации по правильному использованию бренда и реализовать процесс получения токена с карточными данными пользователя от сервиса Google Pay. - Отправить запрос в сервис Google Pay на открытие платёжной формы или приложения Google Pay со списком сохраненных карт, доступных пользователю для оплаты.
- Отправить запрос в сервис Google Pay для получения токена с зашифрованными данными карты, выбранной пользователем.
- Отправить запрос, содержащий токен и другие требуемые параметры и подпись, на рабочий URL ecommpay.
- Получить промежуточное оповещение от платформы с данными для перенаправления пользователя на страницу аутентификации.
- Перенаправить пользователя на страницу аутентификации для прохождения проверки 3‑D Secure 2.
- Отправить запрос на продолжение проведения платежа с результатом аутентификации в платёжную платформу.
- Принять итоговое оповещение о результате оплаты от платформы.
Полные схемы проведения оплат выглядят следующим образом.
Рис.: Проведение оплаты через Gate без 3‑D Secure 2 аутентификации
- Пользователь на стороне веб-сервиса инициирует оплату с использованием метода Google Pay.
- Запрос на открытие интерфейса Google Pay и получение информации о картах, доступных пользователю, передаётся в сервис Google Pay.
- Сервис Google Pay обрабатывает запрос и подготавливает платёжную форму со списком карт, доступных пользователю.
- При проведении оплат на сайтах в мобильной версии браузера Google Chrome или в мобильных приложениях, поддерживающих оплату с использованием Google Pay, пользователю отображается приложение Google Pay со списком карт в маскированном виде.
- Пользователь выбирает карту и подтверждает платёж.
- Сервис Google Pay перенаправляет пользователя на страницу ожидания веб-сервиса.
- На стороне сервиса Google Pay выполняется обработка данных пользователя.
- От сервиса Google Pay в веб-сервис передаётся токен с зашифрованными данными выбранной карты.
- От веб-сервиса на заданный URL ecommpay передаётся запрос на проведение оплаты через Gate с помощью токена карты, полученного от Google Pay.
- Запрос на проведение оплаты поступает в платёжную платформу.
- В платёжной платформе выполняется приём запроса с проверкой наличия обязательных параметров и корректной подписи.
- От платёжной платформы к веб-сервису направляется ответ с информацией о получении запроса и его корректности (подробнее).
- Запрос на проведение оплаты поступает в сервис международной платёжной системы.
- В сервисе международной платёжной системы выполняется обработка платежа.
- От сервиса международной платёжной системы к платёжной платформе направляется информация о результате оплаты.
- От платёжной платформы к веб-сервису направляется оповещение о результате оплаты.
- На стороне веб-сервиса обеспечивается информирование пользователя о результате оплаты.
Рис.: Проведение оплаты через Gate с 3‑D Secure 2 аутентификацией
- Пользователь на стороне веб-сервиса инициирует оплату с использованием метода Google Pay.
- Запрос на открытие интерфейса Google Pay и получение информации о картах, доступных пользователю, передаётся в сервис Google Pay.
- Сервис Google Pay обрабатывает запрос и подготавливает платёжную форму со списком карт, доступных пользователю.
- При проведении оплаты на мобильном устройстве или компьютере, не поддерживающих оплату с использованием Google Pay, пользователю отображается окно Google Pay в браузере со списком карт в маскированном виде.
- Пользователь выбирает карту и подтверждает платёж.
- Сервис Google Pay перенаправляет пользователя на страницу ожидания веб-сервиса.
- На стороне сервиса Google Pay выполняется обработка данных пользователя.
- От сервиса Google Pay в веб-сервис передаётся токен с зашифрованными данными выбранной карты.
- От веб-сервиса на заданный URL ecommpay передаётся запрос на проведение оплаты через Gate с помощью токена карты, полученного от Google Pay.
- Запрос на проведение оплаты поступает в платёжную платформу.
- В платёжной платформе выполняется приём запроса с проверкой наличия обязательных параметров и корректной подписи. При подтверждении оплаты в браузере, а не приложении Google Pay, дополнительно осуществляется аутентификация 3‑D Secure.
- От платёжной платформы к веб-сервису направляется ответ с информацией о получении запроса и его корректности (подробнее).
- В платёжной платформе выполняются дальнейшая обработка запроса (с проверкой согласованности параметров) и его оправка в сервис международной платёжной системы.
- В сервисе международной платёжной системы выполняется обработка запроса на оплату и проверка необходимости проведения аутентификации пользователя.
- От сервиса международной платёжной системы к платёжной платформе передаются данные для перенаправления пользователя на страницу аутентификации.
- От платёжной платформы к веб-сервису направляется оповещение с данными для перенаправления пользователя на страницу аутентификации.. Для этого используются оповещения стандартного формата, описание которого представлено в разделе Оповещения. Подробная информация о форматах оповещений с данными для перенаправления при проведении аутентификации представлена в соответствующем разделе Аутентификация 3‑D Secure.
- Веб-сервис мерчанта обеспечивает перенаправление пользователя на страницу аутентификации.
- Пользователь перенаправляется на страницу аутентификации и проходит проверку 3‑D Secure.
- Сервис международной платёжной системы выполняет аутентификацию пользователя.
- Выполняется перенаправление пользователя к веб-сервису.
- От веб-сервиса к платёжной платформе отправляется запрос в Gate на продолжение проведения оплаты с результатом прохождения аутентификации пользователя.
- Запрос на продолжение проведения оплаты поступает в платёжную платформу.
- В платёжной платформе выполняется приём запроса с проверкой наличия обязательных параметров и корректной подписи.
- От платёжной платформы к веб-сервису направляется ответ с информацией о получении запроса и его корректности (подробнее).
- Запрос на продолжение проведения оплаты поступает в сервис международной платёжной системы.
- В сервисе международной платёжной системы выполняется обработка платежа.
- От сервиса международной платёжной системы к платёжной платформе направляется информация о результате оплаты.
- От платёжной платформы к веб-сервису направляется оповещение о результате оплаты.
- На стороне веб-сервиса обеспечивается информирование пользователя о результате оплаты.
Информация о форматах запросов и оповещений, используемых для проведения оплат методом Google Pay через Gate, приведена далее в этом разделе; общая информация о работе с Gate API — в отдельной статье Организация взаимодействия.
Формат запросов
При работе с запросами на оплаты с применением метода Google Pay необходимо учитывать следующее:
- Для инициирования каждой оплаты должен использоваться отдельный POST-запрос к одной из следующих конечных точек:
- /v2/payment/googlepay/sale для проведения оплаты в одну стадию,
- /v2/payment/googlepay/auth для проведения оплаты в две стадии.
- В каждом запросе должны использоваться следующие объекты и параметры:
general
— объект, содержащий основные идентификационные сведения запроса:project_id
— идентификатор проекта, полученный от ecommpay при интеграции;,validation_url
— URL для проверки;domain_name
— доменное имя веб-сервиса мерчанта;display_name
— название проекта для отображения, должен содержать не более 64 символов;signature
— подпись запроса, составленная после указания всех целевых параметров (подробнее — в разделе Работа с подписью к данным); (подробнее).
payment
— объект, содержащий сведения о платеже:amount
— сумма платежа в дробных единицах валюты;,currency
— код валюты платежа в формате ISO-4217 alpha-3;,
customer
— объект, содержащий сведения о пользователе:id
— идентификатор пользователя, уникальный в рамках проекта;,ip_address
— IP-адрес пользователя, актуальный для инициируемого платежа.
etoken
— объект, содержащий сведения о токене с зашифрованными данными карты, полученный от сервиса Google Pay:token
— токен с зашифрованными данными карты.
- Могут потребоваться другие обязательные параметры в зависимости от типа токенизации карты, который используется при формировании запросов в сервис Google Pay. Информацию о том, какой тип токенизации используется при проведении оплат в рамках проекта, необходимо уточнять у специалистов технической поддержки ecommpay:
- Для использования типа токенизации
PAYMENT_GATEWAY
дополнительно необходимо указывать адрес электронной почты пользователя в параметреemail
объектаcustomer
. - Для типа токенизации
DIRECT
необходимо указывать в объектеetoken
:google_merchant_id
— идентификатор мерчанта в сервисе Google Pay;google_tokenization_type
— тип токенизацииDIRECT
.
- Для использования типа токенизации
- Дополнительно могут использоваться любые другие параметры из числа указанных в спецификации.
Таким образом, корректный запрос на оплату с применением метода Google Pay и типом токенизации PAYMENT_GATEWAY
должен содержать идентификатор проекта, базовые сведения о платеже (идентификатор, сумму и код валюты), идентификатор и IP-адрес пользователя, токен от Google Pay и подпись.:
{ "general": { "project_id": 626, "payment_id": "ORDER_ID_gev_S01_0.20111200_1554473913", "signature": "xWOlMksKctAKeYADt8W6F98D/ZFgyNqOYwFsgonIEj1MPw...==" }, "customer": { "email": "googlepay@google.com", "ip_address": "83.220.236.84", "id": "123" }, "payment": { "amount": 100000, "currency": "USD" }, "etoken": { "token": "..." // в том виде,в котором был получен от Google Pay } }
Рис.: Пример достаточного набора данных для запроса на оплату c типом токенизации PAYMENT_GATEWAY
{ "general": { "project_id": 626, "payment_id": "ORDER_ID_gev_S01_0.20111200_1554473913", "signature": "xWOlMksKctAKeYADt8W6F98D/ZFgyNqOYwFsgonIEj1MPw...==" }, "customer": { "email": "googlepay@google.com", "ip_address": "83.220.236.84", "id": "123" }, "payment": { "amount": 100000, "currency": "USD" }, "etoken": { "token": "..." // в том виде,в котором был получен от Google Pay } }
Корректный запрос на оплату с применением метода Google Pay и типа токенизации DIRECT
должен содержать идентификатор проекта, базовые сведения о платеже (идентификатор, сумму и код валюты), идентификатор и IP-адрес пользователя, токен, идентификатор мерчанта в сервисе Google Pay, тип токенизации карты, а также подпись:
{ "general": { "project_id": 688, "payment_id": "ORDER_89218100_1554981739", "signature": "aRZiZZc0w5RVnuCxC7KSm50Pfwsj/8fqy2XlAJ...==" }, "customer": { "ip_address": "83.220.236.84" }, "payment": { "amount": 100000, "currency": "USD" }, "etoken": { "token": "...", // в том виде,в котором был получен от Google Pay "google_merchant_id": "12345678901234567890", "google_tokenization_type": "DIRECT" } }
Рис.: Пример достаточного набора данных для запроса на оплату c типом токенизации DIRECT
{ "general": { "project_id": 688, "payment_id": "ORDER_89218100_1554981739", "signature": "aRZiZZc0w5RVnuCxC7KSm50Pfwsj/8fqy2XlAJ...==" }, "customer": { "ip_address": "83.220.236.84" }, "payment": { "amount": 100000, "currency": "USD" }, "etoken": { "token": "...", // в том виде,в котором был получен от Google Pay "google_merchant_id": "12345678901234567890", "google_tokenization_type": "DIRECT" } }
Формат запросов на продолжение проведения оплаты после 3‑D Secure 2 аутентификации
При работе с запросами на продолжение оплаты после проведения 3‑D Secure 2 аутентификации пользователя необходимо учитывать следующее:
- Для продолжения каждой оплаты после проведения 3‑D Secure 2 аутентификации должен использоваться отдельный POST-запрос к конечной точке /v2/payment/card/3ds_result.
- В каждом запросе должны использоваться следующие объекты и параметры:
general
— объект, содержащий основные идентификационные сведения запроса:project_id
— идентификатор проекта, полученный от ecommpay при интеграции;,payment_id
— идентификатор платежа, уникальный в рамках проекта;,signature
— подпись запроса, составленная после указания всех целевых параметров (подробнее — в разделе Работа с подписью к данным); (подробнее),
- Один из следующих параметров:
pares
— данные о результате аутентификации, полученные в уведомлении от платёжной платформы;,cres
— данные о результате аутентификации, полученные в уведомлении от сервера управления доступом.
Таким образом, корректный запрос на оплату с применением метода Google Pay должен содержать идентификаторы проекта и платежа, подпись и данные результата аутентификации.
{ "general": { "project_id": 580, "payment_id": "TEST_15427033321774", "signature": "96c+hWk1zweuGlDZrjJXZw7ew6ow3RpGYv4U...==" }, "pares": "eJzVWdfvq8iy/iujOY/I1...Dfn76en3N+f/A1fJrSU=" }
Рис.: Пример достаточного набора данных для запроса на продолжение оплаты
{ "general": { "project_id": 580, "payment_id": "TEST_15427033321774", "signature": "96c+hWk1zweuGlDZrjJXZw7ew6ow3RpGYv4U...==" }, "pares": "eJzVWdfvq8iy/iujOY/I1...Dfn76en3N+f/A1fJrSU=" }
Формат запросов на подтверждение оплаты в две стадии
При работе с запросами на подтверждение оплаты необходимо учитывать следующее:
- Для подтверждения каждой оплаты в две стадии должен использоваться отдельный POST-запрос к конечной точке /v2/payment/googlepay/capture.
- В каждом запросе должны использоваться следующие объекты и параметры:
general
— объект, содержащий основные идентификационные сведения запроса:project_id
— идентификатор проекта, полученный от ecommpay при интеграции;,payment_id
— идентификатор платежа, уникальный в рамках проекта;,signature
— подпись запроса, составленная после указания всех целевых параметров (подробнее — в разделе Работа с подписью к данным); (подробнее),
payment
— объект, содержащий сведения о платеже:amount
— сумма платежа в дробных единицах валюты;,currency
— код валюты платежа в формате ISO-4217 alpha-3.
- Валюта и сумма платежа должны совпадать со значениями, переданными в запросе на авторизацию.
- Дополнительно могут использоваться любые другие параметры из числа указанных в спецификации.
Таким образом, корректный запрос на оплату с применением метода Google Pay должен содержать идентификатор проекта, базовые сведения о платеже (идентификатор, сумму и код валюты), а также подпись.
{ "general": { "project_id": 580, "payment_id": "TEST_15427033321774", "signature": "96c+hWk1zweuGKwChlDZrjJXZw7ew6ow3RpGYv4U...==" }, "payment": { "amount": 100000, "currency": "USD" }
Рис.: Пример достаточного набора данных для запроса на подтверждение оплаты
{ "general": { "project_id": 580, "payment_id": "TEST_15427033321774", "signature": "96c+hWk1zweuGKwChlDZrjJXZw7ew6ow3RpGYv4U...==" }, "payment": { "amount": 100000, "currency": "USD" }
Формат запросов на отмену оплаты в две стадии
При работе с запросами на отмену оплаты необходимо учитывать следующее:
- Для отмены каждой оплаты в две стадии должен использоваться отдельный POST-запрос к конечной точке /v2/payment/googlepay/cancel.
- В каждом запросе должны использоваться следующие объекты и параметры:
general
— объект, содержащий основные идентификационные сведения запроса:project_id
— идентификатор проекта, полученный от ecommpay при интеграции;,payment_id
— идентификатор платежа, уникальный в рамках проекта;,signature
— подпись запроса, составленная после указания всех целевых параметров (подробнее — в разделе Работа с подписью к данным). (подробнее).
- Дополнительно могут использоваться любые другие параметры из числа указанных в спецификации.
Таким образом, корректный запрос на оплату с применением метода Google Pay должен содержать идентификатор проекта, платежа и подпись.
{ "general": { "project_id": 580, "payment_id": "TEST_15427033321774", "signature": "96c+hWk1zweuGKww7ew6ow3RpGYv4U...==" }
Рис.: Пример достаточного набора данных для запроса на отмену оплаты в две стадии
{ "general": { "project_id": 580, "payment_id": "TEST_15427033321774", "signature": "96c+hWk1zweuGKww7ew6ow3RpGYv4U...==" }
Формат оповещений о результатах оплат
Для оповещений о результатах оплат с применением метода Google Pay используется типовой формат, описание которого представлено в разделе Оповещения.
К особенностям метода Google Pay можно отнести то, что в оповещениях для оплат, сопровождающихся проверкой 3‑D Secure, передаётся код индикатора ECI в параметре operation.eci
. Подробнее об индикаторах ECI — в разделе Индикаторы ECI.
В следующем примере оповещение свидетельствует о том, что в рамках проекта 688
была успешно проведена оплата в размере 1 000,00 USD
с банковской карты 431422******0056
без проведения аутентификации 3‑D Secure.
При этом в качестве названия метода в параметре payment.method
указывается etoken-google
.
Рис.: Пример данных из оповещения о проведении оплаты без 3‑D Secure аутентификации
{ "project_id": 688, "payment": { "id": "TEST_154356886034722221", "type": "purchase", "status": "success", "date": "2019-04-11T11:22:36+0000", "method": "etoken-google", "sum": { "amount": 100000, "currency": "USD" }, "description": "TEST_154356886034722221" }, "account": { "number": "431422******0056" }, "operation": { "id": 2000015, "type": "sale", "status": "success", "date": "2019-04-11T11:22:36+0000", "created_date": "2019-04-11T11:22:20+0000", "request_id": "2b36e68d4d9fc8839d5d65ee6273dfdebbd", "sum_initial": { "amount": 100000, "currency": "USD" }, "sum_converted": { "amount": 100000, "currency": "USD" }, "provider": { "id": 1381, "payment_id": "d1b9-3qfl-9rns-1ql9aokzi2v8", "date": "2019-04-11T11:22:34+0000", "auth_code": "" }, "code": "0", "message": "Success" }, "signature": "Xkf7nUDleg8wcLltroCvNOMq751VtZcgrz6Nax...==" }
В следующем примере оповещение свидетельствует о том, что в рамках проекта 688
была успешно проведена оплата в размере 1 000,00 USD
с банковской карты 431422******0056
с проведением аутентификации 3‑D Secure.
Рис.: Пример данных из оповещения о проведении оплаты с 3-D Secure аутентификацией
{ "project_id": 688, "payment": { "id": "TEST_154356886034722221", "type": "purchase", "status": "success", "date": "2019-04-11T11:22:36+0000", "method": "etoken-google", "sum": { "amount": 100000, "currency": "USD" }, "description": "TEST_154356886034722221" }, "account": { "number": "431422******0056" }, "operation": { "id": 2000015, "type": "sale", "status": "success", "date": "2019-04-11T11:22:36+0000", "created_date": "2019-04-11T11:22:20+0000", "request_id": "2b36e68d4d9fc8839d5d65ee6273dfdebbd", "sum_initial": { "amount": 100000, "currency": "USD" }, "sum_converted": { "amount": 100000, "currency": "USD" }, "provider": { "id": 1381, "payment_id": "d1b9-3qfl-9rns-1ql9aokzi2v8", "date": "2019-04-11T11:22:34+0000", "auth_code": "" }, "code": "0", "message": "Success", "eci": "02" }, "signature": "Xkf7nUDleg8wcLltroCvNOMq751VtZcgrz6Nax...==" }
В следующем примере оповещение свидетельствует об отклонённой оплате, так как пользователь не прошел аутентификацию 3‑D Secure 2.
Рис.: Пример данных из оповещения об отклонении оплаты
{ "project_id": 688, "payment": { "id": "TEST_154356886034722222", "type": "purchase", "status": "decline", "date": "2019-04-11T11:24:51+0000", "method": "etoken-google", "sum": { "amount": 100100, "currency": "USD" }, "description": "TEST_154356886034722222" }, "account": { "number": "431422******0056" }, "operation": { "id": 2000000383, "type": "sale", "status": "decline", "date": "2019-04-11T11:24:51+0000", "created_date": "2019-04-11T11:24:35+0000", "request_id": "0eef294c20a7d72abd0fb20f3753ee674b51fbe", "sum_initial": { "amount": 100100, "currency": "USD" }, "sum_converted": { "amount": 100100, "currency": "USD" }, "provider": { "id": 1381, "payment_id": "1rvp-fc2k-cnp9-h41ocauwn6fr", "date": "2019-04-11T11:24:50+0000", "auth_code": "" }, "code": "20000", "message": "General decline", "eci": "00" }, "signature": "cQbMiD0pON9eJc5ZugNK0iT5SwHc0feItZRcAB...==" }
Дополнительные материалы
Для организации работы с оплатами через Gate также могут быть полезны следующие материалы:
- Организация взаимодействия — о том, как взаимодействовать с платёжной платформой через Gate.
- Работа с подписью к данным — о порядке создания и проверки подписи в программных запросах и оповещениях при взаимодействии с платёжной платформой.
- Модель проведения платежей — о типах, схемах проведения и возможных статусах поддерживаемых платежей и операций.
- Разовая оплата в одну стадию — о том, как проводить разовые оплаты через Gate.
- Информация об операциях — о служебных кодах, используемых в платёжной платформе для фиксации информации о выполнении операций.
Повторяемые оплаты через Payment Page
Общая информация
Платёжный метод Google Pay предоставляет возможность проводить повторяемые оплаты — регулярные оплаты со списаниями по запросу. Подробная информация представлена в разделе Повторяемая оплата со списаниями по запросам.
Через Payment Page доступна регистрация повторяемой оплаты, для этого со стороны веб-сервиса необходимо отправить запрос, содержащий требуемые параметры и подпись, а также данные для регистрации повторяемой оплаты в объекте recurring
, на рабочий URL ecommpay и принять оповещение о результате. В оповещении о регистрации повторяемой оплаты вы получите её идентификатор, который нужно использовать для проведения или отмены регулярной оплаты через Gate. Подробная информация об этом представлена в разделе Повторяемые оплаты через Gate.
Информация о форматах запросов и оповещений, используемых для проведения оплат методом Google Pay через Payment Page, приведена далее в этом разделе; общая информация о работе с Payment Page API — в отдельной статье Организация взаимодействия.
Формат запросов
При формировании запросов на открытие платёжной формы для регистрации повторяемой оплаты с применением метода Google Pay необходимо учитывать следующее:
- Должен использоваться базовый минимум параметров, обязательный для любого платежа:
project_id
— идентификатор проекта, полученный от ecommpay при интеграции;payment_id
— идентификатор платежа, уникальный в рамках проекта;payment_currency
— код валюты платежа в формате ISO-4217 alpha-3;payment_amount
— сумма платежа в дробных единицах валюты;customer_id
— идентификатор пользователя в рамках проекта.
- Должен использоваться базовый минимум параметров:
project_id
,payment_id
,payment_currency
,payment_amount
,customer_id
. - Для регистрации повторяемой оплаты необходимо передать объект
recurring
, содержащий признак регистрации и необходимую информацию. Для регистрации регулярной оплаты в запросе необходимо передать информацию о периодичности, сумме, начале и конце совершения регулярной оплаты. Полный список параметров, которые можно передать в объектеrecurring
представлен в разделе Регистрация повторяемых оплат. - Для предварительного выбора метода Google Pay необходимо указывать код платёжного метода в параметре
force_payment_method
:google_pay_host
— для открытия Payment Page с предварительно выбранным платёжным методом Google Pay;card
— для открытия Payment Page с возможностью выбрать оплату с использованием платёжной карты, подключенной к сервису Google Pay. В данном случае оба платёжных метода доступны пользователю.
- Дополнительно могут использоваться любые другие параметры из числа доступных для работы с Payment Page (подробнее).
- После указания всех целевых параметров необходимо составлять подпись (подробнее).
Таким образом, корректный запрос на открытие платёжной формы с применением метода Google Pay должен содержать идентификатор проекта, базовые сведения о платеже (идентификатор, сумму и код валюты), идентификатор пользователя, признак регистрации и информацию о повторяемой оплате, а также подпись.
{ "project_id": 120, "payment_id": "580", "payment_amount": 100000, "payment_currency": "USD", "customer_id": "customer1", "force_payment_method": "google_pay_host", "recurring": {"register":true,"type":"R","expiry_year":2025,"expiry_month":"01","period":"D","time":"10:00:00","start_date":"15-11-2020","scheduled_payment_id":"A2323"}, "signature": "kUi2x9dKHAVNU0FYldOcZzUCwX6R\/ekpZhkIQg==" }
Рис.: Пример достаточного набора данных для запроса на оплату
{ "project_id": 120, "payment_id": "580", "payment_amount": 100000, "payment_currency": "USD", "customer_id": "customer1", "force_payment_method": "google_pay_host", "recurring": {"register":true,"type":"R","expiry_year":2025,"expiry_month":"01","period":"D","time":"10:00:00","start_date":"15-11-2020","scheduled_payment_id":"A2323"}, "signature": "kUi2x9dKHAVNU0FYldOcZzUCwX6R\/ekpZhkIQg==" }
Формат оповещений
Для оповещений о результатах регистрации повторяемой оплаты с применением метода Google Pay используется типовой формат, описание которого представлено в разделе Оповещения.
В следующем примере оповещение свидетельствует о том, что в рамках проекта 208
для пользователя была зарегистрирована повторяемая оплата. При этом в качестве названия метода в параметре payment.method
указывается etoken-google
.
Рис.: Пример данных из оповещения о регистрации повторяемой оплаты
{ "project_id": 208, "payment": { "id": "payment", "type": "purchase", "status": "success", "date": "2018-11-20T08:44:46+0000", "method": "etoken-google", "sum": { "amount": 300, "currency": "USD" }, "description": "payment" }, "account": { "number": "431422******0056" }, "recurring": { "id": 1000030038, "currency": "USD", "valid_thru": "-0001-11-30T00:00:00+0000" }, "operation": { "id": 1000034, "type": "recurring", "status": "success", "date": "2018-11-20T08:44:46+0000", "created_date": "2018-11-20T08:44:41+0000", "request_id": "07fd7ade7cf010", "sum_initial": { "amount": 300, "currency": "USD" }, "sum_converted": { "amount": 300, "currency": "USD" }, "provider": { "id": 1381, "payment_id": "2548950091", "date": "2020-11-20T08:44:45+0000", "auth_code": "" }, "code": "0", "message": "Success" }, "signature": "x2tsnvLCRXZM9a8+I3RipuPWUod5c89cDSQ6cRq...==" }
Дополнительные материалы
Для организации работы с оплатами через Payment Page также могут быть полезны следующие материалы:
- Организация взаимодействия — о том, как организовать взаимодействие веб-сервиса с платёжной платформой через Payment Page.
- Работа с подписью к данным — о порядке создания и проверки подписи в программных запросах и оповещениях при взаимодействии с платёжной платформой.
- Модель проведения платежей — о типах, схемах проведения и возможных статусах поддерживаемых платежей и операций.
- Разовая оплата в одну стадию — о том, как проводить разовые оплаты через Payment Page.
- Информация о выполнении операций — о служебных кодах, которые используются в платёжной платформе, чтобы фиксировать информацию о выполнении операций.
Повторяемые оплаты через Gate
Общая информация
Платёжный метод Google Pay предоставляет возможность проводить повторяемые оплаты — регулярные оплаты со списаниями по запросу. Подробнее см. в Повторяемая оплата со списаниями по запросам.
Информация о форматах запросов и оповещений, используемых для проведения оплат методом Google Pay через Gate, приведена далее в этом разделе; общая информация о работе с Gate API — в отдельной статье Организация взаимодействия.
Регистрация повторяемой оплаты
Для регистрации повторяемых оплат со стороны веб-сервиса необходимо отправить запрос на оплату, содержащий требуемые параметры и подпись, а также признак регистрации повторяемой оплаты в параметре register
объекта recurring
со значением true
, на заданный URL ecommpay и принять оповещение с информацией о результате. В оповещении о регистрации повторяемой оплаты содержится идентификатор, который можно использовать для проведения или отмены регулярных оплат.
Подробнее о проведении оплаты через Gate с помощью метода Google Pay см. в разделе Оплаты через Gate.
Формат запросов
При работе с запросами на регистрацию повторяемой оплаты с применением метода Google Pay необходимо учитывать следующее:
- Каждый раз должен использоваться запрос, отправляемый методом POST к одной из следующих конечных точек: /v2/payment/googlepay/sale или /v2/payment/googlepay/auth
- В каждом запросе должны использоваться следующие объекты и параметры:
general
— объект, содержащий основные идентификационные сведения запроса:project_id
— идентификатор проекта, полученный от ecommpay при интеграции;,payment_id
— идентификатор платежа, уникальный в рамках проекта;,signature
— подпись запроса, составленная после указания всех целевых параметров (подробнее — в разделе Работа с подписью к данным); (подробнее),
customer
— объект, содержащий сведения о пользователе:id
— идентификатор пользователя, уникальный в рамках проекта;,ip_address
— IP-адрес пользователя, актуальный для инициируемого платежа;
payment
— объект, содержащий сведения о платеже:amount
— сумма платежа в дробных единицах валюты;,;currency
— код валюты платежа в формате ISO-4217 alpha-3;,
recurring
— объект, содержащий сведения о повторяемой оплате (условия проведения регулярного платежа хранятся на стороне мерчанта):register
— признак регистрации платежа как повторяемой оплаты,type
—тип повторяемой оплаты:R
(для регулярной оплаты),C
(для экспресс-оплаты), илиU
(для автооплаты), подробную информацию см. в разделе Общая информация,scheduled_payment_id
—идентификатор следующей повторяемой оплаты,start_date
— дата начала регулярной оплаты, в форматеДД-ММ-ГГГГ
(должна быть как минимум на один день позже, чем дата регистрации),amount
— сумма платежа,period
— период выполнения регулярной оплаты,interval
— интервал выполнения регулярной оплаты,time
— время выполнения регулярной оплаты в форматеhh:mm:ss (UTC0)
.
- Дополнительно могут использоваться любые другие параметры из числа указанных в спецификации.
Таким образом, корректный запрос на регистрацию повторяемой оплаты с применением метода Google Pay должен содержать идентификатор проекта, базовые сведения о платеже (идентификатор, сумму и код валюты), идентификатор и IP-адрес пользователя, признак регистрации и условия проведения списаний при регулярной оплате, а также подпись.
{ "general": { "project_id": 208, "payment_id": "TEST_15427007172789", "signature": "DH0v2pZnkK9hwytOqrWdbltzO5GMSkzd0Iq6lM2...==", }, "customer": { "ip_address": "192.0.2.0", "id": "123" }, "payment": { "amount": 1000, "currency": "USD" }, "recurring": { "register": true, "type": "R", "amount": 1000, "interval": 1, "cycle": "week", "start_date": "21-11-2018" } }
Рис.: Пример достаточного набора данных для запроса на регистрацию повторяемой оплаты
{ "general": { "project_id": 208, "payment_id": "TEST_15427007172789", "signature": "DH0v2pZnkK9hwytOqrWdbltzO5GMSkzd0Iq6lM2...==", }, "customer": { "ip_address": "192.0.2.0", "id": "123" }, "payment": { "amount": 1000, "currency": "USD" }, "recurring": { "register": true, "type": "R", "amount": 1000, "interval": 1, "cycle": "week", "start_date": "21-11-2018" } }
Формат запросов на проведение повторяемой оплаты
После того, как платёж зарегистрирован, чтобы инициировать повторяемую оплату, следует отправить в платёжную платформу запрос recurring
с полученным идентификатором платежа.
При работе с запросами на проведение повторяемой оплаты с применением метода Google Pay необходимо учитывать следующее:
- Для проведения каждой оплаты должен использоваться отдельный POST-запрос к конечной точке /v2/payment/googlepay/recurring.
- В каждом запросе должны использоваться следующие объекты и параметры:
general
— объект, содержащий основные идентификационные сведения запроса:project_id
— идентификатор проекта, полученный от ecommpay при интеграции;,payment_id
— идентификатор платежа, уникальный в рамках проекта;,signature
— подпись запроса, составленная после указания всех целевых параметров (подробнее — в разделе Работа с подписью к данным); (подробнее),
customer
— объект, содержащий сведения о пользователе:ip_address
— IP-адрес пользователя, актуальный для инициируемого платежа;
payment
— объект, содержащий сведения о платеже:amount
— сумма платежа в дробных единицах валюты;,;currency
— код валюты платежа в формате ISO-4217 alpha-3;,
recurring
— объект, содержащий сведения о повторяемой оплате:id
— идентификатор зарегистрированной повторяемой оплаты.
- Дополнительно могут использоваться любые другие параметры из числа указанных в спецификации.
Таким образом, корректный запрос на проведение повторяемой оплаты с применением метода Google Pay должен содержать идентификатор проекта, базовые сведения о платеже (идентификатор, сумму и код валюты), IP-адрес пользователя, идентификатор зарегистрированной регулярной оплаты, а также подпись.
{ "general": { "project_id": 208, "payment_id": "TEST_15427007172789", "signature": "DH0v2pZnkK9hwytQ6wx/OqrWdbltzO5GMSkzd0Iq6lM2...==", }, "customer": { "ip_address": "192.0.2.0" }, "payment": { "amount": 1000, "currency": "USD" }, "recurring": { "id": 1234567890 } }
Рис.: Пример достаточного набора данных для запроса на проведение повторяемой оплаты
{ "general": { "project_id": 208, "payment_id": "TEST_15427007172789", "signature": "DH0v2pZnkK9hwytQ6wx/OqrWdbltzO5GMSkzd0Iq6lM2...==", }, "customer": { "ip_address": "192.0.2.0" }, "payment": { "amount": 1000, "currency": "USD" }, "recurring": { "id": 1234567890 } }
Формат запросов на отмену проведения повторяемой оплаты
До момента истечения срока выполнения регулярной оплаты её можно отменить. Также для изменения условий выполнения регулярной оплаты её необходимо отменить и отправить запрос на создание новой.
При работе с запросами на отмену повторяемой оплаты с применением метода Google Pay необходимо учитывать следующее:
- Для отмены каждой оплаты должен использоваться отдельный POST-запрос к конечной точке /v2/payment/googlepay/recurring/cancel
- В каждом запросе должны использоваться следующие объекты и параметры:
general
— объект, содержащий основные идентификационные сведения запроса:project_id
— идентификатор проекта, полученный от ecommpay при интеграции;,payment_id
— идентификатор платежа, уникальный в рамках проекта;,signature
— подпись запроса, составленная после указания всех целевых параметров (подробнее — в разделе Работа с подписью к данным); (подробнее),
recurring
— объект, содержащий сведения о повторяемой оплате:id
— идентификатор зарегистрированной повторяемой оплаты.
- Дополнительно могут использоваться любые другие параметры из числа указанных в спецификации.
Таким образом, корректный запрос на отмену проведения регулярной оплаты с применением метода Google Pay должен содержать идентификаторы проекта, платежа и зарегистрированной повторяемой оплаты, а также подпись.
{ "general": { "project_id": 208, "payment_id": "TEST_15427007172789", "signature": "DH0v2pZnkK9hwytQ6/ZtDzO5GMSkzd0Iq6lM2v8...==", }, "recurring": { "id": 1234567890 } }
Рис.: Пример достаточного набора данных для запроса отмену проведения повторяемой оплаты
{ "general": { "project_id": 208, "payment_id": "TEST_15427007172789", "signature": "DH0v2pZnkK9hwytQ6/ZtDzO5GMSkzd0Iq6lM2v8...==", }, "recurring": { "id": 1234567890 } }
Формат оповещений
Для оповещений о результатах действий с повторяемыми оплатами с применением метода Google Pay используется стандартный формат, описание которого представлено в разделе Оповещения.
В следующем примере оповещение свидетельствует о том, что в рамках проекта 208
для пользователя была зарегистрирована повторяемая оплата. При этом в качестве названия метода в параметре payment.method
указывается etoken-google
.
Рис.: Пример данных из оповещения о регистрации повторяемой оплаты
{ "project_id": 208, "payment": { "id": "payment", "type": "recurring", "status": "success", "date": "2018-11-20T08:44:46+0000", "method": "etoken-google", "sum": { "amount": 300, "currency": "USD" }, "description": "payment" }, "account": { "number": "431422******0056" }, "recurring": { "id": 1000030038, "currency": "USD", "valid_thru": "-0001-11-30T00:00:00+0000" }, "operation": { "id": 1000034, "type": "recurring", "status": "success", "date": "2018-11-20T08:44:46+0000", "created_date": "2018-11-20T08:44:41+0000", "request_id": "07fd7ade7cf010", "sum_initial": { "amount": 300, "currency": "USD" }, "sum_converted": { "amount": 300, "currency": "USD" }, "provider": { "id": 1381, "payment_id": "2548950091", "date": "2020-11-20T08:44:45+0000", "auth_code": "" }, "code": "0", "message": "Success" }, "signature": "x2tsnvLCRXZMX8Kwyr9a8+I3RipuPWUod5c89cDSQ6cRq...==" }
В следующем примере оповещение свидетельствует о том, что проведение регулярной оплаты отменено.
Рис.: Пример данных из оповещения об отмене проведения регулярной оплаты
{ "project_id": 208, "payment": { "id": "payment", "type": "recurring", "status": "success", "date": "2018-11-20T08:44:46+0000", "method": "etoken-google", "sum": { "amount": 300, "currency": "USD" }, "description": "payment" }, "account": { "number": "431422******0056" }, "recurring": { "id": 1000030038, "currency": "USD", "valid_thru": "-0001-11-30T00:00:00+0000" }, "operation": { "id": 1000034, "type": "recurring_cancel", "status": "success", "date": "2018-11-20T08:44:46+0000", "created_date": "2018-11-20T08:44:41+0000", "request_id": "07fd7ade7cf010", "sum_initial": { "amount": 300, "currency": "USD" }, "sum_converted": { "amount": 300, "currency": "USD" }, "provider": { "id": 1381, "payment_id": "2548950091", "date": "2020-11-20T08:44:45+0000", "auth_code": "" }, "code": "0", "message": "Success" }, "signature": "x2tsnvLCRXZMX8Kwyr9a8+I3RipuPWUod5c89cDSQ6cRq...==" }
В следующем примере оповещение свидетельствует об отклонённом проведении регулярной оплаты.
Рис.: Пример данных из оповещения об отклонённом проведении регулярной оплаты
{ "project_id": 208, "payment": { "id": "payment", "type": "recurring", "status": "success", "date": "2018-11-20T08:44:46+0000", "method": "etoken-google", "sum": { "amount": 300, "currency": "USD" }, "description": "payment" }, "errors": [ { "code": "2701", "message": "Rules Failed Code", "description": "fatal: RULES_FAILED_CODE" } ], "recurring": { "id": 1000700, "currency": "USD", "valid_thru": "-0001-11-30T00:00:00+0000" }, "operation": { "id": 1000034, "type": "recurring", "status": "decline", "date": "2018-11-20T08:44:46+0000", "created_date": "2018-11-20T08:44:41+0000", "request_id": "07fd7ade7cf010", "sum_initial": { "amount": 300, "currency": "USD" }, "sum_converted": { "amount": 300, "currency": "USD" }, "provider": { "id": 1381, "payment_id": "2548950091", "date": "2020-11-20T08:44:45+0000", "auth_code": "" }, "code": "2701", "message": "Rules Failed Code" }, "signature": "x2tsnvLCRXZMX8Kwyr9a8+I3RipuPWUod5c89cDSQ6cRq...==" }
Дополнительные материалы
Для организации работы с оплатами через Gate также могут быть полезны следующие материалы:
- Организация взаимодействия — о том, как взаимодействовать с платёжной платформой через Gate.
- Работа с подписью к данным — о порядке создания и проверки подписи в программных запросах и оповещениях при взаимодействии с платёжной платформой.
- Модель проведения платежей — о типах, схемах проведения и возможных статусах поддерживаемых платежей и операций.
- Разовая оплата в одну стадию — о том, как проводить разовые оплаты через Gate.
- Информация об операциях — о служебных кодах, используемых в платёжной платформе для фиксации информации о выполнении операций.
Возвраты через Gate
Общая информация
Для выполнения возврата через Gate с использованием метода Google Pay со стороны веб-сервиса необходимо отправить запрос, содержащий требуемые параметры и подпись, на рабочий URL ecommpay и принять оповещение о результате. Полная схема выполнения возврата выглядит следующим образом.
Рис.: Выполнение возврата через Gate. Описание шагов
- Пользователь инициирует возврат.
- От веб-сервиса на заданный URL ecommpay передаётся запрос на выполнение возврата.
- Запрос на выполнение возврата поступает в платёжную платформу ecommpay.
- В платёжной платформе выполняется приём запроса с проверкой наличия обязательных параметров и корректной подписи.
- От платёжной платформы к веб-сервису направляется ответ с информацией о получении запроса и его корректности (подробнее).
- В платёжной платформе обеспечиваются дальнейшая обработка запроса (с проверкой согласованности параметров) и его отправка в сервис международной платёжной системы.
- В сервисе международной платёжной системы выполняется обработка возврата.
- От сервиса международной платёжной системы к платёжной платформе направляется информация о результате возврата.
- От платёжной платформы к веб-сервису направляется оповещение о результате возврата.
- На стороне веб-сервиса обеспечивается информирование пользователя о результате возврата.
Информация о форматах запросов и оповещений, используемых для выполнения возвратов методом Google Pay через Gate, приведена далее в этом разделе; общая информация о работе с Gate API — в отдельной статье Организация взаимодействия.
Формат запросов
При работе с запросами на возврат с применением метода Google Pay необходимо учитывать следующее:
- Для инициирования каждого возврата должен использоваться отдельный POST-запрос к конечной точке /v2/payment/googlepay/refund.
- В каждом запросе должны использоваться следующие объекты и параметры:
general
— объект, содержащий основные идентификационные сведения запроса:project_id
— идентификатор проекта, полученный от ecommpay при интеграции;,payment_id
— идентификатор платежа, для которого необходимо выполнить возврат;,signature
— подпись запроса, составленная после указания всех целевых параметров (подробнее — в разделе Работа с подписью к данным); (подробнее)),
payment
— объект, содержащий сведения о возврате:description
— комментарий к возврату или его описание;,amount
— сумма возврата в дробных единицах валюты (является обязательной при частичном возврате);,currency
— код валюты возврата в формате ISO-4217 alpha-3 (является обязательным при частичном возврате);,
customer
— объект, содержащий сведения о пользователе:ip_address
— IP-адрес пользователя, актуальный для инициируемого возврата.
- Дополнительно могут использоваться любые другие параметры из числа указанных в спецификации.
Таким образом, корректный запрос на возврат с применением метода Google Pay должен содержать идентификаторы проекта и платежа, описание возврата, IP-адрес пользователя, подпись, а также, при необходимости, код валюты и сумму возврата.
{ "general": { "project_id": 210, "payment_id": "test_payment", "signature": "PJkV8ej\/UG0Di8hTng6JvipTv+AWoXW\/9MTO8yJA==" }, "payment": { "description": "test refund", "amount": 1000, "currency": "USD" }, "customer": { "ip_address": "192.0.2.0" } }
Рис.: Пример достаточного набора данных для запроса на возврат
{ "general": { "project_id": 210, "payment_id": "test_payment", "signature": "PJkV8ej\/UG0Di8hTng6JvipTv+AWoXW\/9MTO8yJA==" }, "payment": { "description": "test refund", "amount": 1000, "currency": "USD" }, "customer": { "ip_address": "192.0.2.0" } }
Формат оповещений
Для оповещений о результатах возврата с применением метода Google Pay используется стандартный формат, описание которого представлено в разделе Оповещения.
В следующем примере оповещение свидетельствует о том, что в рамках проекта 208
для пользователя был выполнен возврат в размере 30,00 USD
на счёт карты 541333******0019
.
При этом в качестве названия метода в параметре payment.method
указывается etoken-google
.
Рис.: Пример данных из оповещения о выполнении возврата
{ "project_id": 208, "payment": { "id": "TEST_123456", "type": "purchase", "status": "refunded", "date": "2020-03-30T08:54:23+0000", "method": "etoken-google", "sum": { "amount": 0, "currency": "USD" }, "description": "payment for 30.0 USD" }, "account": { "number": "541333******0019", "type": "mastercard", "card_holder": "LEE OONG", "expiry_month": "09", "expiry_year": "2020" }, "customer": { "id": "907680850" }, "operation": { "id": 57299000036261, "type": "refund", "status": "success", "date": "2020-03-30T08:54:24+0000", "created_date": "2020-03-30T08:54:22+0000", "request_id": "122809a-c43c08a4b6ee7d73bfaaf7f", "sum_initial": { "amount": 3000, "currency": "USD" }, "sum_converted": { "amount": 3000, "currency": "USD" }, "code": "0", "message": "Success", "provider": { "id": 120, "payment_id": "353197036", "auth_code": "000000", "endpoint_id": 120, "date": "2020-03-30T08:54:23+0000" } }, "signature": "8y41YTzCAy0N/sGYLUYAyAIp3U/3x7jymU...==" }
В следующем примере оповещение свидетельствует об отклонённом возврате.
Рис.: Пример данных из оповещения об отклонении возврата
{ "project_id": 208, "payment": { "id": "TEST_1234567", "type": "purchase", "status": "success", "date": "2020-03-27T17:41:04+0000", "method": "etoken-google", "sum": { "amount": 2000, "currency": "EUR" }, "description": "35121367" }, "account": { "number": "541333******0019", "type": "mastercard", "card_holder": "LEE OONG", "expiry_month": "09", "expiry_year": "2028" }, "customer": { "id": "LEE OONG" }, "operation": { "id": 42809000016421, "type": "refund", "status": "decline", "date": "2020-03-27T17:41:04+0000", "created_date": "2020-03-27T17:41:03+0000", "request_id": "b869d91-ff913d9c5ae5ba1bb6c3457c30e91", "sum_initial": { "amount": 1400, "currency": "EUR" }, "sum_converted": { "amount": 1400, "currency": "EUR" }, "code": "10000", "message": "General decline" }, "signature": "8ql4yC3p2RiYbNXHSxMYBrBQJmcKmL...==" }
Дополнительные материалы
Для организации работы с возвратами через Gate также могут быть полезны следующие материалы:
- Организация взаимодействия — о том, как взаимодействовать с платёжной платформой через Gate.
- Работа с подписью к данным — о порядке создания и проверки подписи в программных запросах и оповещениях при взаимодействии с платёжной платформой.
- Модель проведения платежей — о типах, схемах проведения и возможных статусах поддерживаемых платежей и операций.
- Возвраты средств после оплат — о том, как выполнять возвраты через Gate.
- Информация об операциях — о служебных кодах, используемых в платёжной платформе для фиксации информации о выполнении операций.
Проверка действительности карты
Общая информация
Для проверки действительности карты через Gate с использованием Google Pay метода со стороны веб-сервиса необходимо отправить запрос, содержащий требуемые параметры и подпись, на рабочий URL ecommpay и принять оповещение о результате. Схема проведения проверки действительности карты через сервис Google Pay аналогична стандартной проверке, описание которой представлено в разделе Проверка платёжных инструментов.
Формат запросов на проверку действительности карты
При работе с запросами на проверку действительности карты через сервис Google Pay необходимо учитывать следующее:
- Для проверки действительности карты должен использоваться отдельный POST-запрос к конечной точке /v2/payment/googlepay/account_verification.
- В каждом запросе должны использоваться следующие объекты и параметры:
general
— объект, содержащий основные идентификационные сведения запроса:project_id
— идентификатор проекта, полученный от ecommpay при интеграции;,payment_id
— идентификатор платежа, уникальный в рамках проекта;,signature
— подпись запроса, составленная после указания всех целевых параметров (подробнее — в разделе Работа с подписью к данным); (подробнее),
payment
— объект, содержащий сведения о платеже:amount
— сумма платежа в дробных единицах валюты;,;currency
— код валюты платежа в формате ISO-4217 alpha-3;,
customer
— объект, содержащий сведения о пользователе:ip_address
— IP-адрес пользователя, актуальный для инициируемого платежа;
etoken
— сведения о токене от Google Pay:token
— токен, полученный от Google Pay после идентификации пользователя.
- Сумма платежа должна быть нулевой.
- Дополнительно могут использоваться любые другие параметры из числа указанных в спецификации.
Таким образом, корректный запрос на оплату с применением метода Google Pay должен содержать идентификатор проекта, базовые сведения о платеже (идентификатор, сумму и код валюты), IP-адрес пользователя и токен от Google Pay, а также подпись.
{ "general": { "project_id": 238, "payment_id": "TEST_15427033321774", "signature": "96c+hWk1zweuGKwDRrl+DZrjJXZw7ew6ow3RpGYv4U...==" }, "customer": { "ip_address": "192.0.2.0" }, "payment": { "amount": 0, "currency": "USD" }, "etoken": { "token": "..." } }
Рис.: Пример достаточного набора данных для запроса на проверку дейтвительности карты
{ "general": { "project_id": 238, "payment_id": "TEST_15427033321774", "signature": "96c+hWk1zweuGKwDRrl+DZrjJXZw7ew6ow3RpGYv4U...==" }, "customer": { "ip_address": "192.0.2.0" }, "payment": { "amount": 0, "currency": "USD" }, "etoken": { "token": "..." } }
Формат оповещений
Для оповещений о результатах проведения проверки действительности карты используется типовой формат, описание которого представлено в разделе Проверка платёжных инструментов.
Дополнительные материалы
Для организации работы с оплатами через Gate также могут быть полезны следующие материалы:
- Организация взаимодействия — о том, как взаимодействовать с платёжной платформой через Gate.
- Работа с подписью к данным — о порядке создания и проверки подписи в программных запросах и оповещениях при взаимодействии с платёжной платформой.
- Модель проведения платежей — о типах, схемах проведения и возможных статусах поддерживаемых платежей и операций.
- Разовая оплата в одну стадию — о том, как проводить разовые оплаты через Gate.
- Информация об операциях — о служебных кодах, используемых в платёжной платформе для фиксации информации о выполнении операций.
Тестирование
Общая информация
Для метода Google Pay доступно тестирование оплат в одну и две стадии через Payment Page и Gate, а тестирование проверки действительности карты через Gate. Тестирование может выполняться в рамках тестового проекта, и для подключения и отключения этой функциональности следует обращаться к специалистам технической поддержки ecommpay.
При проведении тестовых платежей следует учитывать, что в запросах должен указываться идентификатор тестового проекта, а интерфейсы эмулятора платёжных форм Payment Page и страницы аутентификации 3‑D Secure могут отличаться от рабочих. Вместе с тем для проведения тестовых платежей необходимо использовать действительные платёжные карты, предварительно зарегистрированные в сервисе Google Pay. Это никак не влияет на проведение реальных платежей с использованием этих карт, но позволяет выполнять полноценное тестирование.
Для тестирования оплат через Gate необходимо также подготовить веб-сервис к работе с сервисом Google (подробнее — в разделе Оплаты через Gate).
Статусы тестовых платежей и операций
При тестировании оплат в одну и две стадии их итоговые статусы определяются исходя из сумм, указанных в запросах:
success
— при указании суммы1000
;decline
— при указании суммы2000
,5000
или10001
.
При тестировании проверки действительности карты статус этой проверки определяется исходя из сумм, указанных в запросах:
success
— при указании суммы0
;decline
— при указании любой другой суммы.
Оплата в одну стадию через Payment Page
Для проведения тестовой оплаты в одну стадию через Payment Page необходимо:
- Отправить в платёжную платформу корректный тестовый запрос на открытие Payment Page.
- Если в запросе не был указан код предварительного выбора метода
card
илиgoogle_pay_host
— выбрать оплату методом Google Pay на странице эмулятора. - При отображении страницы аутентификации эмулятора пройти аутентификацию 3‑D Secure 2.
- Принять итоговое оповещение с информацией о результате оплаты.
Более подробная информация о проведении оплат с использованием метода Google Pay через Payment Page представлена в разделе Оплаты через Payment Page этой статьи.
Оплата в одну стадию через Gate
Для проведения тестовой оплаты через Gate необходимо:
- Отправить в платёжную платформу корректный тестовый запрос на оплату.
- При получении оповещения с данными для перенаправления на страницу аутентификации 3‑D Secure 2 эмулятора:
- Выполнить перенаправление и пройти аутентификацию.
- Отправить запрос на продолжение проведения оплаты. В этом запросе необходимо использовать параметр cres со следующим значением:
ewogICAiYWNzUmVmZXJlbmNlTnVtYmVyIiA6ICJBQ1NFbXUyIiwKICAgImFjc1RyYW5zSUQiIDogIjAwMDAwMDAwLTAwMDUtNWE1YS04MDAwLTAxNmRiNjMzNzZlYiIsCiAgICJtZXNzYWdlVHlwZSIgOiAiQ1JlcyIsCiAgICJtZXNzYWdlVmVyc2lvbiIgOiAiMi4xLjAiLAogICAidGhyZWVEU1NlcnZlclRyYW5zSUQiIDogIjZmMmM3OGFkLTFjOWMtNTI2ZC04MDAwLTAwMDAwMDAwMTA2YiIsCiAgICJ0cmFuc1N0YXR1cyIgOiAiWSIKfQ
- Принять итоговое оповещение с информацией о результате оплаты.
Более подробная информация о проведении оплат с использованием метода Google Pay через Gate представлена в пункте Оплаты через Gate этой статьи.
Оплата в две стадии с блокировкой средств через Payment Page и подтверждением или отменой через Gate
Для проведения тестовой оплаты в две стадии с блокировкой через Payment Page и подтверждением или отменой через Gate необходимо:
- Отправить в платёжную платформу корректный тестовый запрос на открытие Payment Page.
- Если в запросе не был указан код предварительного выбора метода
card
илиgoogle_pay_host
— выбрать оплату методом Google Pay на странице эмулятора. - При отображении страницы аутентификации эмулятора пройти аутентификацию 3‑D Secure 2.
- Принять оповещение с информацией о результате блокировки средств.
- Отправить запрос на подтверждение или отмену оплаты.
- Принять итоговое оповещение с информацией о результате.
Более подробная информация о проведении оплат с использованием метода Google Pay через Payment Page и Gate представлена в пунктах Оплаты через Payment Page и Оплаты через Gate этой статьи.
Оплата в две стадии с блокировкой средств и подтверждением или отменой через Gate
Для проведения тестовой оплаты в две стадии с блокировкой и подтверждением или отменой через Gate необходимо:
- Отправить в платёжную платформу корректный тестовый запрос на оплату.
- При получении оповещения с данными для перенаправления на страницу аутентификации 3‑D Secure 2 эмулятора:
- Выполнить перенаправление и пройти аутентификацию.
- Отправить запрос на продолжение проведения оплаты. В этом запросе необходимо использовать параметр cres со следующим значением:
ewogICAiYWNzUmVmZXJlbmNlTnVtYmVyIiA6ICJBQ1NFbXUyIiwKICAgImFjc1RyYW5zSUQiIDogIjAwMDAwMDAwLTAwMDUtNWE1YS04MDAwLTAxNmRiNjMzNzZlYiIsCiAgICJtZXNzYWdlVHlwZSIgOiAiQ1JlcyIsCiAgICJtZXNzYWdlVmVyc2lvbiIgOiAiMi4xLjAiLAogICAidGhyZWVEU1NlcnZlclRyYW5zSUQiIDogIjZmMmM3OGFkLTFjOWMtNTI2ZC04MDAwLTAwMDAwMDAwMTA2YiIsCiAgICJ0cmFuc1N0YXR1cyIgOiAiWSIKfQ
- Принять оповещение с информацией о результате блокировки средств.
- Отправить запрос на подтверждение или отмену оплаты.
- Принять итоговое оповещение с информацией о результате.
Более подробная информация о проведении оплат с использованием метода Google Pay через Gate представлена в пункте Оплаты через Gate этой статьи.
Проверка действительности карты через Gate
Для выполнения тестовой проверки действительности через Gate необходимо отправить в платёжную платформу корректный тестовый запрос на проверку действительности и принять итоговое оповещение с информацией о результате. Более подробная информация о выполнении проверок действительности с использованием метода Google Pay представлена в пункте Проверка действительности карты этой статьи.
Анализ результатов проведения платежей
Для анализа информации о платежах и операциях, как в отдельности по методу Google Pay, так и в совокупности с другими методами, можно использовать:
- инструментарий интерфейса Dashboard, с различными реестрами и аналитическими панелями;,
- отчёты в формате CSV, выгружаемые (как разово, так и периодически) через раздел Отчёты интерфейса Dashboard;,
- данные в формате JSON, получаемые по программным запросам через интерфейс Data API.
С вопросами по анализу информации можно обращаться к разделам документации (Dashboard и Использование Data API) и специалистам ecommpay.