Google Pay

Обзор

Google Pay™ — платёжный метод для проведения оплат на сайтах и в мобильных приложениях с использованием платёжных карт. С помощью сервиса Google Pay пользователи могут платить без ввода карточных данных, так как они хранятся в учётных записях Google. Для работы с этим методом доступно проведение разовых и повторяемых оплат через Payment Page и Gate, проведение возвратов и проверки действительности карты через Gate.

Характеристика

Платёжный метод Бесконтактные платежи
Регионы использования Все страны
Валюты платежей EUR, GBP, RUB, USD
Конвертация валют На стороне ECommPay
Оплаты +
Выплаты
Оплаты по сохранённым данным +
Полные возвраты +
Частичные возвраты
Проверка действительности +
Опротестования +
Особенности
  • Проведение оплат осуществляется картами Visa и Mastercard
  • Для проведения оплат через Gate мерчант должен:
    • совершить ряд настроек, требуемых со стороны Google, и свериться с контрольным списком интеграции,
    • зарегистрироваться в сервисе Google и получить Google merchant ID,
    • обращаться к Google API напрямую через свой веб-сервис.

    Подробную информацию по этим пунктам можно получить у курирующего менеджера ECommPay

  • Оплаты могут сопровождаться аутентификацией 3‑D Secure в случаях, если они инициируется с устройств, не поддерживающих работу с приложением Google Pay
  • Все мерчанты должны придерживаться политик использования Google Pay API и принимать условия предоставления услуг Google Pay
Организация и стоимость подключения По согласованию с курирующим менеджером 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

  1. Пользователь на стороне веб-сервиса инициирует оплату.
  2. От веб-сервиса на заданный URL ECommPay передаётся запрос на открытие Payment Page.
  3. Запрос на открытие поступает в платёжную платформу.
  4. Выполняется начальная обработка запроса, в рамках которой обеспечивается проверка наличия обязательных параметров и корректной подписи.
  5. Осуществляется генерация Payment Page согласно настройкам проекта и параметрам вызова.
  6. Пользователю отображается сгенерированная платёжная форма Payment Page.
  7. Пользователь выбирает оплату с использованием платёжных карт и нажимает кнопку Google Pay. Если кнопка отображается среди прочих методов оплат на первой странице, то пользователь только нажимает кнопку Google Pay.
  8. Запрос на открытие интерфейса и формы оплаты Google Pay поступает в платёжную платформу.
  9. Запрос на открытие интерфейса и формы оплаты Google Pay и получение информации о картах, доступных пользователю, передаётся в сервис Google Pay.
  10. Сервис Google Pay обрабатывает запрос и генерирует платёжную форму со списком карт, доступных пользователю.
  11. Пользователю отображается интерфейс Google Pay со списком карт в маскированном виде:
    • При проведении оплат на сайтах в мобильной версии браузера Google Chrome или в мобильных приложениях, поддерживающих оплату с использованием Google Pay, открывается приложение Google Pay.
    • В иных случаях на мобильном устройстве или компьютере отображается окно Google Pay в браузере.
  12. Пользователь выбирает карту и подтверждает платёж. При подтверждении оплаты в браузере, а не приложении Google Pay, дополнительно осуществляется аутентификация 3D-Secure.
  13. Сервис Google Pay перенаправляет пользователя на страницу ожидания Payment Page.
  14. На стороне Google Pay выполняется обработка данных пользователя.
  15. От сервиса Google Pay в платёжную платформу передаётся токен с зашифрованными данными пользователя.
  16. Запрос от платёжной платформы на проведение оплаты поступает в сервис международной платёжной системы.
  17. На стороне международной платёжной системы выполняется обработка платежа.
  18. От сервиса международной платёжной системы к платёжной платформе ECommPay направляется результат платежа.
  19. От платёжной платформы к веб-сервису направляется оповещение о результате платежа.
  20. От платёжной платформы к Payment Page направляется результат проведения платежа.
  21. Результат платежа отображается пользователю на Payment Page.

Информация о формате запросов и параметрах вызова Payment Page при работе с Google Pay, а также о формате оповещений о результатах оплат приведена далее; общая информация о работе с API см. в разделе Описание Payment Page API.

Формат запросов

