1.6. Подключение СБП с использованием формы

Введение

Оплата — вид сделки, при которой Плательщик получает товар или услугу от Присоединяющейся Cтороны в обмен на деньги или другие активы. Данный сценарий позволяет Присоединяющейся Стороне предложить Плательщику оплату через СБП с помощью QR-кода, который будет отображён на форме на стороне Платёжного Шлюза.

Cценарий оплаты через СБП с использованием формы

  @startuml
  skinparam roundcorner 20
  skinparam sequenceArrowThickness 2
  skinparam ParticipantPadding 30
  actor Плательщик as Customer
  participant "Веб-сайт\nПрисоединяющейся Стороны" as Merchant
  participant "Платёжный Шлюз" as g
  autonumber
  Customer -> Merchant: Инициализация
  activate Merchant
  == Запрос на проведение оплаты ==
  Merchant -> g: api/v2/sale-form
  activate g
  g --> Merchant: Redirect-url, orderId
  deactivate g
  Merchant -> Customer: Предоставление redirect-url \nбраузеру Плательщика
  deactivate Merchant
  activate Customer
  Customer -> g: GET redirect-url
  deactivate Customer
  activate g
  g --> Customer: Форма оплаты
  deactivate g
  activate Customer
  Customer -> g: Подтверждение формы
  deactivate Customer
  activate g
  g --> g: Обработка оплаты
  == Финальное перенаправление клиента ==
  g -> Customer: Веб-сайт Присоединяющейся Стороны redirect_url
  activate Customer
  Customer -> Merchant: POST redirect_url\nstatus, orderid
  deactivate Customer
  activate Merchant
  group Получение финального статуса
  == Получение обратного вызова \nПрисоединяющейся Стороны ==
  Merchant <- g: Обратный вызов \nс финальным статусом
  g <-- Merchant: HTTP 200
  deactivate g
  == Запрос статуса ==
  Merchant -> g: api/v2/status
  activate g
  g --> Merchant: Ответ \nstatus, order-stage
  deactivate g
  end
  Merchant --> Customer: Показ результата
  deactivate Merchant
  @enduml

(2) Для имплементации запроса на проведение оплаты с использованием формы см. /api/v2/sale-form/.
(9) Для обработки финального перенаправления Плательщика см. Финальное Перенаправление.
(11,12) Для обработки обратного вызова с окончательным статусом заказа см. Обратный вызов Присоединяющейся Стороны.
(13) Для имплементации запроса статуса заказа см. /api/v2/status/. Статус следует запрашивать несколько раз с интервалом 3–5 секунд, пока не будет получен окончательный статус.