Общая информация
Поддерживаемые валюты
Код валюты (по ISO 4217)
Название валюты
AED
Дирхам ОАЭ
AZN
Азербайджанский манат
BRL
Бразильский реал
CAD
Канадский доллар
EUR
Евро
GBP
Британский фунт
KGS
Киргизский сом
INR
Индийская рупия
KRW
Южнокорейская вона
PLN
Польский злотый
RUB
Российский рубль
TJS
Таджикский сомони
USD
Доллар США
Способы оплаты
Способ
Описание
Card
Оплата банковской картой
ApplePay
Оплата через ApplePay
GooglePay
Оплата через GooglePay
Статусы операций
Статус
Значение
Created
Платеж зарегистрирован в шлюзе, но его обработка не завершена
PreAuthorized3DS
Пользователь начал аутентификацию по протоколу 3D‑Secure
PreAuthorized3DS2
Пользователь начал аутентификацию по протоколу 3D-Secure (3DS 2.0)
PreAuthorized3DSMethod
Пользователь начал этап проведения 3DS Method (3DS 2.0)
Authorized
Средства заблокированы, но не списаны (двухстадийный платеж)
Reversed
Средства на карте были заблокированы и полностью разблокированы
Charged
Денежные средства списаны с карты пользователя, платёж завершен успешно
Refunded
Успешно произведен полный возврат средств на карту пользователя
Rejected
Последняя операция по платежу отклонена
Pending
Операция находится в обработке. В этом случае желательно делать запросы статуса через временные промежутки в геометрической прогрессии, чтобы узнать окончательный статус платежа
Credited
Средства зачислены на карту пользователя, перевод завершен успешно
Типы данных
В описаниях методов API используются следующие обозначения типов данных:
Обозначение
Пояснение
A
Строка
A*
Строка с фиксированным количеством символов. Число указывает количество символов
A..*
Строка с ограничением количества символов. Число указывает максимальное допустимое количество символов
Ar
Массив
Ar..*
Массив с ограничением числа элементов. Число указывает максимальное допустимое количество элементов
B
Данные логического типа
D
Словарь
F
Дробное число
N
Целое число
N*
Целое число с фиксированным количеством символов. Число указывает количество символов
Гарантированные уведомления
Гарантированные уведомления (или — callback) служат для информирования мерчанта об успешных или неуспешных платежах и работают следующим образом:
после изменения статуса заказа платежный шлюз посылает POST‑запрос
(Content-type: x‑www‑form‑urlencoded) на заранее заданный URL.
В параметрах запроса передается order_id;
если получен успешный код ответа (2xx), то обработка уведомления завершается;
если получена ошибка, или сервер недоступен, то попытка повторяется через 10 секунд, 1 минуту, 15 минут, 30 минут, 1 час, 2 часа, 4 часа, 6 часов, 8 часов.
Для получения callback сервис мерчанта должен быть доступен по одному из следующих портов: 80, 433, 8080, 4443, 8443, 9443, 14405, 4405. IP-адрес исходящего соединения: 178.20.235.180.
URL для отправки гарантированных уведомлений указывается мерчантом в Личном кабинете в разделе «Настройки».
Фискальные электронные чеки
Выдача чеков происходит следующим образом:
После совершения платежа мерчант вызывает метод Receipt, в который передается вся информация, необходимая для выдачи чека. Чек поступает в обработку.
После завершения обработки чека, мерчант получает callback (POST-запрос), на URL, указанный в личном кабинете. В запросе передается параметр order_id.
После получения callback мерчант вызывает метод GetReceiptStatus и получает в ответ информацию по выданному чеку.
В личном кабинете сервиса АТОЛ ОНЛАЙН (а также — в личном кабинете ОФД) доступна статистика и отчетность по выданным чекам. После регистрации чека в ККТ, ОФД самостоятельно проводит рассылку чеков плательщикам по указанным контактным данным (e mail, sms).
Управление учётными записями и картами пользователей
Для удобства постоянных пользователей мерчант может сохранить их карточные данные для последующих платежей. Данные платежной карты пользователя могут вводиться как на стороне мерчанта, так и на веб‑странице защищенного шлюза Payler. В первом случае мерчант должен соответствовать требованиям стандарта безопасности PCI DSS.
Описание методов, обеспечивающих управление учетными записями и платёжными картами пользователей, см. в разделе Методы API: сохранение данных карт.
Сценарии сохранения карточных данных
Привязка карт выглядит следующим образом:
Мерчант создает пользователя в системе Payler метод CustomerRegister.
Мерчант привязывает карты к созданному пользователю одним из способов:
Во время проведения платежа; метод StartSession.
С проверкой суммы и автоматическим возвратом (разблокировкой) средств; метод StartSaveCardSession (схема Gate) или PaySaveCard (схема Merchant).
При последующих оплатах мерчант указывает идентификатор пользователя (customer_id), и на странице оплаты пользователь сможет выбрать одну из своих ранее сохраненных карт или указать новую карту.
Удаление карты (RemoveCard) и удаление пользователя (CustomerDelete) необратимы. При удалении пользователя все привязанные к нему карты будут также удалены.3
Для последующих операций Payment (платеж) требуется хранить и использовать reccurent_template_id. Для последующих операций Credit (перевод) требуется хранить и использовать card_id.
Сохранение карты при оплате
Сценарий выполнения:
Мерчант вызывает метод StartSession с ключевыми параметрами reccurrent=true и customer_id.
Мерчант отправляет пользователя на страницу оплаты (метод PayGate).
Пользователь вводит и отправляет карточные данные.
После завершения оплаты пользователь возвращается на сайт мерчанта, на заранее заданный адрес. Происходит отправка callback (опционально).
При возврате пользователя или получении callback мерчант может вызвать метод GetAdvancedStatus для проверки статуса заказа и получения card_id/reccurent_template_id.
Если по платежу отсутствует 3DS (карта не вовлечена в 3D‑Secure), карта не сохраняется; Если платеж отклоняется по балансу или проходит успешно, то для последующего списания (метод RepeatPay) создается рекуррентный шаблон, и карта сохраняется для операций выдачи средств (метод RepeatCredit). Данные шаблона отправляется исключительно в callback.
Сохранение карты с проверкой суммы и автоматическим возвратом (разблокировкой)
В данном сценарии проводится блокировка или списание денежных средств в размере 1 руб. с последующей автоматической отменой операции. Тип выполняемой операции (блокировка/списание) зависит от настроек процессинга.
Сценарий выполнения для схемы Gate:
Мерчант вызывает метод StartSaveCardSession для создания сессии сохранения карты.
Мерчант отправляет пользователя на страницу сохранения карты (метод Save).
Пользователь вводит и отправляет карточные данные.
После завершения оплаты пользователь возвращается на сайт мерчанта, на заранее заданный адрес. Происходит отправка callback (опционально).
При успешном проведении проверочного списания производится автоматический возврат средств.
При возврате пользователя или получении callback мерчант может вызвать метод GetAdvancedStatus для проверки статуса заказа и получения card_id/reccurent_template_id.
Сценарий выполнения для схемы Merchant:
Мерчант вызывает метод PaySaveCard.
Пользователь вводит и отправляет карточные данные.
При успешном проведении проверочного списания производится автоматический возврат или отмена блокировки средств.
Происходит отправка callback (опционально).
При получении callback мерчант может вызвать метод GetAdvancedStatus для проверки статуса заказа и получения card_id/reccurent_template_id.
Особенности:
Если по платежу отсутствует 3DS (карта не вовлечена в 3D‑Secure), карта не сохраняется;
Если платеж прошел успешно или отклонился по балансу, то карта сохраняется и пользователю демонстрируется форма с информацией о том, что карта сохранена успешно. Шаблон формы может быть кастомизирован.
Если операция завершилась успешно, то автоматически происходит возврат (разблокировка) средств.
Если платеж отклоняется по балансу или проходит успешно, то для последующих платежей создается рекуррентный шаблон и карта сохраняется для операций выдачи средств (Credit). Данные шаблона (_template_id) отправляются исключительно в callback.
Рекуррентные платежи
Рекуррентные (регулярные, повторяющиеся) платежи — это платежи, которые не требуют повторного ввода реквизитов карты. Пользователь единожды производит оплату и соглашается с условиями регулярного списания; последующее списание происходит без его участия. При осуществлении первого платежа в серии, в базе данных регистрируется шаблон рекуррентных платежей. Шаблону присваивается уникальный идентификатор, который сообщается мерчанту. При осуществлении повторного платежа мерчант выполняет запрос с указанием полученного идентификатора шаблона.
Первый платеж выполняется с вводом всех реквизитов карты, включая код подлинности карты (CVV2/CVC2) и прохождение авторизации по протоколу 3D‑Secure. Последующие платежи выполняются без ввода реквизитов карты и без участия владельца карты.
Принципы работы
При выполнении платежа мерчант может передать специальный параметр, который будет означать, что данный платеж — это первый платеж в очереди повторяющихся платежей. Если оплата произведена успешно, мерчант получит идентификатор созданного шаблона. Повторные платежи будут выполняться с использованием этого идентификатора.
Срок действия шаблона задается равным сроку действия банковской карты, к которой он привязан. Информацию о зарегистрированных шаблонах рекуррентных платежей можно получить в результате выполнения запроса GetTemplate; при этом требуется указать идентификатор шаблона.
Активация или деактивация шаблона выполняется в результате запроса ActivateTemplate; при этом требуется указать идентификатор шаблона.
Автоматическое удаление шаблонов через Payler API недоступно. Удалить шаблон можно по запросу к технической службе Payler.
Суммы повторных платежей могут быть как больше, так и меньше суммы первоначального платежа. Первоначальный платеж можно отменить (вернуть деньги пользователю), но возможность выполнять повторные платежи останется.
Первоначальный платеж в серии может быть как одностадийным, так и двухстадийным.
В случае двухстадийного платежа шаблон создается при блокировании средств, но становится активным только после того, как успешно выполнено списание заблокированных средств. Повторные платежи всегда — одностадийные.
Сценарии проведения платежа
После успешного проведения платежа мерчант получает идентификатор созданного шаблона рекуррентных платежей (параметр recurrent_template_id) в callback. Обязательным условием является использование протокола HTTPS для callback. Предварительно мерчанту необходимо выполнить настройку callback для триггера charge или block. Настроить callback можно самостоятельно в личном кабинете мерчанта или обратившись в службу поддержки Payler.
Этапы сценария
Выполнение платежа Создать платежную сессию (запрос StartSession) с указанием значения параметра recurrent = true. Перенаправить пользователя на запрос PayGate. Или (только для схемы Merchant) — выполнить запрос PayMerchant или Block c указанием параметра recurrent = true.
Сохранение шаблона рекуррентных платежей После проведения успешного платежа Payler отправляет мерчанту идентификатор созданного шаблона в параметре recurrent_template_id с помощью сallback. После получения callback требуется запросить статус платежа (запрос GetStatus). Это необходимо, чтобы убедиться, что платеж прошел успешно. В случае успешного списания мерчант сохраняет полученный recurrent_template_id. Если статус платежа отличен от charged/authorized, рекуррентный шаблон надо считать недействительным. Требуется обратиться в службу поддержки.
Выполнение повторного платежа Для проведения повторного платежа необходимо выполнить запрос RepeatPay, с указанием полученного параметра recurrent_template_id.
Запрос статуса повторного платежа Необходимо получить статус повторного платежа, используя запрос GetStatus, с указанием параметров key, order_id.
Внимание
Правила МПС ограничивают число попыток рекуррентного списания средств.
При получении отказа по рекуррентному платежу по карте VISA повторный запрос на авторизацию можно направлять не более 4 раз в течение 16 календарных дней;
При получении отказа по рекуррентному платежу по карте MasterCard повторный запрос на авторизацию можно направлять не чаще 1 раза в день в течение 31 дня.
Нарушение мерчантом правил попыток рекуррентного списания средств может понести за собой оспаривание платежей (chargeback) в пользу плательщика.
В процессе интеграции мерчанту требуется сообщить службе технической поддержки Payler о необходимости подключения и настройки рекуррентных платежей на его аккаунте.

