Оплата Яндекс Пэй и Яндекс Сплит через редирект

Платежный сервис Router поддерживает оплату Яндекс Пэй и Яндекс Сплит с платежной страницы.

Оплата с помощью Яндекс Пэй всегда производится в Яндекс Банк. Банк должен быть указан в настройках партнера в Платежном сервисе (тот же, что для Яндекс Пей). Текущие настройки можно узнать, отправив запрос /settings/getRouterParams.do.

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

Схема интеграции

Включение способа оплаты Яндекс Пэй и Сплит на платежной странице

  1. Клиент инициирует покупку товара или услуги на сайте Партнера.

  2. Партнер отправляет в Платежный сервис Router запрос на регистрацию заказа:

    Для того чтобы на платежной странице появилась кнопка для оплаты Яндекс Пэй и Яндекс Сплит, при регистрации заказа в параметре allowedPaymentWays среди прочих способов оплаты должен быть добавлен способ оплаты YANDEX_PAYBOX.

    Особенности запроса регистрации заказа:

    • При регистрации заказа Партнер может указать, какие способы оплаты Яндекс Пэй будут доступны Клиенту: только карта, только Сплит или оба способа. Для этого передается дополнительный параметр yandex_paymentWay. По умолчанию, если параметр не передан, доступна только оплата картой (CARD). Доступность тех или иных способов оплаты Яндекс Пэй Партнер должен согласовать с сервисом Яндекс Пэй.
    • При регистрации заказа на оплату обязательно нужно передать корзину товаров — объект orderBundle. Если корзина не передана, но есть clientId, то запрос будет обработан как создание связки, см. Создание связки с Яндекс Пэй.

    Пример запроса:

    curl -X POST 'https://api.router.rbsuat.com/v2/register.do' -H 'Content-Type: application/json' \
    --data-raw '{
        "allowedPaymentWays": [
            "YANDEX_PAYBOX",
            "CARD_BINDING",
            "CARD"
        ],
        "jsonParams": {
            "yandex_paymentWay": "CARD, SPLIT"
        },
        "orderNumber": "order_123508",
        "amount": 10000,
        "currency": "643",
        "language": "ru",
        "returnUrl": "https://mybestmerchantreturnurl.com/success",
        "failUrl": "https://mybestmerchantreturnurl.com/fail",
        "userName": "test_user",
        "password": "test_user_password",
        "orderBundle": {
            "cartItems": {
                "items": [
                    {
                        "itemAmount": 10000,
                        "itemCode": "123code",
                        "itemCurrency": "643",
                        "itemPrice": 10000,
                        "name": "item 1",
                        "positionId": "1",
                        "quantity": {
                            "measure": "pcs",
                            "value": "1"
                        }
                    }
                ]
            }
        }
    }'
    curl -X POST 'https://api.router.rbsuat.com/v1/register.do' -H 'Content-Type: application/json' \
    --data-raw '{
        "allowedPaymentWays": [
            "YANDEX_PAYBOX",
            "CARD_BINDING",
            "CARD"
        ],
        "jsonParams": {
            "yandex_paymentWay": "CARD, SPLIT"
        },
        "orderNumber": "order_123508",
        "amount": 10000,
        "currency": "643",
        "language": "ru",
        "returnUrl": "https://mybestmerchantreturnurl.com/success",
        "failUrl": "https://mybestmerchantreturnurl.com/fail",
        "userName": "test_user",
        "password": "test_user_password",
        "orderBundle": {
            "cartItems": {
                "items": [
                    {
                        "itemAmount": 10000,
                        "itemCode": "123code",
                        "itemCurrency": "643",
                        "itemPrice": 10000,
                        "name": "item 1",
                        "positionId": "1",
                        "quantity": {
                            "measure": "pcs",
                            "value": "1"
                        }
                    }
                ]
            }
        }
    }'
  3. Платежный сервис Router проверяет данные Партнера и регистрирует заказ.

Перенаправление на платежную страницу

4. Платежный сервис Router передает Партнеру ссылку на платежную страницу в параметре formUrl.

Пример ответа:

{
    "errorCode": "0",
    "formUrl": "https://router.rbsuat.com/wl/payment.html?mdOrder=f9584546-2613-4a0d-896f-0194d243865f&language=ru",
    "orderId": "f9584546-2613-4a0d-896f-0194d243865f",
    "orderNumber": "order_123508"
}

5. Партнер перенаправляет Клиента на платежную страницу.

Выбор и оплата Яндекс Пей или Сплит

6. Клиент переходит на платежную страницу Платежного сервиса. На платежной странице может быть доступно несколько способов оплаты.

7. Клиент выбирает платежный инструмент Яндекс Пэй.

8-12. Платежный сервис Router запрашивает URL страницы оплаты и перенаправляет клиента на страницу оплаты Яндекс Пэй.

13. Клиент оплачивает заказ на странице Яндекс Пэй любым из доступных способов (карта или Сплит).

14. Сервис Яндекс Пэй перенаправляет Клиента на URL для возврата.

15. Сервис Яндекс Пэй сообщает банку результат оплаты.

Финальный статус заказа

16. (Опция) Если настроены уведомления обратного вызова (callback), Банк сообщает Партнеру результат оплаты.

17. (Опция) Если callback не настроен, Партнер периодически отправляет в Платежный сервис Router запрос для получения финального статуса заказа getOrderStatusExtended.do, используя query-параметр orderId. До тех пор, пока результат оплаты не станет известен, статус заказа будет PENDING.

18-21. Платежный сервис Router запрашивает в Банке и передает Партнеру статус заказа. Когда статус изменится, Партнер отображает его на финальной странице.

Категории:
routerAPI V1
Beta
Категории
Результаты поиска