При формировании запросов на открытие платёжной формы с применением метода Google Pay необходимо учитывать следующее:

  1. Должен использоваться базовый минимум параметров — параметры, обязательные для любого платёжного метода:
    • project_id — идентификатор проекта, полученный от ECommPay при интеграции;
    • payment_id — идентификатор платежа, уникальный в рамках проекта;
    • payment_currency — валюта платежа в формате ISO-4217 alpha-3;
    • payment_amount — сумма платежа в минорных единицах валюты,
    • customer_id — идентификатор пользователя уникальный в рамках проекта.
  2. Можно выбирать вариант отображения кнопки Google Pay на Payment Page:
    • Отображение кнопки на странице для ввода данных платёжной карты. Предварительно пользователю необходимо выбирать оплату с использованием карт среди прочих платёжных методов. Этот вариант отображения задан по умолчанию.
    • Отображение кнопки на странице для выбора метода оплаты среди прочих платёжных методов. Для этого необходимо обращаться в техническую поддержку ECommPay.
    • Отображение кнопки на странице для ввода данных карты, когда пользователю сразу открывается эта страница и не надо предварительно выбирать оплату с использованием карт. В данном случае оба платёжных метода доступны пользователю. Для этого используется предварительный выбор метода оплаты с использованием карт и необходимо указывать код card в параметре force_payment_method.
    • Отображение одной кнопки на странице выбора метода оплаты. Для этого используется предварительный выбор метода Google Pay и необходимо указывать код платёжного метода google_pay в параметре force_payment_method.
  3. Валютой платежа может быть EUR, GBP, RUB, USD.
  4. Дополнительно могут использоваться любые другие параметры из числа доступных для работы с Payment Page. Детальная информация обо всех параметрах приведена в разделе Параметры открытия платежной формы Payment Page.
  5. После определения всех параметров необходимо составить подпись. Подробную информацию см. в Работа с подписью к данным.

Таким образом, корректный запрос на открытие платёжной формы с применением метода 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 с проведением аутентификации 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...=="
    }

В следующем примере оплата была отклонена, так как пользователь не прошел аутентификацию 3D 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 Pay API и принимать условия предоставления услуг Google Pay.

Оплата с использованием метода Google Pay может инициироваться пользователем с устройства, поддерживающего или не поддерживающего работу с приложением Google Pay. В первом случае оплата пройдет без аутентификации 3‑D Secure, во втором случае — с аутентификацией.

Для оплаты через Gate с использованием метода Google Pay без 3‑D Secure аутентификации (на устройствах и в браузерах, поддерживающих работу с приложением Google Pay) со стороны веб-сервиса необходимо:

  1. Встроить кнопку Google Pay, соблюдая рекомендации по правильному использованию бренда и реализовать процесс получения токена с карточными данными пользователя от сервиса Google Pay.
  2. Отправить запрос в сервис Google Pay на открытие платёжной формы или приложения Google Pay со списком сохраненных карт, доступных пользователю для оплаты.
  3. Отправить запрос в сервис Google Pay для получения токена с зашифрованными данными карты, выбранной пользователем.
  4. Отправить запрос, содержащий токен и другие требуемые параметры и подпись, на рабочий URL ECommPay.
  5. Принять оповещение о результате оплаты от платформы.

Для оплаты через Gate с использованием метода Google Pay с проведением 3‑D Secure аутентификации (на устройствах, не поддерживающих работу с приложением Google Pay) со стороны веб-сервиса необходимо:

  1. Встроить кнопку Google Pay, соблюдая рекомендации по правильному использованию бренда и реализовать процесс получения токена с карточными данными пользователя от сервиса Google Pay.
  2. Отправить запрос в сервис Google Pay на открытие платёжной формы или приложения Google Pay со списком сохраненных карт, доступных пользователю для оплаты.
  3. Отправить запрос в сервис Google Pay для получения токена с зашифрованными данными карты, выбранной пользователем.
  4. Отправить запрос, содержащий токен и другие требуемые параметры и подпись, на рабочий URL ECommPay.
  5. Получить оповещение от платформы с данными для перенаправления пользователя на страницу аутентификации.
  6. Перенаправить пользователя на страницу аутентификации для прохождения проверки 3‑D Secure.
  7. Отправить запрос на продолжение проведения платежа с результатом аутентификации в платёжную платформу.
  8. Принять оповещение о результате оплаты от платформы.

Полные схемы проведения оплаты представлены далее.



