Google Pay
Обзор
Google Pay™ — платёжный метод для проведения оплат на сайтах и в мобильных приложениях с использованием платёжных карт. С помощью сервиса Google Pay пользователи могут платить без ввода карточных данных, так как они хранятся в учётных записях Google. Для работы с этим методом доступно проведение разовых и повторяемых оплат через Payment Page и Gate, проведение возвратов и проверки действительности карты через Gate.
Характеристика
Платёжный метод | Бесконтактные платежи |
---|---|
Регионы использования | Все страны |
Валюты платежей | EUR, GBP, RUB, USD |
Конвертация валют | На стороне ECommPay |
Оплаты | + |
Выплаты | – |
Оплаты по сохранённым данным | + |
Полные возвраты | + |
Частичные возвраты | – |
Проверка действительности | + |
Опротестования | + |
Особенности |
|
Организация и стоимость подключения | По согласованию с курирующим менеджером ECommPay |
Схема работы
В проведении оплаты с использованием метода Google Pay задействуются веб-сервис мерчанта, один из интерфейсов и платёжная платформа ECommPay, сервисы Google Pay и банка-эмитента.
Основные операции
Интерфейсы | Суммы | Время** | ||||||
---|---|---|---|---|---|---|---|---|
Payment Page | CMS Plug-ins | Gate | Dashboard (Old Dashboard) | Минимум | Максимум | Базовое | Предельное | |
Оплаты | + | – | + | – | * | * | * | * |
Оплаты по сохранённым данным | + | – | + | – | * | * | * | * |
Полные возвраты | – | – | + | – | – | – | * | * |
* Ограничения сумм и время проведения платежей зависят от банков-эмитентов.
- Базовое время — среднее расчётное время проведения платежа от момента его инициирования на стороне платёжной платформы до момента отправки инициатору оповещения о результате. Это время, определяемое для условий штатной работы всех технических средств и каналов связи, а также типичных действий со стороны пользователя (там, где они необходимы). Базовое время рекомендуется использовать для реагирования на отсутствие оповещений о результате платежа и выполнения опроса состояния платежа.
- Предельное время — максимально допустимое время проведения платежа от момента его инициирования на стороне платёжной платформы до момента отправки инициатору оповещения о результате. Если платёж не был проведён или отклонён за это время, он автоматически переводится в статус
decline
. Для индивидуальной настройки предельного времени следует обращаться к специалистам технической поддержки ECommPay.
Сценарии использования
Чтобы иметь возможность подтверждать платежи с помощью метода Google Pay, пользователь сначала должен зарегистрировать платежную карту в приложении на одном из поддерживаемых устройств. Для проведения оплаты с помощью данного метода предварительно необходимо запрашивать зашифрованные карточные данные пользователя в сервисе Google Pay и отображать форму оплаты или приложение Google Pay пользователю. При проведении оплат через Payment Page взаимодействие с сервисом Google Pay обеспечивается на стороне ECommPay, при проведении оплат через Gate — на стороне веб-сервиса. Проведение возвратов осуществляется с уведомлением пользователей через веб-сервис мерчанта.
Рис.: Оплата через Payment Page
Рис.: Оплата через Gate без 3‑D Secure аутентификации
Рис.: Оплата через Gate с 3‑D Secure аутентификацией
Рис.: Возврат через Gate
Детальные сведения о том, что необходимо делать со стороны мерчанта для проведения платежей, а также о том, что можно использовать для анализа информации о проведённых платежах и операциях, представлены далее.
Оплаты через Payment Page
Общая информация
Для проведения оплат через Payment Page со стороны веб-сервиса необходимо отправить запрос, содержащий требуемые параметры и подпись, на рабочий URL ECommPay и принять оповещение о результате оплаты. При этом метод Google Pay можно сделать предварительно выбранным (подробнее — в разделе Предварительный выбор платежного метода). Полная схема проведения оплаты представлена далее.
Рис.: Проведение оплаты через Payment Page
- Пользователь на стороне веб-сервиса инициирует оплату.
- От веб-сервиса на заданный URL ECommPay передаётся запрос на открытие Payment Page.
- Запрос на открытие поступает в платёжную платформу.
- Выполняется начальная обработка запроса, в рамках которой обеспечивается проверка наличия обязательных параметров и корректной подписи.
- Осуществляется генерация 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, дополнительно осуществляется аутентификация 3D-Secure.
- Сервис Google Pay перенаправляет пользователя на страницу ожидания Payment Page.
- На стороне Google Pay выполняется обработка данных пользователя.
- От сервиса Google Pay в платёжную платформу передаётся токен с зашифрованными данными пользователя.
- Запрос от платёжной платформы на проведение оплаты поступает в сервис международной платёжной системы.
- На стороне международной платёжной системы выполняется обработка платежа.
- От сервиса международной платёжной системы к платёжной платформе ECommPay направляется результат платежа.
- От платёжной платформы к веб-сервису направляется оповещение о результате платежа.
- От платёжной платформы к Payment Page направляется результат проведения платежа.
- Результат платежа отображается пользователю на Payment Page.
Информация о формате запросов и параметрах вызова Payment Page при работе с Google Pay, а также о формате оповещений о результатах оплат приведена далее; общая информация о работе с API см. в разделе Описание Payment Page API.
Формат запросов
При формировании запросов на открытие платёжной формы с применением метода Google Pay необходимо учитывать следующее:
- Должен использоваться базовый минимум параметров — параметры, обязательные для любого платёжного метода:
- project_id — идентификатор проекта, полученный от ECommPay при интеграции;
- payment_id — идентификатор платежа, уникальный в рамках проекта;
- payment_currency — валюта платежа в формате ISO-4217 alpha-3;
- payment_amount — сумма платежа в минорных единицах валюты,
- customer_id — идентификатор пользователя уникальный в рамках проекта.
- Можно выбирать вариант отображения кнопки Google Pay на Payment Page:
- Отображение кнопки на странице для ввода данных платёжной карты. Предварительно пользователю необходимо выбирать оплату с использованием карт среди прочих платёжных методов. Этот вариант отображения задан по умолчанию.
- Отображение кнопки на странице для выбора метода оплаты среди прочих платёжных методов. Для этого необходимо обращаться в техническую поддержку ECommPay.
- Отображение кнопки на странице для ввода данных карты, когда пользователю сразу открывается эта страница и не надо предварительно выбирать оплату с использованием карт. В данном случае оба платёжных метода доступны пользователю. Для этого используется предварительный выбор метода оплаты с использованием карт и необходимо указывать код
card
в параметре force_payment_method. - Отображение одной кнопки на странице выбора метода оплаты. Для этого используется предварительный выбор метода Google Pay и необходимо указывать код платёжного метода
google_pay_host
в параметре force_payment_method.
- Валютой платежа может быть EUR, GBP, RUB, USD.
- Дополнительно могут использоваться любые другие параметры из числа доступных для работы с Payment Page. Детальная информация обо всех параметрах приведена в разделе Параметры открытия платежной формы Payment Page.
- После определения всех параметров необходимо составить подпись. Подробную информацию см. в Работа с подписью к данным.
Таким образом, корректный запрос на открытие платёжной формы с применением метода Google Pay должен содержать идентификаторы проекта, пользователя и платежа, сумму и валюту платежа, а также подпись:
EPayWidget.run( { project_id: 208, payment_id: '486', payment_amount: 10000, payment_currency: 'USD', customer_id: 'customer1', signature: "kUi2x9dKHAVNU0FYldJrxh4yo+52Kt8KU+Y1Y4HA...==" } )
Формат оповещений
Для оповещений о результатах оплат с применением метода Google Pay используется стандартный формат, описание которого представлено в разделе Оповещения.
К особенностям метода Google Pay можно отнести то, что в оповещениях для оплат, сопровождающихся аутентификацией 3D-Secure, передаётся код индикатора ECI в параметре operation.eci. Подробнее об индикаторах ECI — в разделе Коды Electronic Commerce Indicator.
В следующем примере оповещение свидетельствует о том, что в рамках проекта 688
была успешно проведена оплата в размере 1 000,00 RUB
с банковской карты 489537******3478
без проведения аутентификации 3D-Secure.
Рис.: Пример оповещения о проведении оплаты без 3D-Secure аутентификации
{
"project_id": 688,
"payment": {
"id": "TEST_154356886034722221",
"type": "purchase",
"status": "success",
"date": "2019-04-11T11:22:36+0000",
"method": "google-pay",
"sum": {
"amount": 100000,
"currency": "RUB"
},
"description": "TEST_154356886034722221"
},
"account": {
"number": "489537******3478"
},
"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": "RUB"
},
"sum_converted": {
"amount": 100000,
"currency": "RUB"
},
"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 RUB
с банковской карты 489537******3478
с проведением аутентификации 3‑D Secure.
Рис.: Пример оповещения о проведении оплаты с 3D-Secure аутентификацией
{
"project_id": 688,
"payment": {
"id": "TEST_154356886034722221",
"type": "purchase",
"status": "success",
"date": "2019-04-11T11:22:36+0000",
"method": "google-pay",
"sum": {
"amount": 100000,
"currency": "RUB"
},
"description": "TEST_154356886034722221"
},
"account": {
"number": "489537******3478"
},
"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": "RUB"
},
"sum_converted": {
"amount": 100000,
"currency": "RUB"
},
"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.
Рис.: Пример оповещения об отказе в проведении оплаты
{
"project_id": 688,
"payment": {
"id": "TEST_154356886034722222",
"type": "purchase",
"status": "decline",
"date": "2019-04-11T11:24:51+0000",
"method": "google-pay",
"sum": {
"amount": 100100,
"currency": "RUB"
},
"description": "TEST_154356886034722222"
},
"account": {
"number": "489537******3478"
},
"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": "RUB"
},
"sum_converted": {
"amount": 100100,
"currency": "RUB"
},
"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 также могут быть полезны следующие материалы:
Оплаты через Gate
Общая информация
До проведения оплат через Gate со стороны мерчанта необходимо:
- Выполнить начальную настройку в соответствии с требованиями Google и свериться с контрольным списком интеграции.
- Зарегистрироваться в сервисе Google и получить Google merchant ID.
- Заполнить заявку на сопровождение интеграции с Google Pay API специалистами Google и выполнить дальнейшие действия по запросам этих специалистов. При этом может потребоваться предоставить Google дополнительную информацию об интеграции.
Также мерчант должен придерживаться политик использования Google Pay API и принимать условия предоставления услуг Google Pay.
Оплата с использованием метода Google Pay может инициироваться пользователем с устройства, поддерживающего или не поддерживающего работу с приложением Google Pay. В первом случае оплата пройдет без аутентификации 3‑D Secure, во втором случае — с аутентификацией.
Для оплаты через Gate с использованием метода Google Pay без 3‑D Secure аутентификации (на устройствах и в браузерах, поддерживающих работу с приложением Google Pay) со стороны веб-сервиса необходимо:
- Встроить кнопку Google Pay, соблюдая рекомендации по правильному использованию бренда и реализовать процесс получения токена с карточными данными пользователя от сервиса Google Pay.
- Отправить запрос в сервис Google Pay на открытие платёжной формы или приложения Google Pay со списком сохраненных карт, доступных пользователю для оплаты.
- Отправить запрос в сервис Google Pay для получения токена с зашифрованными данными карты, выбранной пользователем.
- Отправить запрос, содержащий токен и другие требуемые параметры и подпись, на рабочий URL ECommPay.
- Принять оповещение о результате оплаты от платформы.
Для оплаты через Gate с использованием метода Google Pay с проведением 3‑D Secure аутентификации (на устройствах, не поддерживающих работу с приложением Google Pay) со стороны веб-сервиса необходимо:
- Встроить кнопку Google Pay, соблюдая рекомендации по правильному использованию бренда и реализовать процесс получения токена с карточными данными пользователя от сервиса Google Pay.
- Отправить запрос в сервис Google Pay на открытие платёжной формы или приложения Google Pay со списком сохраненных карт, доступных пользователю для оплаты.
- Отправить запрос в сервис Google Pay для получения токена с зашифрованными данными карты, выбранной пользователем.
- Отправить запрос, содержащий токен и другие требуемые параметры и подпись, на рабочий URL ECommPay.
- Получить оповещение от платформы с данными для перенаправления пользователя на страницу аутентификации.
- Перенаправить пользователя на страницу аутентификации для прохождения проверки 3‑D Secure.
- Отправить запрос на продолжение проведения платежа с результатом аутентификации в платёжную платформу.
- Принять оповещение о результате оплаты от платформы.
Полные схемы проведения оплаты представлены далее.
Рис.: Проведение оплаты через Gate без 3‑D Secure аутентификации
- Пользователь на стороне веб-сервиса инициирует оплату через 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 аутентификацией
- Пользователь на стороне веб-сервиса инициирует оплату через 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, дополнительно осуществляется аутентификация 3D-Secure.
- От платёжной платформы к веб-сервису направляется ответ с информацией о получении запроса и его корректности. Подробнее см. в разделе Формат ответа.
- В платёжной платформе выполняются дальнейшая обработка запроса и его отправка в сервис международной платёжной системы.
- На стороне международной платёжной системы выполняется обработка запроса на оплату и проверка необходимости проведения аутентификации пользователя.
- От сервиса международной платёжной системы к платёжной платформе передаются данные для перенаправления пользователя на страницу аутентификации.
- От платёжной платформы к веб-сервису направляется оповещение с данными для перенаправления пользователя на страницу аутентификации. Для этого используются оповещения стандартного формата, описание которого представлено в разделе Оповещения. Подробная информация о форматах оповещений с данными для перенаправления при проведении аутентификации представлена в соответствующих разделах 3-D Secure 1 и 3-D Secure 2.
- Веб-сервис мерчанта обеспечивает перенаправление пользователя на страницу аутентификации 3D-Secure.
- Пользователь перенаправляется на страницу аутентификации и проходит проверку 3D-Secure.
- Сервис международной платёжной системы выполняет аутентификацию пользователя.
- Выполняется перенаправление пользователя к веб-сервису.
- От веб-сервиса к платёжной платформе отправляется запрос в Gate на продолжение проведения оплаты с результатом прохождения аутентификации пользователя.
- Запрос на продолжение проведения оплаты поступает в платёжную платформу.
- Выполняется обработка запроса, в рамках которой обеспечивается проверка наличия обязательных параметров и корректной подписи.
- От платёжной платформы к веб-сервису направляется ответ с информацией о получении данных и их корректности.
- Запрос на продолжение проведения оплаты поступает в сервис международной платёжной системы.
- На стороне международной платёжной системы выполняется обработка платежа.
- От сервиса международной платёжной системы к платёжной платформе направляется уведомление о результате платежа.
- От платёжной платформы к веб-сервису направляется оповещение о результате платежа.
- От веб-сервиса пользователю направляется результат платежа.
Информация о формате запросов и параметрах инициирования оплат методом Google Pay через Gate, а также о формате оповещений о результатах оплат приведена далее, общая информация о работе с API — в разделе Работа с API.
Формат запросов
При работе с запросами на оплаты с применением метода 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;
- etoken — объект, содержащий сведения о токене с зашифрованными данными карты, полученный от сервиса Google Pay:
- token — токен с зашифрованными данными карты.
- general — объект, содержащий основные идентификационные сведения запроса:
- Могут потребоваться другие обязательные параметры в зависимости от типа токенизации карты, который используется при формировании запросов в сервис Google Pay. Информацию о том, какой тип токенизации используется при проведении оплат в рамках проекта, необходимо уточнять у специалистов технической поддержки ECommPay:
- Для использования типа токенизации
PAYMENT_GATEWAY
дополнительно необходимо указывать адрес электронной почты пользователя в параметре email объекта customer. - Для типа токенизации
DIRECT
необходимо указывать в объекте etoken:- google_merchant_id — идентификатор мерчанта в сервисе Google Pay;
- google_tokenization_type — тип токенизации
DIRECT
.
- Для использования типа токенизации
- Валютой платежа может быть EUR, GBP, RUB, USD.
- Дополнительно могут использоваться все параметры, указанные в спецификации.
Таким образом, корректный запрос на оплату с применением метода Google Pay и типом токенизации PAYMENT_GATEWAY
должен содержать идентификаторы проекта и платежа, подпись, IP-адрес и адрес электронной почты пользователя, валюту и сумму платежа, токен:
{ "general": { "project_id": 626, "payment_id": "ORDER_ID_gev_S01_0.20111200_1554473913", "signature": "xWOlMksKctAKeYADt8W6F98D/ZFgyNqOYwFsgonIEj1MPw...==" }, "customer": { "email": "googlepay@google.com", "ip_address": "1.2.3.4", "id": "123" }, "payment": { "amount": 100000, "currency": "RUB" }, "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": "1.2.3.4" }, "payment": { "amount": 100000, "currency": "RUB" }, "etoken": { "token": "...", // в том виде,в котором был получен от Google Pay "google_merchant_id": "12345678901234567890", "google_tokenization_type": "DIRECT" } }
Формат запросов на продолжение проведения оплаты после 3‑D Secure аутентификации
При работе с запросами на продолжение оплаты после проведения 3‑D Secure аутентификации пользователя необходимо учитывать следующее:
- Должен использоваться запрос, отправляемый методом POST на /v2/payment/card/3ds_result.
- В запросе должны использоваться следующие объекты и параметры:
- general — основные идентификационные сведения запроса:
- project_id — идентификатор проекта,
- payment_id — идентификатор платежа, по которому необходимо подтвердить списание,
- signature — подпись запроса, составленная после указания целевых параметров (подробнее — в разделе Использование подписи к данным);
- pares — данные о результате аутентификации.
- general — основные идентификационные сведения запроса:
Таким образом, корректный запрос на продолжение оплаты с применением метода Google Pay должен содержать идентификаторы проекта и платежа, подпись и данные результата аутентификации:
Рис.: Пример запроса на продолжение оплаты
{ "general": { "project_id": 580, "payment_id": "TEST_15427033321774", "signature": "96c+hWk1zweuGKwDRrl+Se5mDLXHChlDZrjJXZw7ew6ow3RpGYv4U...==" }, "pares": "eJzVWdfvq8iy/iujOY/WDBnbI+9ldZMMJpho4I1...Dfn76en3N+f/A1fJrSU=" }
Формат запросов на подтверждение оплаты в две стадии
При работе с запросами на подтверждение оплаты необходимо учитывать следующее:
- Должен использоваться запрос, отправляемый методом POST на /v2/payment/googlepay/capture для подтверждения оплаты в две стадии.
- В запросе должны использоваться следующие объекты и параметры:
- general — основные идентификационные сведения запроса:
- project_id — идентификатор проекта,
- payment_id — идентификатор платежа, по которому необходимо подтвердить списание,
- signature — подпись запроса, составленная после указания целевых параметров (подробнее — в разделе Использование подписи к данным);
- payment — сведения о платеже:
- amount — сумма платежа в минорных единицах валюты,
- currency — валюта платежа в формате ISO-4217 alpha-3;
- general — основные идентификационные сведения запроса:
- Валюта и сумма платежа должны совпадать со значениями, переданными в запросе на авторизацию.
- Дополнительно могут использоваться все параметры, указанные в спецификации.
Таким образом, корректный запрос на оплату с применением метода Google Pay должен содержать идентификаторы проекта и платежа, валюту и сумму платежа:
Рис.: Пример запроса на подтверждение оплаты
{ "general": { "project_id": 580, "payment_id": "TEST_15427033321774", "signature": "96c+hWk1zweuGKwDRrl+Se5mDLXHChlDZrjJXZw7ew6ow3RpGYv4U...==" }, "payment": { "amount": 100000, "currency": "RUB" }
Формат запросов на отмену оплаты в две стадии
При работе с запросами на отмену оплаты необходимо учитывать следующее:
- Должен использоваться запрос, отправляемый методом POST на /v2/payment/googlepay/cancel для отмены проведения оплаты в две стадии.
- В запросе должны использоваться следующие объекты и параметры:
- general — основные идентификационные сведения запроса:
- project_id — идентификатор проекта,
- payment_id — идентификатор платежа, по которому необходимо отменить списание,
- signature — подпись запроса, составленная после указания целевых параметров (подробнее — в разделе Использование подписи к данным);
- general — основные идентификационные сведения запроса:
- Дополнительно могут использоваться все параметры, указанные в спецификации.
Таким образом, корректный запрос на отмену оплаты с применением метода Google Pay должен содержать идентификаторы проекта и платежа и подпись:
Рис.: Пример запроса на отмену оплаты
{ "general": { "project_id": 580, "payment_id": "TEST_15427033321774", "signature": "96c+hWk1zweuGKwDRrl+Se5mDLXHChlDZrjJXZw7ew6ow3RpGYv4U...==" }
Формат оповещений о результатах оплат
Для оповещений о результатах оплат с применением метода Google Pay используется стандартный формат, описание которого представлено в разделе Оповещения.
К особенностям метода Google Pay можно отнести то, что в оповещениях для оплат, сопровождающихся проверкой 3D-Secure, передаётся код индикатора ECI в параметре operation.eci. Подробнее об индикаторах ECI — в разделе Коды Electronic Commerce Indicator.
В следующем примере оповещение свидетельствует о том, что в рамках проекта 688
была успешно проведена оплата в размере 1 000,00 RUB
с банковской карты 489537******3478
без проведения аутентификации 3D-Secure.
Рис.: Пример оповещения о проведении оплаты без 3D-Secure аутентификации
{
"project_id": 688,
"payment": {
"id": "TEST_154356886034722221",
"type": "purchase",
"status": "success",
"date": "2019-04-11T11:22:36+0000",
"method": "google-pay",
"sum": {
"amount": 100000,
"currency": "RUB"
},
"description": "TEST_154356886034722221"
},
"account": {
"number": "489537******3478"
},
"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": "RUB"
},
"sum_converted": {
"amount": 100000,
"currency": "RUB"
},
"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 RUB
с банковской карты 489537******3478
с проведением аутентификации 3D-Secure.
Рис.: Пример оповещения о проведении оплаты с 3D-Secure аутентификацией
{
"project_id": 688,
"payment": {
"id": "TEST_154356886034722221",
"type": "purchase",
"status": "success",
"date": "2019-04-11T11:22:36+0000",
"method": "google-pay",
"sum": {
"amount": 100000,
"currency": "RUB"
},
"description": "TEST_154356886034722221"
},
"account": {
"number": "489537******3478"
},
"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": "RUB"
},
"sum_converted": {
"amount": 100000,
"currency": "RUB"
},
"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.
Рис.: Пример оповещения об отказе в проведении оплаты
{
"project_id": 688,
"payment": {
"id": "TEST_154356886034722222",
"type": "purchase",
"status": "decline",
"date": "2019-04-11T11:24:51+0000",
"method": "google-pay",
"sum": {
"amount": 100100,
"currency": "RUB"
},
"description": "TEST_154356886034722222"
},
"account": {
"number": "489537******3478"
},
"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": "RUB"
},
"sum_converted": {
"amount": 100100,
"currency": "RUB"
},
"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 также могут быть полезны следующие материалы:
Повторяемые оплаты через Payment Page
Общая информация
Платёжный метод Google Pay предоставляет возможность проводить повторяемые оплаты — регулярные оплаты со списаниями по запросу. Подробная информация представлена в разделе Повторяемая оплата со списаниями по запросам.
Через Payment Page доступна регистрация повторяемой оплаты, для этого со стороны веб-сервиса необходимо отправить запрос, содержащий требуемые параметры и подпись, а также данные для регистрации повторяемой оплаты в объекте recurring, на рабочий URL ECommPay и принять оповещение о результате. В оповещении о регистрации повторяемой оплаты вы получите её идентификатор, который нужно использовать для проведения или отмены регулярной оплаты через Gate. Подробная информация об этом представлена в разделе Повторяемые оплаты через Gate.
Информация о формате запросов и параметрах вызова Payment Page при работе с Google Pay, а также о формате оповещений о результатах оплат приведена далее; общая информация о работе с API см. в разделе Описание Payment Page API.
Формат запросов
При формировании запросов на открытие платёжной формы для регистрации повторяемой оплаты с применением метода Google Pay необходимо учитывать следующее:
- Должен использоваться базовый минимум параметров — параметры, обязательные для любого платёжного метода:
- project_id — идентификатор проекта, полученный от ECommPay при интеграции;
- payment_id — идентификатор платежа, уникальный в рамках проекта;
- payment_currency — валюта платежа в формате ISO-4217 alpha-3;
- payment_amount — сумма платежа в минорных единицах;
- customer_id — идентификатор пользователя уникальный в рамках проекта.
- Для регистрации повторяемой оплаты необходимо передать объект recurring, содержащий признак регистрации и необходимую информацию. Для регистрации регулярной оплаты в запросе необходимо передать информацию о периодичности, сумме, начале и конце совершения регулярной оплаты. Полный список параметров, которые можно передать в объекте recurring представлен в разделе Регистрация повторяемых оплат.
- Валютой платежа может быть EUR, GBP, RUB, USD.
- Для предварительного выбора метода Google Pay необходимо указывать код платёжного метода в параметре force_payment_method:
google_pay_host
— для открытия Payment Page с предварительно выбранным платёжным методом Google Pay;card
— для открытия Payment Page с возможностью выбрать оплату с использованием платёжной карты, подключенной к сервису Google Pay. В данном случае оба платёжных метода доступны пользователю.
- Дополнительно могут использоваться любые другие параметры из числа доступных для работы с Payment Page. Детальная информация обо всех параметрах приведена в разделе Параметры открытия платежной формы Payment Page.
- После определения всех параметров необходимо составить подпись. Подробную информацию см. в Работа с подписью к данным.
Таким образом, корректный запрос на открытие платёжной формы для регистрации повторяемой оплаты с применением метода Google Pay должен содержать идентификаторы проекта и платежа, признак регистрации и информацию повторяемой оплаты, идентификатор пользователя, валюту и сумму платежа и подпись:
EPayWidget.run( { payment_id: 'X03936', payment_amount: 100000, payment_currency: 'RUB', project_id: 208, 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: "mcsgn6KHAVNU0FYldJrxh4yo+52Kt8KU+Y1Y4HASCQ9vySO...==" } )
Формат оповещений
Для оповещений о результатах регистрации повторяемой оплаты с применением метода Google Pay используется стандартный формат, описание которого представлено в разделе Оповещения.
В следующем примере оповещение свидетельствует о том, что в рамках проекта 208
для пользователя была успешно зарегистрирована повторяемая оплата.
Рис.: Пример оповещения о успешной регистрации повторяемой оплаты
{ "project_id": 208, "payment": { "id": "payment", "type": "purchase", "status": "success", "date": "2018-11-20T08:44:46+0000", "method": "google pay", "sum": { "amount": 300, "currency": "USD" }, "description": "payment" }, "account": { "number": "489537******3478" }, "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...==" }
Дополнительные материалы
Для организации работы с оплатами через Payment Page также могут быть полезны следующие материалы:
Повторяемые оплаты через Gate
Общая информация
Платёжный метод Google Pay предоставляет возможность проводить повторяемые оплаты — регулярные оплаты со списаниями по запросу. Подробнее см. в Повторяемая оплата со списаниями по запросам.
Информация о формате запросов и параметрах инициирования повторяемых оплат методом Google Pay через Gate, а также о формате оповещений о результатах приведена далее, общая информация о работе с API см. в разделе Работа с API.
Регистрация повторяемой оплаты
Для регистрации повторяемых оплат со стороны веб-сервиса необходимо отправить запрос на оплату, содержащий требуемые параметры и подпись, а также признак регистрации повторяемой оплаты recurring.register: true
, на рабочий URL ECommPay и принять оповещение о результате оплаты. Для регистрации регулярной оплаты в запросе необходимо передать информацию о периодичности, сумме, начале и конце совершения регулярной оплаты.
Подробнее о проведении оплаты через Gate с помощью метода Google Pay см. в разделе Оплаты через Gate.
В оповещении о регистрации повторяемой оплаты вы получите её идентификатор, который можно использовать для проведения или отмены регулярной оплаты.
Формат запросов
При работе с запросами на регистрацию повторяемой оплаты с применением метода Google Pay необходимо учитывать следующее:
- Должны использоваться запросы, отправляемые методом POST на следующие URL: /v2/payment/googlepay/sale или /v2/payment/googlepay/auth
- В запросе должны использоваться следующие объекты и параметры:
- general — объект, содержащий основные сведения:
- project_id — идентификатор проекта,
- 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)
.
- general — объект, содержащий основные сведения:
- Валютой платежа может быть EUR, GBP, RUB, USD.
- Дополнительно могут использоваться все параметры, указанные в спецификации.
Корректный запрос на регистрацию повторяемой оплаты с применением метода Google Pay должен содержать идентификаторы проекта и платежа, подпись, IP-адрес пользователя, валюту и сумму платежа, а также признак регистрации и условия проведения списаний при регулярной оплате.
Рис.: Пример запроса на регистрацию регулярной оплаты
{ "general": { "project_id": 208, "payment_id": "TEST_15427007172789", "signature": "DH0v2pZnkK9hwytQ6/ZtDSQh+wwx/OqrWdbltzO5GMSkzd0Iq6lM2...==", }, "customer": { "ip_address": "1.1.1.1", "id": "123" }, "payment": { "amount": 1000, "currency": "RUB" }, "recurring": { "register": true, "type": "R", "amount": 1000, "interval": 1, "cycle": "week", "start_date": "21-11-2018" } }
Проведение повторяемой оплаты
После того, как платёж зарегистрирован, чтобы инициировать повторяемую оплату, следует отправить в платёжную платформу запрос recurring
с полученным идентификатором платежа.
Формат запросов
При работе с запросами на проведение повторяемой оплаты с применением метода Google Pay необходимо учитывать следующее:
- Должен использоваться запрос, отправляемый методом POST на следующие URL: /v2/payment/googlepay/recurring.
- В запросе должны использоваться следующие объекты и параметры:
- general — объект, содержащий основные сведения:
- project_id — идентификатор проекта,
- payment_id — идентификатор платежа,
- signature — подпись запроса, составленная после указания целевых параметров (подробнее — в разделе Использование подписи к данным);
- customer — объект, содержащий сведения о пользователе:
- ip_address — используемый IP-адрес;
- payment — объект, содержащий сведения о платеже:
- amount — сумма,
- currency — валюта платежа в формате ISO-4217 alpha-3.
- recurring — объект, содержащий сведения о повторяемой оплате:
- id — идентификатор зарегистрированной повторяемой оплаты.
- general — объект, содержащий основные сведения:
- Дополнительно могут использоваться все параметры, указанные в спецификации.
Корректный запрос на проведение повторяемой оплаты с применением метода Google Pay должен содержать идентификаторы проекта и платежа, подпись, IP-адрес пользователя, валюту и сумму платежа, а также идентификатор зарегистрированной регулярной оплаты.
Рис.: Пример запроса на проведение регулярной оплаты
{ "general": { "project_id": 208, "payment_id": "TEST_15427007172789", "signature": "DH0v2pZnkK9hwytQ6/ZtDSQh+wwx/OqrWdbltzO5GMSkzd0Iq6lM2...==", }, "customer": { "ip_address": "1.1.1.1" }, "payment": { "amount": 1000, "currency": "RUB" }, "recurring": { "id": 1234567890 } }
Отмена проведения повторяемой оплаты
До момента истечения срока выполнения регулярной оплаты её можно отменить. Также для изменения условий выполнения регулярной оплаты её необходимо отменить и отправить запрос на создание новой.
Формат запросов
При работе с запросами на отмену повторяемой оплаты с применением метода Google Pay необходимо учитывать следующее:
- Должен использоваться запрос, отправляемый методом POST на следующие URL: /v2/payment/googlepay/recurring/cancel
- В запросе должны использоваться следующие объекты и параметры:
- general — объект, содержащий основные сведения:
- project_id — идентификатор проекта,
- payment_id — идентификатор платежа,
- signature — подпись запроса, составленная после указания целевых параметров (подробнее — в разделе Использование подписи к данным);
- recurring — объект, содержащий сведения о повторяемой оплате:
- id — идентификатор зарегистрированной повторяемой оплаты;
- general — объект, содержащий основные сведения:
- Дополнительно могут использоваться все параметры, указанные в спецификации.
Корректный запрос на отмену проведения регулярной оплаты с применением метода Google Pay должен содержать идентификаторы проекта и платежа, подпись, а также идентификатор зарегистрированной повторяемой оплаты.
Рис.: Пример запроса на отмену регулярной оплаты
{ "general": { "project_id": 208, "payment_id": "TEST_15427007172789", "signature": "DH0v2pZnkK9hwytQ6/ZtDSQh+wwx/OqrWdbltzO5GMSkzd0Iq6lM2v8...==", }, "recurring": { "id": 1234567890 } }
Формат оповещений
Для оповещений о результатах действий с повторяемыми оплатами с применением метода Google Pay используется стандартный формат, описание которого представлено в разделе Оповещения.
В следующем примере оповещение свидетельствует о том, что в рамках проекта 208
для пользователя была успешно зарегистрирована повторяемая оплата.
Рис.: Пример оповещения о успешном проведении повторяемой оплаты
{ "project_id": 208, "payment": { "id": "payment", "type": "recurring", "status": "success", "date": "2018-11-20T08:44:46+0000", "method": "google-pay", "sum": { "amount": 300, "currency": "USD" }, "description": "payment" }, "account": { "number": "489537******3478" }, "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": "google-pay", "sum": { "amount": 300, "currency": "USD" }, "description": "payment" }, "account": { "number": "489537******3478" }, "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": "google-pay", "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
Общая информация
Google Pay поддерживает проведение полных возвратов. Для проведения возврата через Gate с использованием метода Google Pay со стороны веб-сервиса необходимо отправить запрос, содержащий требуемые параметры и подпись, на рабочий URL ECommPay и принять оповещение о результате. Полная схема проведения возврата представлена далее.
Рис.: Проведение возврата через Gate
- Пользователь запрашивает возврат средств в веб-сервисе.
- От веб-сервиса мерчанта на заданный URL ECommPay передаётся запрос на проведение возврата через Gate.
- Gate перенаправляет запрос в платёжную платформу ECommPay для дальнейшей обработки.
- На стороне платёжной платформы ECommPay выполняются необходимые проверка и первичная обработка запроса.
- От платёжной платформы в веб-сервис передается ответ с результатом первичной обработки запроса. Подробнее см. в разделе Формат ответа.
- Обработанный запрос передается в сервис международной платёжной системы.
- На стороне международной платёжной системы выполняется обработка платежа.
- От международной платёжной системы к платёжной платформе ECommPay направляется оповещение о результате.
- От платёжной платформы ECommPay к веб-сервису направляется оповещение о результате.
- Пользователь получает от веб-сервиса информацию о поступлении запрошенных средств.
Информация о формате запросов и параметрах инициализации возвратов методом Google Pay через Gate, а также о формате оповещений о результатах выплат приведена далее, общая информация о работе с API см. в разделе Работа с API.
Формат запросов
При работе с запросами на возврат с применением метода Google Pay необходимо учитывать следующее:
- Должен использоваться запрос /v2/payment/googlepay/refund, отправляемый методом POST.
- В запросе должны использоваться следующие объекты и параметры:
- general — объект, содержащий основные идентификационные сведения о запросе:
- project_id — идентификатор проекта;
- payment_id — идентификатор платежа;
- signature — подпись запроса, составленная после указания целевых параметров (подробнее — в разделе Использование подписи к данным);
- customer — объект, содержащий сведения о пользователе:
- ip_address — используемый IP-адрес;
- payment — объект, содержащий сведения о возврате :
- description — комментарий или описание возврата,
- general — объект, содержащий основные идентификационные сведения о запросе:
- Дополнительно могут использоваться все параметры, указанные в спецификации.
Таким образом, корректный запрос на возврат с применением метода Google Pay должен содержать идентификаторы проекта и платежа, подпись, IP-адрес пользователя и описание платежа:
Рис.: Пример запроса на возврат
{ "general": { "project_id": 239, "payment_id": "refund_02", "signature": "of8k9xerKSK4XL1QFaDH3p9Mh0CIcjmOwSwKJ7KLTZYO56lCv+f1M0Sf/7eg==" }, "customer": { "ip_address": "1.2.3.4" }, "payment": { "description": "refund_02" } }
Формат оповещений
Для оповещений о результатах возврата с применением метода Google Pay используется стандартный формат, описание которого представлено в разделе Оповещения.
В следующем примере оповещение свидетельствует о том, что в рамках проекта 208
для пользователя был успешно проведён возврат в размере 30,00 USD
на счёт карты 537018******8236
.
Рис.: Пример оповещения о проведенном возврате
{
"project_id": 208,
"payment": {
"id": "TEST_123456",
"type": "purchase",
"status": "refunded",
"date": "2020-03-30T08:54:23+0000",
"method": "google-pay",
"sum": {
"amount": 0,
"currency": "USD"
},
"description": "payment for 30.0 USD"
},
"account": {
"number": "537018******8236",
"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/mV+tkJmB6OsGYLUYAyAIp3U/3x7jymU...=="
}
В следующем примере возврат был отклонён, так как значение суммы в запросе на возврат не соответствует сумме в инитной оплате.
Рис.: Пример оповещения об отказе в проведении возврата
{ "project_id": 208, "payment": { "id": "TEST_1234567", "type": "purchase", "status": "success", "date": "2020-03-27T17:41:04+0000", "method": "google-pay", "sum": { "amount": 2000, "currency": "EUR" }, "description": "35121367" }, "account": { "number": "532196******1368", "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": "8ql4yC3p2RiYbNXN15+64vo2B1HhpQVr1RbsDkpyQmD6HSxMYBrBQJmcKmL...==" }
Дополнительные материалы
Для организации работы с возвратами через Gate также могут быть полезны следующие материалы:
Проверка действительности карты
Общая информация
Для проверки действительности карты через Gate с использованием Google Pay метода со стороны веб-сервиса необходимо отправить запрос, содержащий требуемые параметры и подпись, на рабочий URL ECommPay и принять оповещение о результате. Схема проведения проверки действительности карты через сервис Google Pay аналогична стандартной проверке, описание которой представлено в разделе Проверка действительности.
Формат запросов на проверку действительности карты
При работе с запросами на проверку действительности карты через сервис Google Pay необходимо учитывать следующее:
- Должен использоваться запрос, отправляемый методом POST на /v2/payment/googlepay/account_verification.
- В запросе должны использоваться следующие объекты и параметры:
- general — основные идентификационные сведения запроса:
- project_id — идентификатор проекта,
- payment_id — идентификатор платежа
- signature — подпись запроса, составленная после указания целевых параметров (подробнее — в разделе Использование подписи к данным);
- customer — сведения о пользователе:
- ip_address — IP-адрес;
- payment — сведения о платеже:
- amount — сумма платежа в минорных единицах валюты,
- currency — валюта платежа в формате ISO-4217 alpha-3;
- etoken — сведения о токене от Google Pay:
- token — токен, полученный от Google Pay после идентификации пользователя.
- general — основные идентификационные сведения запроса:
- Валютой платежа может быть EUR, GBP, RUB, USD.
- Сумма платежа должна быть нулевой.
- Дополнительно могут использоваться все параметры, указанные в спецификации.
Таким образом, корректный запрос на проверку действительности карты с применением метода Google Pay должен содержать идентификаторы проекта и платежа, IP-адрес пользователя, валюту и сумму платежа, а также токен от Google Pay:
Рис.: Пример запроса на проверку действительности карты
{ "general": { "project_id": 238, "payment_id": "TEST_15427033321774", "signature": "96c+hWk1zweuGKwDRrl+Se5mDLXHChlDZrjJXZw7ew6ow3RpGYv4U...==" }, "customer": { "ip_address": "1.1.1.1" }, "payment": { "amount": 0, "currency": "RUB" }, "etoken": { "token": "k/cNkKsVhu5yGuRB4aFMNlwI9W36mgzBYgOeW61l/MkzFvx2P8RivIx7WWQtVWePx3Pjp3D4B5yn3SzDTxGyoo2GLojZ5Jh9wIycsuRbV00L55s9L7xDcs7ds30zUxDgo/XDGjckVmjfRuO6KlqYsDHaNd6LsAGXxWCNupL/2uwM8JolbW8AziV3l/MkgvaKldMwPu6MSq5k87lqKZPKiqf21NdO59n6PlS/Bqw6+GEJ5fcgkGZxrZzQLatk3IVlzwgVdsKBV4UH82Gx5uNW8OwsClJPZClTnCjkpVsxFxMrqOn1tZOohL5Bz7N18MGPIUAC01PgiauL+31ORBRrRxin8D7J1QLme0eTnlhbv+8IXdCyP1Ct/TwmbHaTFnCbFPy23mdTZ7NKZ95CPUIjiSP/PGnLxE6KqvGxu67g==" } }
Формат оповещений
Для оповещений о результатах проведения проверки действительности карты используется стандартный формат, описание которого представлено в разделе Проверка действительности.
Дополнительные материалы
Для организации работы с операциями через Gate также могут быть полезны следующие материалы:
Анализ результатов проведения платежей
Как и при работе с другими платёжными методами, которые предоставляет ECommPay, при использовании метода Google Pay доступны разные способы анализа информации о платежах и операциях с применением этого метода — как в отдельности, так и в совокупности с другими методами.
Всю необходимую информацию можно получать и анализировать средствами Dashboard (Old Dashboard), в том числе с помощью аналитических панелей на вкладке Analytics.
Также можно выгружать нужную информацию для последующего анализа с помощью специализированных аналитических средств сторонних разработчиков:
- Dashboard (Old Dashboard) позволяет выгружать данные в форматах CSV и XLS с помощью инструментов на вкладке Платежи. При этом можно выполнять разовые выгрузки информации на локальный компьютер и задействовать периодическую выгрузку и отправку информации на заданные адреса электронной почты.
- Data API позволяет получать информацию в формате JSON и отправлять ее на заданный URL — для этого применяются запросы /operations/get.
С любыми вопросами о возможностях анализа можно обращаться в службу технической поддержки ECommPay.