Каскадное проведение платежей

Общая информация

По различным причинам проведение платежей может прерываться. Например, на стороне провайдеров или банков причинами могут служить технические сбои, задержки в обработке платежа или же достижение лимитов, заданных для пользователя на стороне какого-либо провайдера.

Для таких случаев в платформе Rocketpay поддерживается возможность каскадного проведения платежей. Каскадное проведение включает в себя последовательные дополнительные попытки проведения платежа через резервных провайдеров.Эта возможность доступна только для разовых оплат в одну или две стадии как с поддержкой, так и без поддержки протокола 3‑D Secure.

Для поддержки такой возможности на стороне веб-сервиса требуются доработки для реализации стандартного проведении разовых оплат. Подробная информация о настройке веб-сервиса и схеме взаимодействия с платежной платформой представлена далее.

Подключение и настройка

Чтобы подключить каскадное проведение платежей и настроить взаимодействие с платежной платформой, со стороны мерчанта необходимо:

  1. Решить организационные вопросы, согласовав с курирующим менеджером Rocketpay подключение этой возможности и необходимые доработки веб-сервиса.
  2. Доработать веб-сервис для использования каскадного проведения платежей.
    • Дополнить платежный интерфейс новыми элементами взаимодействия с пользователем.

      При проведении повторной аутентификации 3‑D Secure рекомендуется уведомлять пользователя об отказе в проведении текущей попытки оплаты и получать согласие пользователя на повторную аутентификацию с использованием данных карты, введенных при проведении исходной попытки. Для этого можно использовать уведомление и кнопку. Также при исчерпанном лимите на дополнительные попытки рекомендуется предложить пользователю вернуться в веб-сервис и начать оплату заново с новым идентификатором платежа (payment_id).

    • Поддержать неоднократную аутентификацию 3‑D Secure без внесения изменений в данные карты, введенные при выполнении первой попытки.

      Для этого требуется принимать от платежной платформы промежуточные оповещения с данными для перенаправления пользователя при каждом проведении повторной аутентификации. Затем с согласия пользователя необходимо повторно выполнить перенаправление на страницу аутентификации без внесения изменений в данные, введенные ранее.

  3. Отладить и протестировать возможность каскадного проведения оплат совместно с сотрудниками технической поддержки Rocketpay.

Схема проведения

Каскадное проведение платежа начинается стандартно: от веб-сервиса к платежной платформе отправляется запрос на оплату. Далее при необходимости выполняется аутентификация пользователя по протоколу 3‑D Secure. Если эта попытка завершается списанием средств, то от платежной платформы к веб-сервису отправляется оповещение (callback) с итоговым статусом платежа — success, а иначе продолжается каскадное проведение платежа.

Далее, пока ни одна из выполненных попыток не привела к успешному списанию и дополнительные попытки еще не исчерпаны, на стороне платежной платформы инициируется выполнение новой попытки списать средства. Если в рамках дополнительной попытки не требуется аутентификация 3‑D Secure, то она выполняется без взаимодействия с пользователем и веб-сервисом. Если требуется аутентификация, то от платежной платформы к веб-сервису отправляется оповещение с данными для перенаправления пользователя, и затем с согласия пользователя продолжается выполнение этой оплаты с повторной аутентификацией. Статусу платежа присваивается одно из промежуточных значений awaiting_3ds_result, awaiting_redirect_result или processing).

Каскадное проведение платежа заканчивается стандартно: от платежной платформы к веб-сервису отправляется оповещение с одним из итоговых статусов платежа: success, если одна из выполненных попыток привела к списанию средств, или decline, если ни одна из выполненных попыток не привела к списанию и лимит на дополнительные попытки исчерпан.

Далее представлена схема каскадного проведения оплаты в контексте оплаты в одну стадию с возможной аутентификацией 3‑D Secure 1.

Рис.: Каскадное проведение оплаты с поддержкой 3‑D Secure 1

  1. От платежной платформы к провайдеру передается запрос на проведение платежа.
  2. На стороне провайдера выявляется необходимость в аутентификации пользователя. Если требуется аутентификация, то к платформе отправляются данные для перенаправления пользователя, а иначе отправляется запрос к эмитенту на проведение платежа.
  3. Платежная платформа направляет в веб-сервис оповещение с данными для перенаправления пользователя.
  4. Осуществляется взаимодействие с пользователем:
    • Если аутентификация первичная, то выполняется перенаправление пользователя на страницу аутентификации (ACS URL) эмитента.
    • Если аутентификация повторная, то рекомендуется сначала отобразить пользователю ранее введенные данные карты, сообщение об ошибке и предложение повторить попытку оплаты, и далее с согласия пользователя выполнить перенаправление на страницу аутентификации (ACS URL) эмитента.
  5. Пользователю отображается страница аутентификации, и он осуществляет требуемые действия.
  6. На стороне эмитента выполняется аутентификация пользователя.
  7. Выполняется перенаправление пользователя в веб-сервис с передачей данных о результате аутентификации.
  8. Пользователю отображается страница ожидания в платежном интерфейсе веб-сервиса.
  9. От веб-сервиса на заданный URL Rocketpay передается запрос на продолжение проведения платежа с учетом результата аутентификации.
  10. Запрос на продолжение проведения платежа поступает в платежную платформу.
  11. В платежной платформе выполняется прием запроса с проверкой его корректности.
  12. Платежная платформа направляет в веб-сервис ответ с информацией о получении запроса и его корректности.
  13. От платежной платформы к провайдеру отправляется запрос на проведение платежа.
  14. На стороне провайдера осуществляется обработка запроса на проведение платежа. В результате от сервиса провайдера либо к платформе отправляется уведомление об отказе, и на стороне платформы инициируется дополнительная попытка, либо к эмитенту отправляется запрос на проведение оплаты, и продолжается стандартное проведение платежа.

Оповещение (callback)

При каскадном проведении оплат с применением платежных карт используются итоговые оповещения стандартной структуры, описание которой представлено в разделе Оповещения (callbacks) в Gate, и промежуточные оповещения для перенаправления пользователя на страницу аутентификации. Описание структуры таких оповещений представлено в разделе 3-D Secure 1 и в разделе Аутентификация по протоколу 3‑D Secure 2.

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

  • true — в одной из предыдущих попыток выполнялась аутентификация 3‑D Secure. Требуется получить подтверждение пользователя на дополнительную попытку проведения оплаты;
  • false — ни в одной из предыдущих попыток не выполнялась аутентификация 3‑D Secure. Получение подтверждения пользователя на дополнительную попытку не требуется.
Прим.: По вопросам подключения параметра cascading_with_redirect обращайтесь к своему курирующему менеджеру Rocketpay.

Причина отказа в выполнении попытки проведения оплаты может быть указана в параметре 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=="
    }