Рис.: Проведение оплаты через Gate без 3‑D Secure аутентификации

  1. Пользователь на стороне веб-сервиса инициирует оплату через Google Pay
  2. Запрос на открытие интерфейса Google Pay и получение информации о картах, доступных пользователю, передаётся в сервис Google Pay.
  3. Сервис Google Pay обрабатывает запрос и генерирует платёжную форму со списком карт, доступных пользователю.
  4. При проведении оплат на сайтах в мобильной версии браузера Google Chrome или в мобильных приложениях, поддерживающих оплату с использованием Google Pay, пользователю отображается приложение Google Pay со списком карт в маскированном виде.
  5. Пользователь выбирает карту и подтверждает платёж.
  6. Сервис Google Pay перенаправляет пользователя на страницу ожидания веб-сервиса.
  7. На стороне Google Pay выполняется обработка данных пользователя.
  8. От сервиса Google Pay в веб-сервис передаётся токен с зашифрованными данными выбранной карты.
  9. От веб-сервиса на заданный URL ECommPay передаётся запрос на проведение оплаты через Gate с помощью токена карты, полученного от Google Pay.
  10. Запрос на проведение оплаты поступает в платёжную платформу.
  11. Выполняется начальная обработка запроса, в рамках которой обеспечивается проверка наличия обязательных параметров и корректной подписи.
  12. От платёжной платформы к веб-сервису направляется ответ с информацией о получении запроса и его корректности. Подробнее см. в разделе Формат ответа.
  13. Запрос на проведение оплаты поступает в сервис международной платёжной системы.
  14. На стороне международной платёжной системы выполняется обработка платежа.
  15. От сервиса международной платёжной системы к платёжной платформе направляется уведомление о результате платежа.
  16. От платёжной платформы к веб-сервису направляется оповещение о результате платежа.
  17. От веб-сервиса пользователю направляется результат платежа.


Рис.: Проведение оплаты через Gate с 3‑D Secure аутентификацией

  1. Пользователь на стороне веб-сервиса инициирует оплату через Google Pay
  2. Запрос на открытие интерфейса Google Pay и получение информации о картах, доступных пользователю, передаётся в сервис Google Pay.
  3. Сервис Google Pay обрабатывает запрос и генерирует платёжную форму со списком карт, доступных пользователю.
  4. При проведении оплаты на мобильном устройстве или компьютере, не поддерживающих оплату с использованием Google Pay, пользователю отображается окно Google Pay в браузере со списком карт в маскированном виде.
  5. Пользователь выбирает карту и подтверждает платёж.
  6. Сервис Google Pay перенаправляет пользователя на страницу ожидания веб-сервиса.
  7. На стороне Google Pay выполняется обработка данных пользователя.
  8. От сервиса Google Pay в веб-сервис передаётся токен с зашифрованными данными выбранной карты.
  9. От веб-сервиса на заданный URL ECommPay передаётся запрос на проведение оплаты через Gate с помощью токена карты, полученного от Google Pay.
  10. Запрос на проведение оплаты поступает в платёжную платформу.
  11. Выполняется начальная обработка запроса, в рамках которой обеспечивается проверка наличия обязательных параметров и корректной подписи. При подтверждении оплаты в браузере, а не приложении Google Pay, дополнительно осуществляется аутентификация 3D-Secure.
  12. От платёжной платформы к веб-сервису направляется ответ с информацией о получении запроса и его корректности. Подробнее см. в разделе Формат ответа.
  13. В платёжной платформе выполняются дальнейшая обработка запроса и его отправка в сервис международной платёжной системы.
  14. На стороне международной платёжной системы выполняется обработка запроса на оплату и проверка необходимости проведения аутентификации пользователя.
  15. От сервиса международной платёжной системы к платёжной платформе передаются данные для перенаправления пользователя на страницу аутентификации.
  16. От платёжной платформы к веб-сервису направляется оповещение с данными для перенаправления пользователя на страницу аутентификации. Для этого используются оповещения стандартного формата, описание которого представлено в разделе Оповещения. Подробная информация о форматах оповещений с данными для перенаправления при проведении аутентификации представлена в соответствующих разделах 3-D Secure 1 и 3-D Secure 2.
  17. Веб-сервис мерчанта обеспечивает перенаправление пользователя на страницу аутентификации 3D-Secure.
  18. Пользователь перенаправляется на страницу аутентификации и проходит проверку 3D-Secure.
  19. Сервис международной платёжной системы выполняет аутентификацию пользователя.
  20. Выполняется перенаправление пользователя к веб-сервису.
  21. От веб-сервиса к платёжной платформе отправляется запрос в Gate на продолжение проведения оплаты с результатом прохождения аутентификации пользователя.
  22. Запрос на продолжение проведения оплаты поступает в платёжную платформу.
  23. Выполняется обработка запроса, в рамках которой обеспечивается проверка наличия обязательных параметров и корректной подписи.
  24. От платёжной платформы к веб-сервису направляется ответ с информацией о получении данных и их корректности.
  25. Запрос на продолжение проведения оплаты поступает в сервис международной платёжной системы.
  26. На стороне международной платёжной системы выполняется обработка платежа.
  27. От сервиса международной платёжной системы к платёжной платформе направляется уведомление о результате платежа.
  28. От платёжной платформы к веб-сервису направляется оповещение о результате платежа.
  29. От веб-сервиса пользователю направляется результат платежа.