Сплитование платежей
Если сумма платежа или перевода должна быть разделена между различными партнерами / клиентами ТСП, мерчант может передавать в запросе дополнительные параметры, содержащие данные о суммах перечислений и идентификаторах всех получателей. Это позволяет проводить транзакции в адрес нескольких получателей в рамках одной операции.
Доступность сплитования для мерчанта зависит от конкретного банка-эквайера. Для уточнения возможности использования данного функционала и регистрации реквизитов получателей для сплитования необходимо связаться со службой технической поддержки Payler.
Принцип работы
Мерчант присылает реквизиты партнеров, на которые будет проводиться сплитование дебетовых операций или дополнительная выплата кредитных операций.
После регистрации реквизитов мерчант получает ID получателей, которые закрепляются за этими реквизитами. Необходимые реквизиты: наименование организации, ИНН, БИК, Р/С.
Для запросов StartSession (при использовании gapi) или PayMerchant, Block (при использовании mapi) необходимо передать дополнительные параметры следующим образом:
pay_page_param_addtoreport3 — суммы зачисления частей платежа для каждого получателя через запятую. Например: «30000,50000».
pay_page_param_addtoreport4 — ID получателей через запятую. Например: «322_1,322_2».
Для запросов StartCreditSession (при использовании cgapi) или CreditMerchant (при использовании cmapi) необходимо передать дополнительные параметры следующим образом:
pay_page_param_addtoreport3 — суммы переводов с р/с мерчанта для каждого получателя через запятую. Например: «3000000,7800».
pay_page_param_addtoreport4 — ID получателей через запятую. Например: «322_3, 322_4».
3D-Secure
3D Secure является XML-протоколом, который используется для двухфакторной аутентификации пользователя в качестве дополнительного уровня безопасности для онлайн-кредитных и дебетовых карт. Название 3DS происходит от «3 Domains» (три домена), так как в проверке платежа по данному протоколу участвуют организации на трех доменах:
Домен эмитента (пользователь и банк-эмитент),
Домен эквайера (банк-эквайер и ТСП),
Домен взаимодействия (МПС).
Существует две версии протокола 3D‑Secure — 3DS 1.0 и более современный и внедряемый сейчас банками-эмитентами 3DS 2.0. Переход на использование версии 2.0 осуществляется постепенно, так как часть эмитентов еще не поддерживает 3DS 2.0. При невозможности проведения аутентификации по новому протоколу аутентификация выполняется по 3DS 1.0.
Принципиальное отличие новой версии протокола состоит:
в возможности осуществить аутентификацию без непосредственного участия пользователя (frictionless flow),
в использовании 3DS Method для проведения аутентификации с проверкой держателя карты. В этом случае эмитент получает доступ к скрытому iframe в браузере пользователя и самостоятельно производит сбор данных о браузере, требуемых для аутентификации.
При поступлении запроса на проведение платежа или сохранение карты, для дальнейшего выполнения операции Payler на своей стороне выполняет проверку вовлеченности карты в 3D-Secure и определение поддерживаемой версии протокола.
3DS 1.0
Краткий сценарий аутентификации по версии 3DS 1.0 (3DS 1.0 Flow):
Держатель карты совершает оплату на сайте ТСП, вводит данные карты и направляется на страницу банка-эмитента, для ввода уникального кода. Код отправляется пользователю банком-эмитентом по другому каналу (например, в sms). Если код введен правильно, банк-эмитент сообщает об успешном завершении проверки и операция успешно завершается.
3DS 2.0
3DS 2.0 позволяет эмитенту использовать несколько режимов проверки подлинности клиента, в том числе с вводом одноразового кода, отправляемого эмитентом в sms. Но в отличие от версии 3DS 1.0 ввод пароля не является обязательным. Решение о подтверждении операции принимается на основании данных об устройстве, с которого совершается платеж, настроек браузера, IP-адреса, e-mail и др. Эмитент карты использует эту информацию для оценки уровня риска и необходимости выполнения дополнительной проверки пользователя. В зависимости от результатов анализа степени риска эмитент принимает решение о дальнейшем проведении аутентификации:
Frictionless flow — если риск мошенничества ниже заданного порогового значения, то эмитент не запрашивает дополнительную проверку плательщика и считает, что проверка подлинности владельца карты пройдена. В этом случае этап «ручной проверки» с вводом плательщиком дополнительного кода исключается.
Challenge flow — если риск мошенничества выше заданного порогового значения, выполняется дополнительная проверка держателя карты аналогично 3DS 1.0.
Сценарии проведения операций с 3DS


