Каскадное проведение платежей
Оплата с прямым использованием карт
Общая информация
По различным причинам проведение платежей может прерываться. Например, на стороне провайдеров или банков причинами могут служить технические сбои, задержки в обработке платежа или же достижение лимитов, заданных для пользователя на стороне какого-либо провайдера.
Для таких случаев в платформе FlagmanPay поддерживается возможность каскадного проведения платежей. Каскадное проведение включает в себя последовательные дополнительные попытки проведения платежа через резервных провайдеров без изменения платежного метода.При работе с прямым использованием карт эта возможность доступна только для разовых оплат в одну или две стадии как с поддержкой, так и без поддержки протокола 3‑D Secure.
При работе с прямым использованием карт допускается только однократное списание средств, поэтому инициирование дополнительных попыток осуществляется на стороне платежной платформы.
Для поддержки такой возможности на стороне веб-сервиса требуются доработки для реализации стандартного проведении разовых оплат. Подробная информация о настройке веб-сервиса и схеме взаимодействия с платежной платформой представлена далее.
Подключение и настройка
Чтобы подключить каскадное проведение платежей и настроить взаимодействие с платежной платформой, со стороны мерчанта необходимо:
- Решить организационные вопросы, согласовав с курирующим менеджером FlagmanPay подключение этой возможности и необходимые доработки веб-сервиса.
- Доработать веб-сервис для использования каскадного проведения платежей.
- Дополнить платежный интерфейс новыми элементами взаимодействия с пользователем.
При проведении повторной аутентификации 3‑D Secure рекомендуется уведомлять пользователя об отказе в проведении текущей попытки оплаты и получать согласие пользователя на повторную аутентификацию с использованием данных карты, введенных при проведении исходной попытки. Для этого можно использовать уведомление и кнопку. Также при исчерпанном лимите на дополнительные попытки рекомендуется предложить пользователю вернуться в веб-сервис и начать оплату заново с новым идентификатором платежа (
payment_id). - Поддержать неоднократную аутентификацию 3‑D Secure без внесения изменений в данные карты, введенные при выполнении первой попытки.
Для этого требуется принимать от платежной платформы промежуточные оповещения с данными для перенаправления пользователя при каждом проведении повторной аутентификации. Затем с согласия пользователя необходимо повторно выполнить перенаправление на страницу аутентификации без внесения изменений в данные, введенные ранее.
- Дополнить платежный интерфейс новыми элементами взаимодействия с пользователем.
- Отладить и протестировать возможность каскадного проведения оплат совместно с сотрудниками технической поддержки FlagmanPay.
Схема проведения
Каскадное проведение платежа начинается стандартно: от веб-сервиса к платежной платформе отправляется запрос на оплату. Далее при необходимости выполняется аутентификация пользователя по протоколу 3‑D Secure. Если эта попытка завершается списанием средств, то от платежной платформы к веб-сервису отправляется оповещение (callback) с итоговым статусом платежа — success, а иначе продолжается каскадное проведение платежа.
Далее, пока ни одна из выполненных попыток не привела к успешному списанию и дополнительные попытки еще не исчерпаны, на стороне платежной платформы инициируется выполнение новой попытки списать средства. Если в рамках дополнительной попытки не требуется аутентификация 3‑D Secure, то она выполняется без взаимодействия с пользователем и веб-сервисом. Если требуется аутентификация, то от платежной платформы к веб-сервису отправляется оповещение с данными для перенаправления пользователя, и затем с согласия пользователя продолжается выполнение этой оплаты с повторной аутентификацией. Статусу платежа присваивается одно из промежуточных значений awaiting_3ds_result, awaiting_redirect_result или processing).
Каскадное проведение платежа заканчивается стандартно: от платежной платформы к веб-сервису отправляется оповещение с одним из итоговых статусов платежа: success, если одна из выполненных попыток привела к списанию средств, или decline, если ни одна из выполненных попыток не привела к списанию и лимит на дополнительные попытки исчерпан.
Далее представлена схема каскадного проведения оплаты в контексте оплаты в одну стадию с возможной аутентификацией 3‑D Secure 1.
* В качестве провайдера может выступать FlagmanPay.
- Платежная платформа направляет в сервис провайдера запрос на проведение платежа.
- Сервис провайдера проверяет необходимость аутентификации пользователя. Если требуется аутентификация, то сервис провайдера направляет к платежной платформе оповещение с данными для перенаправления пользователя. Если аутентификация не требуется, игнорируйте шаги 3‒10 и переходите сразу к шагу 11.
- Платежная платформа направляет вашей системе оповещение с данными для перенаправления пользователя.
- Если это первичная аутентификация, переходите к шагу 5. Если это повторная аутентификация:
- ваша система отображает пользователю ранее введенные данные карты, сообщение об ошибке и предложение повторить попытку оплаты;
- пользователь соглашается на повторную попытку.
- Пользователь перенаправляется на страницу аутентификации (ACS URL) эмитента.
- Пользователь переходит на страницу аутентификации и выполняет необходимые действия.
- Эмитент выполняет аутентификацию и перенаправляет пользователя в вашу систему с передачей данных о результате аутентификации.
- Ваша система передает платежной платформе запрос на продолжение проведения платежа с учетом результата аутентификации.
- Платежная платформа отправляет вашей системе ответ с информацией о получении запроса и о результате проверки его корректности.
- Платежная платформа передает в сервис провайдера запрос на продолжение проведения платежа.
- Сервис провайдера обрабатывает запрос и осуществляет одно из следующих действий:
- если платеж отклоняется, сервис провайдера отправляет платежной платформе уведомление об отказе, после чего платежная платформа инициирует повторную попытку провести платеж;
- сервис провайдера отправляет запрос на проведение оплаты эмитенту, после чего платеж проводится как обычно.
Оповещение (callback)
При каскадном проведении оплат с применением платежных карт используются итоговые оповещения стандартной структуры, описание которой представлено в разделе Оповещения (callbacks) в Gate, и промежуточные оповещения для перенаправления пользователя на страницу аутентификации. Описание структуры таких оповещений представлено в разделе 3-D Secure 1.
Структуру оповещений можно настроить так, чтобы они содержали параметр cascading_with_redirect с одним из следующих значений:
true— в одной из предыдущих попыток выполнялась аутентификация 3‑D Secure. Требуется получить подтверждение пользователя на дополнительную попытку проведения оплаты;false— ни в одной из предыдущих попыток не выполнялась аутентификация 3‑D Secure. Получение подтверждения пользователя на дополнительную попытку не требуется.
cascading_with_redirect обращайтесь к своему курирующему менеджеру FlagmanPay.Причина отказа в выполнении попытки проведения оплаты может быть указана в параметре message объекта operations.
Далее представлен пример набора данных в оповещении для случая, когда на стороне веб-сервиса не требуется получать согласие пользователя на дополнительную попытку проведения оплаты.
{
"payment": {
"date": "2020-03-28T09:28:54+0000",
"operation_fee": {
"amount": 0,
"currency": "USD"
},
"type": "purchase",
"sum": {
"amount": 2000,
"currency": "USD"
},
"status": "awaiting 3ds result",
"cascading_with_redirect": false,
"method": "card",
"id": "1115888716",
"description": ""
},
"customer": {
"id": "11158745"
},
"account": {
"number": "402691******0696",
"type": "visa",
"card_holder": "Jane Doe",
"expiry_month": "11",
"expiry_year": "2025"
},
"project_id": 18616,
"operation": {
"id": 50454000052091,
"type": "sale",
"status": "awaiting 3ds result",
"date": "2020-03-28T09:28:54+0000",
"created_date": "2020-03-28T09:28:53+0000",
"request_id": "af5e3a32bf6f8742c9are9",
"sum_initial": {
"amount": 2000,
"currency": "USD"
},
"sum_converted": {
"amount": 2000,
"currency": "USD"
},
"code": "9999",
"message": "Awaiting processing",
"eci": "07",
"provider": {
"id": 4164,
"payment_id": "",
"endpoint_id": 4184
}
},
"card_type": "Visa Gold",
"acs": {
"pa_req": "eJxVUd85...W6ip/iPo2E=",
"acs_url": "https://acs.bank.com/pareq",
"md": "eyZjUtODg...IjoiIn0="
},
"signature": "T1e+AOko05D...KupPd7TA=="
}