Информация о формате запросов и параметрах инициирования оплат методом Google Pay через Gate, а также о формате оповещений о результатах оплат приведена далее, общая информация о работе с API — в разделе Работа с API.

Формат запросов

При работе с запросами на оплаты с применением метода Google Pay необходимо учитывать следующее:

  1. Должен использоваться запрос, отправляемый методом POST:
  2. В запросе должны использоваться следующие объекты и параметры:
    • general — объект, содержащий основные идентификационные сведения запроса:
      • project_id — идентификатор проекта, полученный от ECommPay при интеграции;
      • payment_id — идентификатор платежа, уникальный в рамках проекта;
      • signature — подпись запроса, составленная после указания целевых параметров (подробнее — в разделе Использование подписи к данным);
    • customer — объект, содержащий сведения о пользователе:
      • id — идентификатор, уникальный в рамках проекта,
      • ip_address — IP-адрес пользователя;
    • payment — объект, содержащий сведения о платеже:
      • amount — сумма платежа в минорных единицах валюты;
      • currency — валюта платежа в формате ISO-4217 alpha-3;
    • etoken — объект, содержащий сведения о токене с зашифрованными данными карты, полученный от сервиса Google Pay:
      • token — токен с зашифрованными данными карты.
  3. Могут потребоваться другие обязательные параметры в зависимости от типа токенизации карты, который используется при формировании запросов в сервис Google Pay. Информацию о том, какой тип токенизации используется при проведении оплат в рамках проекта, необходимо уточнять у специалистов технической поддержки ECommPay:
    • Для использования типа токенизации PAYMENT_GATEWAY дополнительно необходимо указывать адрес электронной почты пользователя в параметре email объекта customer.
    • Для типа токенизации DIRECT необходимо указывать в объекте etoken:
      • google_merchant_id — идентификатор мерчанта в сервисе Google Pay;
      • google_tokenization_type — тип токенизации DIRECT.
  4. Валютой платежа может быть EUR, GBP, RUB, USD.
  5. Дополнительно могут использоваться все параметры, указанные в спецификации.

Таким образом, корректный запрос на оплату с применением метода 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 аутентификации пользователя необходимо учитывать следующее:

  1. Должен использоваться запрос, отправляемый методом POST на /v2/payment/card/3ds_result.
  2. В запросе должны использоваться следующие объекты и параметры:
    • general — основные идентификационные сведения запроса:
      • project_id — идентификатор проекта,
      • payment_id — идентификатор платежа, по которому необходимо подтвердить списание,
      • signature — подпись запроса, составленная после указания целевых параметров (подробнее — в разделе Использование подписи к данным);
    • pares — данные о результате аутентификации.

Таким образом, корректный запрос на продолжение оплаты с применением метода Google Pay должен содержать идентификаторы проекта и платежа, подпись и данные результата аутентификации:

Рис.: Пример запроса на продолжение оплаты

{
  "general": {
    "project_id": 580,
    "payment_id": "TEST_15427033321774",
    "signature": "96c+hWk1zweuGKwDRrl+Se5mDLXHChlDZrjJXZw7ew6ow3RpGYv4U...=="
  },
  "pares": "eJzVWdfvq8iy/iujOY/WDBnbI+9ldZMMJpho4I1...Dfn76en3N+f/A1fJrSU="
  }

Формат запросов на подтверждение оплаты в две стадии

При работе с запросами на подтверждение оплаты необходимо учитывать следующее:

  1. Должен использоваться запрос, отправляемый методом POST на /v2/payment/googlepay/capture для подтверждения оплаты в две стадии.
  2. В запросе должны использоваться следующие объекты и параметры:
    • general — основные идентификационные сведения запроса:
      • project_id — идентификатор проекта,
      • payment_id — идентификатор платежа, по которому необходимо подтвердить списание,
      • signature — подпись запроса, составленная после указания целевых параметров (подробнее — в разделе Использование подписи к данным);
    • payment — сведения о платеже:
      • amount — сумма платежа в минорных единицах валюты,
      • currency — валюта платежа в формате ISO-4217 alpha-3;
  3. Валюта и сумма платежа должны совпадать со значениями, переданными в запросе на авторизацию.
  4. Дополнительно могут использоваться все параметры, указанные в спецификации.