В настоящий момент поддерживается 3D-Secure version 2.2.0.
Платежи Apple Pay
Описание ниже относится к предоставлению услуги оплаты с помощью Apple Pay в мобильном приложении или на веб сайте мерчанта. Для проведения платежа с использованием Apple Pay через платежную форму Payler никаких дополнительных действий по интеграции не требуется; для включения этого способа оплаты достаточно связаться со службой технической поддержки Payler.
Прием платежей в мобильных приложениях
Регистрация мерчанта
Для использования технологии Apple Pay мерчанту необходимо зарегистрировать Merchant ID и сформировать платежный сертификат:
Payler создает CSR и отправляет его мерчанту.
Мерчант загружает сертификат в свой аккаунт разработчика Apple, как описано в документации Apple.
Мерчант передает в Payler полученный сертификат и Merchant ID.
Проведение оплаты
Схема оплаты включает 3 этапа:
Проверку совместимости устройства — если устройство поддерживается, то нужно показать покупателю кнопку Apple Pay.
Подтверждение платежа — подтверждение покупателем оплаты отпечатком пальца.
Обработку платежа — после подтверждения Apple формирует зашифрованный токен, который необходимо передать в API Payler. Для этого требуется:
вызвать метод StartSession для инициализации сессии платежа.
после подтверждения платежа пользователем параметр paymentData из объекта PKPaymentToken передать в Payler с помощью метода ApplePay; в ответ придет информация о статусе платежа.
вызвать в приложении completion, передав в него статус платежа.
Интеграция ApplePay в мобильных приложениях описана в документации Apple.
Прием платежей на сайте мерчанта
Страница с кнопкой Apple Pay должна отдаваться с через HTTPS с использованием валидного SSL‑сертификата и протокола TLS 1.2.
Необходимо:
Получить от Payler файл apple-developer-merchantid-domain-association,
Разместить полученный файл на сервере мерчанта по адресу: https://адрес.сайта/.well-known/apple-developer-merchantid-domain-association.
Проведение оплаты
Схема оплаты включает 4 этапа:
Проверку совместимости устройства — если устройство поддерживается, нужно показать покупателю кнопку Apple Pay.
Валидацию мерчанта — необходимо выполнить запрос AppleValidateMerchant для валидации мерчанта в Apple.
Подтверждение платежа — подтверждение покупателем оплаты отпечатком пальца.
Обработку платежа — после подтверждение Apple формирует зашифрованный токен, который необходимо передать в API Payler c использованием метода ApplePay.
Отображение кнопки ApplePay
Пример CSS и HTML для добавления кнопки Apple Pay на странице приведен в документации Apple. Изначально кнопка Apple Pay должна быть невидима (display: none), a отображаться, только если есть возможность оплатить с помощью Apple Pay с данного устройства.
Обработка оплаты в JavaScript
Сначала требуется проверить возможность оплаты через Apple Pay на данном устройстве:
var promise = ApplePaySession.canMakePaymentsWithActiveCard(merchantIdentifier);
promise.then(function (canMakePayments) {
if (canMakePayments) {
// если возможно — отобразить кнопку
document.getElementById("apple-pay-button").style.display = "block";
}
});
При нажатии на кнопку создать сессию на оплату:
document.getElementById("apple-pay-button").onclick = function(evt) {
var paymentRequest = {
currencyCode: 'RUB',
countryCode: 'RU',
total: {
label: 'Описание продукта',
amount: 100.00 // цена в рублях
},
supportedNetworks: ['masterCard', 'visa', 'mir'],
merchantCapabilities: [ 'supports3DS', 'supportsCredit', 'supportsDebit']
};
var session = new ApplePaySession(2, paymentRequest);
Далее необходимо добавить обработчики событий в объект session: Валидация мерчанта:
session.onvalidatemerchant = function (event) {
// Нужно отправить event.validationURL на свой сервер, откуда вызвать
// метод Payler AppleValidateMerchant, а полученный ответ передать в
// метод session.completeMerchantValidation
session.completeMerchantValidation(JSON.parse(response.validation_object));
}
Обработка платежа:
session.onpaymentauthorized = function (event) {
// необходимо отправить event.payment.token.paymentData на свой сервер, откуда
// вызвать метод Payler StartSession, а затем ApplePay.
// Результат проведения платежа нужно вернуть обратно на клиент.
// Если платёж успешен, вызываем:
session.completePayment(ApplePaySession.STATUS_SUCCESS);
// Если платёж неуспешен, вызываем:
session.completePayment(ApplePaySession.STATUS_FAILURE);
}
Отображение формы Apple Pay:
session.begin();Более подробно методы и события ApplePaySession описаны в документации Apple.
Платежи GooglePay
Описание ниже относится к предоставлению услуги оплаты с помощью Google Pay в мобильном приложении или на веб‑сайте мерчанта. Для проведения платежа с использованием Google Pay через платежную форму Payler никаких дополнительных действий по интеграции не требуется; для включения этого способа оплаты достаточно связаться со службой технической поддержки Payler.
В случае использования Google Pay мерчант обязан соблюдать положения следующих правил: https://payments.developers.google.com/terms/sellertos
Документация к API: https://developers.google.com/pay/api/web
Правила использования бренда: https://developers.google.com/pay/api/web/guides/brand-guidelines
Контрольный список интеграции: https://developers.google.com/pay/api/web/guides/test-and-deploy/integration-checklist
Мерчант может самостоятельно выбрать типы карт (методов аутентификации), по которым возможна оплата в Google Pay.
Доступны два метода аутентификации:
CRYPTOGRAM 3DS — для токенизированных карт, данные которых хранятся в виде токенов на устройстве клиента и доступных только на том устройстве, на котором карта была добавлена в приложение Google Pay.
PAN ONLY — для нетокенизированных карт, данные которых хранятся в аккаунте Google и доступных на любом устройстве клиента.
Тип аутентификации указывается в настройках при интеграции с Google Pay в свойстве allowedAuthMethods.
Внимание
Метод PAN ONLY доступен не для всех мерчантов. Возможность подключения метода необходимо уточнять индивидуально
Прием платежей в мобильных приложениях
Настройка Google Pay API
В файле PaymentsUtil.java должен быть установлен тип токенизации “PAYMENT_GATEWAY”.
Проведение платежа
Вызвать метод StartSession для инициализации сессии платежа.
В обработчике нажатия кнопки Google Pay в случае успеха вызывать метод GooglePay, передав:
session_id из ответа StartSession,
строку "tokenizationData.token" из полученного от Google объекта PaymentData (google_pay_token),
почтовый адрес покупателя (email).
Пример токена:
{
"signature": "MEYCIQCkSQPbDN5lKh1Y+l6W3A5fdW3Patf0hoBrXmTudQZSSQIhAMX8G54mswpbw07t1adHhNfZAkWUvQ6YyQP8Zzhc68pR",
"intermediateSigningKey": {
"signedKey": "{\"keyValue\":\"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEzHwfz1Vq1ZIf9fiZVyBI33CnXRwBP2hJ1CYvzx5x6adfBXfYv0krbQU1bEv9DNKwStIlRKhzQhIdeJZBGFl96w\\u003d\\u003d\",\"keyExpiration\":\"1551450347229\"}",
"signatures": [
"MEYCIQC6Cws1WByrGnoijw0MWcjvq16aYCL+JH/+5Y3DAMbJiwIhAL6+RWUJo+j9cqaP71UsZs18GPVU0kq/CLOB0Qb8rBgr"
]
},
"protocolVersion": "ECv2",
"signedMessage": "{\"encryptedMessage\":\"WBGMAnIuhwyGROX6c4q/Ux6Gupm/US2FVnq7wKZEp7C6E5OkiHqv/2vd+PW4/XVY1VlKhh+POt6RY66Q3OX/Q2apalv+4OCxWJhlsP4sZ0NZCCiJEfWY5P9ayjNbzJJnoJerfwykn2cDItHHjerHtNObMUkqCFkW7Yj0X5uZTfx1Alr2k4knLWtMrlfHuh9RHiAei/pcppWerYmNPrLzU615ypqinwtifq+iVldnz2oYJpDzQyZukFU51Xu5BQhzHUtqly9Y1Lt1hCfCeLY4fqrz/V10oiXmgeY9gUrJOy6zzSdAq5VsdiZlUJCbspK2lThXG9Hg/ZPQ7o0fxdSnLI3BvkjFLvFtLgDtnk9o8Di9kx2intm/5YJS0RB1wOfjicn5JzwuDiur/RXYMPjhAh0L+ZUts3knWMNlgiVXAuEPwRm5oU/2RiThV3du3BNJSQbybflvSIhH12Pwua1tFLRKzESBnhfrP/OFN52PaazQQ4Jv7PG+tpVuvWEErdifoGuVXQw89vloCYKYBBEdlNG85DSkMYq/hAfmsgFrDrs7spA1Sb26s5oJRomL76x90X8\\u003d\",\"ephemeralPublicKey\":\"BLVkBHOrk1we3aAqbHeMfnL3dfGUmM9MQJ8CJtLwQn6KUnpySSSY0os+PHDbqfIHVVa8jqzgx1gynofubTsqgTA\\u003d\",\"tag\":\"5lc6cXbwEd9obykJ+qbAj+O6fHFwP85LGnihp4//zDg\\u003d\"}"
}Прием платежей на сайте мерчанта
Cайт мерчанта должен работать по HTTPS и поддерживать протокол TLS версии 1.2. Домен сайта необходимо предварительно зарегистрировать и подтвердить в Google, заполнив форму регистрации. После отправки формы представитель Google связывается с мерчантом для консультации по дальнейшим действиям.
Интеграция включает использование серверной и клиентской (javascript) части. На клиенте выполняется проверка совместимости устройства и получение платежных данных, на сервере отправляется запрос на проведение платежа.
Настройки
Пример js кода:
Параметр gateway в скрипте имеет постоянное значение "payler";
Значение параметра gatewayMerchantId мерчант получает от Payler;
Значение параметра merchantId мерчант получает от Google,
Значение параметра merchantName соответствует названию интернет-магазина, указанному при регистрации в Google.
В ответ Google должен вернуть элемент PaymentData, а поле paymentMethodData.tokenizationData.token должно содержать надежно зашифрованный токен Google Pay (строка символов). Пример Google Pay Token:
{
"signature": "MEUCIQDY3wBQyHB4sZcktRoJXKxm+OLcjHzCvdDeGn23oX0kkwIgKznRFZZL+sDMv1b5cuD+YurXMZraYBsr9hbravVY5Ro\u003d",
"protocolVersion": "ECv2",
"signedMessage": "{\"encryptedMessage\":\"cI87tLqzqTGyCFnMMCVWcTHw3xhYIK+CEnuQ74K+nlLpCgOlfpScib9jds4sxDtN6CunCqCSMfd/3yHeeRy6aCx1yyqcT4ey6NueeBznprJpkmVVgI1JHWLQt4hzAXMUAcYASYLOabKP9fUZvHkOBDytD531jpzNXa+Spc/zrpGzFKx2C4VU9sC95q9i+ey+kr7ZMNVCOFJPWXu7lKZ105IOOqozJ6/70MKmxP3jM89eeq+/19QnyHjQLXfnQPvQjiUJKGCcRKDLlrb3XoY5ZUUzGfN5eZCLzCVg0hWEbwU+6J7KWYJyW+Wr1r8bagN9zWsrMKhDpsQbHfyzb+yBzFUoxeUgL4a7FeVvEllIcHtqsvTCf6FENV20aF5VLDv5qzUkV+PzTAIbFEuabA0God9UbVCVVv7nM8QFzvRPhzYYFVFTn4JHvL2qZ4pAR9lE+w\\u003d\\u003d\",\"ephemeralPublicKey\":\"BPHLC4sBHpenY1M0ixmiDMuWJTaTJOqggRUwtgBJMcBp28VsxHD7zPI7985x4F5EjMP5y8j/cuUzbe/cGPjOKGk\\u003d\",\"tag\":\"RaXrPOUuc5iw3oxDa0C2MOjaKxgxIRQvwOspmtFV0zU\\u003d\"}"
}Проведение платежа
Процедура аналогична проведению платежа при совершении оплаты из мобильного приложения (см. выше).
Last updated