Создание платежа по карте

Мы работаем только через POST-запросы

  • Пользователь оформляет заказ. Заказ выгружается в систему клиента через webhook. Заказу присваивается номер.

  • Пользователь видит экран подтверждения заказа. Пользователь нажимает кнопку "перейти к оплате"

  • IMSHOP.IO делает запрос в webhook управления оплатами на создание платежа. В ответ должны быть переданы:

    • Идентификатор платежа из платежного шлюза

    • URL для перенаправления пользователя для ввода данных карты (это должен быть URL, выданный платежной системой, а не URL ведущий на сайт)

    • Регулярное выражение для определения success / failure сценариев по URL, на который платежная система перенаправит пользователя

  • В мобильном приложении отображается экран оплаты с вводом карты для оплаты

  • Пользователь вводит данные карты / код 3dsec из смс

  • Приложение определяет при помощи регулярного выражения, что сценарий оплаты отработал до конца

  • IMSHOP.IO делает запрос в webhook управления оплатами на проверку статуса оплаты

  • Система клиента связывается с платежной системой и проверяет оплату. Далее, если оплата не прошла, webhook должен вернуть ошибку. Если платеж успешно принят, система клиента инициирует списывание средств, и возвращает через webhook, что платеж прошел успешно.

  • IMSHOP.IO помечает заказ как оплаченный

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

{
    "command": "create",
    "paymentMethodId": "sberbank/card",
    "orderUuid": "cbc85e53-8067-4f13-a708-11d9aea71bf3",
    "orderId": "12345",
    "returnUrl": "imshop://payment/failed"
}

Описание запроса

  • command - запрос на создание оплаты (create)

  • paymentMethodId - выбранный покупателем способ оплаты. Берется из ответа webhook получения способов оплат

  • orderUuid - внутренний номер заказа в IMSHOP.IO

  • orderId - внешний номер заказа в системе клиента

  • returnUrl - ссылка на возврат в приложение в случае отмены оплаты

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

{
    "success": true,
    "paymentId": "7d0567f9-bf37-4e84-9580-86b68b8a0e81",
    "paymentUrl": "https://kassa.yandex.ru/payment/xxxxxxxxxxxxxxx",
    "successRegex": "payment/(.+)/success",
    "failureRegex": "payment/(.+)/failed"
}

Описание ответа

  • success - флаг успеха true / false

  • paymentId - идентификатор платежа

  • paymentUrl - URL для оплаты мы также поддерживаем передачу нескольких платежных ссылок для случаев, когда оплата производится через приложение банка и необходимо выбрать ссылку в зависимости от установленного приложения. в этом случае список поле необходимо назвать paymentUrls и передать в нем список URL

  • successRegex - регулярное выражение для проверки редиректа на успех

  • failureRegex - регулярное выражение для проверки редиректа при не принятой карте

Пример ответа для нескольких ссылок оплаты (в разработке)

{
    "success": true,
    "paymentId": "7d0567f9-bf37-4e84-9580-86b68b8a0e81",
    "paymentUrls": [
        "sberpay://xxxxxxxxx",
        "sbolpay://xxxxxxxxx"
    ],
    "successRegex": "payment/(.+)/success",
    "failureRegex": "payment/(.+)/failed"
}

После закрытия экрана эквайринга уйдет запрос на проверку статуса платежа

Проверка статуса оплаты

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

{
    "command": "capture",
    "paymentMethodId": "sberbank/card",
    "paymentId": "7d0567f9-bf37-4e84-9580-86b68b8a0e81"
}
  • command - запрос на проведение платежа и проверку факта списания (capture)

  • paymentMethodId - выбранный покупателем способ оплаты. Берется из ответа webhook получения способов оплат

  • paymentId - Идентификатор платежа

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

{
    "success": true,
    "paymentId": "7d0567f9-bf37-4e84-9580-86b68b8a0e81",
    "paymentCaptured": true
}
  • success - флаг успеха true / false

  • paymentId - идентификатор платежа

  • pending - true-запрашиваем повторную проверку оплат/ false- не запрашиваем проверку оплаты

  • paymentCaptured - деньги успешно списаны

  • error - текст ошибки если success = false

Last updated