Таким образом, корректный запрос на оплату с применением метода Google Pay должен содержать идентификаторы проекта и платежа, валюту и сумму платежа:

Рис.: Пример запроса на подтверждение оплаты

{
  "general": {
    "project_id": 580,
    "payment_id": "TEST_15427033321774",
    "signature": "96c+hWk1zweuGKwDRrl+Se5mDLXHChlDZrjJXZw7ew6ow3RpGYv4U...=="
  },
  "payment": {
    "amount": 100000,
    "currency": "RUB"
  }

Формат запросов на отмену оплаты в две стадии

При работе с запросами на отмену оплаты необходимо учитывать следующее:

  1. Должен использоваться запрос, отправляемый методом POST на /v2/payment/googlepay/cancel для отмены проведения оплаты в две стадии.
  2. В запросе должны использоваться следующие объекты и параметры:
    • general — основные идентификационные сведения запроса:
      • project_id — идентификатор проекта,
      • payment_id — идентификатор платежа, по которому необходимо отменить списание,
      • signature — подпись запроса, составленная после указания целевых параметров (подробнее — в разделе Использование подписи к данным);
  3. Дополнительно могут использоваться все параметры, указанные в спецификации.

Таким образом, корректный запрос на отмену оплаты с применением метода 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 необходимо учитывать следующее:

  1. Должен использоваться базовый минимум параметров — параметры, обязательные для любого платёжного метода:
    • project_id — идентификатор проекта, полученный от ECommPay при интеграции;
    • payment_id — идентификатор платежа, уникальный в рамках проекта;
    • payment_currency — валюта платежа в формате ISO-4217 alpha-3;
    • payment_amount — сумма платежа в минорных единицах;
    • customer_id — идентификатор пользователя уникальный в рамках проекта.
  2. Для регистрации повторяемой оплаты необходимо передать объект recurring, содержащий признак регистрации и необходимую информацию. Для регистрации регулярной оплаты в запросе необходимо передать информацию о периодичности, сумме, начале и конце совершения регулярной оплаты. Полный список параметров, которые можно передать в объекте recurring представлен в разделе Регистрация повторяемых оплат.
  3. Валютой платежа может быть EUR, GBP, RUB, USD.
  4. Для предварительного выбора метода Google Pay необходимо указывать код платёжного метода в параметре force_payment_method:
    • google_pay — для открытия Payment Page с предварительно выбранным платёжным методом Google Pay;
    • card — для открытия Payment Page с возможностью выбрать оплату с использованием платёжной карты, подключенной к сервису Google Pay. В данном случае оба платёжных метода доступны пользователю.
  5. Дополнительно могут использоваться любые другие параметры из числа доступных для работы с Payment Page. Детальная информация обо всех параметрах приведена в разделе Параметры открытия платежной формы Payment Page.
  6. После определения всех параметров необходимо составить подпись. Подробную информацию см. в Работа с подписью к данным.

Таким образом, корректный запрос на открытие платёжной формы для регистрации повторяемой оплаты с применением метода Google Pay должен содержать идентификаторы проекта и платежа, признак регистрации и информацию повторяемой оплаты, идентификатор пользователя, валюту и сумму платежа и подпись:

EPayWidget.run(
    { payment_id: 'X03936', 
      payment_amount: 100000, 
      payment_currency: 'RUB', 
      project_id: 208, 
      customer_id: 'customer1',
      force_payment_method: 'google_pay',
      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 необходимо учитывать следующее:

  1. Должны использоваться запросы, отправляемые методом POST на следующие URL: /v2/payment/googlepay/sale или /v2/payment/googlepay/auth
  2. В запросе должны использоваться следующие объекты и параметры:
    • 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).
  3. Валютой платежа может быть EUR, GBP, RUB, USD.
  4. Дополнительно могут использоваться все параметры, указанные в спецификации.

Корректный запрос на регистрацию повторяемой оплаты с применением метода 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 необходимо учитывать следующее:

  1. Должен использоваться запрос, отправляемый методом POST на следующие URL: /v2/payment/googlepay/recurring.
  2. В запросе должны использоваться следующие объекты и параметры:
    • general — объект, содержащий основные сведения:
      • project_id — идентификатор проекта,
      • payment_id — идентификатор платежа,
      • signature — подпись запроса, составленная после указания целевых параметров (подробнее — в разделе Использование подписи к данным);
    • customer — объект, содержащий сведения о пользователе:
      • ip_address — используемый IP-адрес;
    • payment — объект, содержащий сведения о платеже:
      • amount — сумма,
      • currency — валюта платежа в формате ISO-4217 alpha-3.
    • recurring — объект, содержащий сведения о повторяемой оплате:
      • id — идентификатор зарегистрированной повторяемой оплаты.
  3. Дополнительно могут использоваться все параметры, указанные в спецификации.

Корректный запрос на проведение повторяемой оплаты с применением метода 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 необходимо учитывать следующее:

  1. Должен использоваться запрос, отправляемый методом POST на следующие URL: /v2/payment/googlepay/recurring/cancel
  2. В запросе должны использоваться следующие объекты и параметры:
    • general — объект, содержащий основные сведения:
      • project_id — идентификатор проекта,
      • payment_id — идентификатор платежа,
      • signature — подпись запроса, составленная после указания целевых параметров (подробнее — в разделе Использование подписи к данным);
    • recurring — объект, содержащий сведения о повторяемой оплате:
      • id — идентификатор зарегистрированной повторяемой оплаты;
  3. Дополнительно могут использоваться все параметры, указанные в спецификации.

Корректный запрос на отмену проведения регулярной оплаты с применением метода 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

  1. Пользователь запрашивает возврат средств в веб-сервисе.
  2. От веб-сервиса мерчанта на заданный URL ECommPay передаётся запрос на проведение возврата через Gate.
  3. Gate перенаправляет запрос в платёжную платформу ECommPay для дальнейшей обработки.
  4. На стороне платёжной платформы ECommPay выполняются необходимые проверка и первичная обработка запроса.
  5. От платёжной платформы в веб-сервис передается ответ с результатом первичной обработки запроса. Подробнее см. в разделе Формат ответа.
  6. Обработанный запрос передается в сервис международной платёжной системы.
  7. На стороне международной платёжной системы выполняется обработка платежа.
  8. От международной платёжной системы к платёжной платформе ECommPay направляется оповещение о результате.
  9. От платёжной платформы ECommPay к веб-сервису направляется оповещение о результате.
  10. Пользователь получает от веб-сервиса информацию о поступлении запрошенных средств.

Информация о формате запросов и параметрах инициализации возвратов методом Google Pay через Gate, а также о формате оповещений о результатах выплат приведена далее, общая информация о работе с API см. в разделе Работа с API.

Формат запросов

При работе с запросами на возврат с применением метода Google Pay необходимо учитывать следующее:

  1. Должен использоваться запрос /v2/payment/googlepay/refund, отправляемый методом POST.
  2. В запросе должны использоваться следующие объекты и параметры:
    • general — объект, содержащий основные идентификационные сведения о запросе:
      • project_id — идентификатор проекта;
      • payment_id — идентификатор платежа;
      • signature — подпись запроса, составленная после указания целевых параметров (подробнее — в разделе Использование подписи к данным);
    • customer — объект, содержащий сведения о пользователе:
      • ip_address — используемый IP-адрес;
    • payment — объект, содержащий сведения о возврате :
      • description — комментарий или описание возврата,
  3. Дополнительно могут использоваться все параметры, указанные в спецификации.

Таким образом, корректный запрос на возврат с применением метода 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 необходимо учитывать следующее:

  1. Должен использоваться запрос, отправляемый методом POST на /v2/payment/googlepay/account_verification.
  2. В запросе должны использоваться следующие объекты и параметры:
    • general — основные идентификационные сведения запроса:
      • project_id — идентификатор проекта,
      • payment_id — идентификатор платежа
      • signature — подпись запроса, составленная после указания целевых параметров (подробнее — в разделе Использование подписи к данным);
    • customer — сведения о пользователе:
      • ip_address — IP-адрес;
    • payment — сведения о платеже:
      • amount — сумма платежа в минорных единицах валюты,
      • currency — валюта платежа в формате ISO-4217 alpha-3;
    • etoken — сведения о токене от Google Pay:
      • token — токен, полученный от Google Pay после идентификации пользователя.
  3. Валютой платежа может быть EUR, GBP, RUB, USD.
  4. Сумма платежа должна быть нулевой.
  5. Дополнительно могут использоваться все параметры, указанные в спецификации.

Таким образом, корректный запрос на проверку действительности карты с применением метода 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.