Решение об успешности операции¶
Для принятия решения об успешности операции (например, авторизации или подтверждения платежа) партнёру нужно:
- дождаться уведомления от QIWI;
- выполнить запрос статуса операции к QIWI.
Для понимания статуса операции рекомендуется основываться на значении поля status
в ответе на запрос статуса соответствующей операции. Это позволит устранить риски, связанные с получением ложных уведомлений: риски компрометации данных в случае утечки «секрета», который используется при вычислении цифровой подписи уведомления.
Запрос статуса операции рекомендуется выполнять после получения уведомления.
Обратите внимание
Если уведомление не поступило в течение 10 минут с момента совершения операции, необходимо выполнить запрос статуса.
Последовательность действий для принятия решения об успешности операции на примере оплаты с формы QIWI изображена ниже. В примере оплата выполняется по одношаговому сценарию.
%%{init: {
"sequence" : {
"wrap":true,
"messageFontSize":15,
"noteFontSize":14,
"actorMargin":
110 }}}%%
sequenceDiagram
participant С as Клиент
participant P as Партнёр
participant B as QIWI
С->>P: Оплата с формы QIWI
Note right of С: «Оплатить»
P->>+B: Сценарий «Оплата с формы QIWI с помощью API»
Note right of P: billId, flags:[SALE]
B->>-P:
Note left of B: Направление на `successUrl`
rect rgb(255, 238, 223)
B->>+P: Сценарий «Получение уведомления»
P-->>-B:
Note left of B: billId, paymentId, status:SUCCESS
end
rect rgb(230, 230, 230)
P->>+B: Запрос статуса счёта
Note right of P: billId
B-->>-P: Ответ на запрос статуса
Note left of B: billId, status:PAID, paymentsData
end
P->>С: Коммуникация с клиентом
Элемент диаграммы QIWI — совокупность участников процесса проведения платежа. Запросы описаны в документации API приёма платежей.
Упомянутые на диаграмме сценарии см. в статьях: