Перейти к содержанию

Решение об успешности операции

Для принятия решения об успешности операции (например, авторизации или подтверждения платежа) партнёру нужно:

  • дождаться уведомления от 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 приёма платежей.

Упомянутые на диаграмме сценарии см. в статьях: