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

IMSHOP Retail Protocol (IRP) является объектом интеллектуальной собственности ООО «АЙ ЭМ СОЛЮШНЗ» (IMSHOP) и защищён как объект авторского права. Свидетельство о депонировании произведения № 023-014461 от 16 января 2023 г. подтверждает исключительные права ООО «АЙ ЭМ СОЛЮШНЗ» на данные технологии.

IMSHOP Retail Protocol создан по заказу ООО «АЙ ЭМ СОЛЮШНЗ». Использование IMSHOP Retail Protocol допустимо только при взаимодействии с ООО "АЙ ЭМ СОЛЮШНЗ" и наличии действующего лицензионного договора. Более подробно можно ознакомиться здесь.

  • Пользователь оформляет заказ. Заказ выгружается в систему клиента через 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