Сценарий оплаты¶
Одношаговый сценарий¶
Пример успешной оплаты с помощью выполнения одношагового сценария описан и изображён ниже. В примере оплата совершается с банковской карты.
Обратите внимание
Все способы оплаты, кроме оплаты с банковской карты, подключаются по запросу: оплата с банковской карты доступна по умолчанию, для подключения остальных способов обратитесь в службу поддержки.
- Клиент выбирает товар или услугу на торговой площадке партнёра, переходит к оплате.
- Партнёр отображает клиенту собственную платёжную форму для ввода реквизитов карты.
- Клиент вводит реквизиты карты и подтверждает оплату.
-
Партнёр отправляет QIWI запрос на создание платежа, в котором передаёт идентификатор платежа, сумму платежа, данные карты и признак одношагового проведения платежа (
flags:[SALE]
).Если не передать
flags:[SALE]
, платёж будет проведён по двушаговому сценарию: средства клиента будут захолдированы после подтверждения им оплаты и списаны только после того, как QIWI получит подтверждение от партнёра. -
QIWI возвращает партнёру статус платежа (
WAITING
— создан, ожидает аутентификации клиента с помощью 3D-Secure), а также данные для аутентификации:pareq
иacsUrl
. - Партнёр использует полученные данные для аутентификации клиента и сообщает QIWI об успешном прохождении аутентификации: см. шаги из статьи «Интернет-эквайринг» → 3D-Secure.
- QIWI с помощью платёжной системы отправляет запрос на авторизацию и подтверждение платежа в банк-эмитент.
- Банк-эмитент резервирует (холдирует) и сразу же списывает денежные средства с карты клиента.
- QIWI фиксирует успешное списание средств и возвращает партнёру статус платежа
COMPLETED
. - Партнёр принимает решение об успешности завершения платежа — выполняет действия, указанные в статье «Общие принципы и правила» → «Решение об успешности операции».
%%{init: {
"sequence" : {
"wrap":true,
"messageFontSize":14,
"noteFontSize":12,
"actorMargin":
60 }}}%%
sequenceDiagram
participant С as Клиент
participant P as Партнёр
participant Q as QIWI
participant B as Банк-эмитент
С->>P: Выбор товара или услуги, оплата
Note right of С: Ввод реквизитов карты
P->>+Q: Запрос на создание платежа
Note right of P: siteId, paymentId, amount, cardData, flags: SALE
Q->>-P: Ответ на запрос создания платежа
Note left of Q: siteId, paymentId, amount, status:WAITING, requirements.threeDS.pareq, requirements.threeDS.acsUrl
rect rgb(230, 230, 230)
Note over С, B: Аутентификация клиента с помощью 3D-Secure
end
Q->>+B: Запрос на авторизацию и подтверждение платежа
Note right of Q: Через платёжную систему
B->>B: HOLD
B->>B: CAPTURE
B->>-Q: Ответ на запрос
Note left of B: ОК
Q->>Q: Завершение платежа
Q->>P: Статус платежа
Note left of Q: status:COMPLETED
rect rgb(255, 238, 223)
Q->>P: Сценарий «Принятие решения об успешности операции»
P->>Q:
end
P->>С: Отображение результата на форме
Note right of С: «Платёж успешен»
Элемент диаграммы QIWI — совокупность участников процесса проведения платежа. Указанные на диаграмме сценарии см. в статьях:
- «3D-Secure»;
- «Общие принципы и правила» → «Решение об успешности операции».
Партнёр получает, обрабатывает и хранит данные карты клиента.
PUT /partner/payin/v1/sites/test-01/payments/1811 HTTP/1.1
Accept: application/json
Authorization: Bearer 5c4b25xx93aa435d9cb8cd17480356f9
Content-type: application/json
Host: b2b-api.qiwi.com
{
"amount": {
"currency": "RUB",
"value": 1.00
},
"paymentMethod" : {
"type" : "CARD",
"pan" : "4444443616621049",
"expiryDate" : "12/19",
"cvv2" : "123",
"holderName" : "unknown cardholder"
},
"flags": [ "SALE" ]
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"paymentId": "1811",
"billId": "autogenerated-a29ea8c9-f9d9-4a60-87c2-c0c4be9affbc",
"createdDateTime": "2019-08-15T13:28:26+03:00",
"amount": {
"currency": "RUB",
"value": 1.00
},
"capturedAmount": {
"currency": "RUB",
"value": 0.00
},
"refundedAmount": {
"currency": "RUB",
"value": 0.00
},
"paymentMethod": {
"type": "CARD",
"maskedPan": "444444******1049",
"rrn": "123",
"authCode": "181218",
"type": "CARD"
},
"status": {
"value": "WAITING",
"changedDateTime": "2019-08-15T13:28:26+03:00"
},
"requirements" : {
"threeDS" : {
"pareq" : "eJyrrgUAAXUA+Q==",
"acsUrl" : "https://test.paymentgate.ru/acs/auth/start.do"
}
}
}
Запрос и ответ приведены в качестве примера: актуальные формат, список и описание параметров см. в документации API приёма платежей.
Примеры запросов для аутентификации клиента см. в статье «3D-Secure».
Двухшаговый сценарий¶
Пример успешной оплаты с помощью выполнения двухшагового сценария описан и изображён ниже. В примере оплата совершается с банковской карты.
Обратите внимание
Двухшаговый сценарий позволяет использовать лишь один способ оплаты — с банковской карты.
- Клиент выбирает товар или услугу на торговой площадке партнёра, переходит к оплате.
- Партнёр отображает клиенту собственную платёжную форму для ввода реквизитов карты.
- Клиент вводит реквизиты карты и подтверждает оплату.
- Партнёр отправляет QIWI запрос на создание платежа, в котором передаёт идентификатор платежа, сумму платежа и данные карты.
- QIWI возвращает партнёру статус платежа (
WAITING
— создан, ожидает аутентификации клиента с помощью 3D-Secure), а также данные для аутентификации:pareq
иacsUrl
. - Партнёр использует полученные данные для аутентификации клиента и сообщает QIWI об успешном прохождении аутентификации: см. шаги из статьи «Интернет-эквайринг» → 3D-Secure.
- QIWI с помощью платёжной системы отправляет запрос на авторизацию платежа в банк-эмитент.
- Банк-эмитент резервирует (холдирует) денежные средства на карте клиента.
- QIWI фиксирует успешное холдирование средств.
- Партнёр выполняет действия, указанные в статье «Общие принципы и правила» → «Решение об успешности операции».
-
Партнёр выполняет необходимые действия перед тем, как получить денежные средства от клиента — списать их с его карты.
Сбор заказа и т.п.
-
Партнёр отправляет QIWI запрос на подтверждение платежа, в котором передаёт идентификатор платежа.
По умолчанию QIWI ожидает подтверждения платежа в течение 72 часов с момента его успешной авторизации — оплаты счёта. По истечении этого срока платёж подтверждается автоматически. Для изменения длительности ожидания или настройки автоматической отмены платежа обратитесь в службу поддержки. Длительность ожидания не может превышать 5 суток.
-
QIWI с помощью платёжной системы отправляет запрос на подтверждение платежа в банк-эмитент.
- Банк-эмитент списывает ранее захолдированные денежные средства с карты клиента.
- QIWI фиксирует успешное завершение платежа.
- Партнёр принимает решение об успешности завершения платежа — выполняет действия, указанные в статье «Общие принципы и правила» → «Решение об успешности операции».
%%{init: {
"sequence" : {
"wrap":true,
"messageFontSize":14,
"noteFontSize":12,
"actorMargin":
60 }}}%%
sequenceDiagram
participant С as Клиент
participant P as Партнёр
participant Q as QIWI
participant B as Банк-эмитент
С->>P: Выбор товара или услуги, оплата
Note right of С: Ввод реквизитов карты
P->>+Q: Запрос на создание платежа
Note right of P: siteId, paymentId, amount, cardData
Q->>-P: Ответ на запрос создания платежа
Note left of Q: siteId, paymentId, amount, status:WAITING, requirements.threeDS.pareq, requirements.threeDS.acsUrl
rect rgb(230, 230, 230)
Note over С, B: Аутентификация клиента с помощью 3D-Secure
end
Q->>+B: Запрос на авторизацию платежа
Note right of Q: Через платёжную систему
B->>B: HOLD
B->>-Q: Результат авторизации
Note left of B: ОК
Q->>Q: Состояние операции
Note over Q: Средства захолдированы
rect rgb(255, 238, 223)
Q->>P: Сценарий «Принятие решения об успешности операции»
Note left of Q: paymentId
P->>Q:
end
P->>С: Коммуникация с клиентом
Note left of P: Заказ собирается
P->>P: Сбор заказа
Note over P: Заказ готов к отправке
P->>+Q: Запрос на подтверждение платежа
Note right of P: siteId, paymentId, captureId
Q->>+B: Запрос на подтверждение платежа
Note right of Q: Через платёжную систему
B->>B: CAPTURE
B->>-Q: Результат
Note left of B: ОК
Q->>Q: Статус платежа
Note over Q: COMPLETED
Q->>-P: Ответ на запрос подтверждения
Note left of Q: siteId, paymentId, captureId, amount, status: COMPLETED
rect rgb(255, 238, 223)
Q->>P: Сценарий «Принятие решения об успешности операции»
Note left of Q: paymentId
P->>Q:
end
P->>С: Коммуникация с клиентом
Note left of P: Заказ отправлен
Элемент диаграммы QIWI — совокупность участников процесса проведения платежа. Указанные на диаграмме сценарии см. в статьях:
- «3D-Secure»;
- «Общие принципы и правила» → «Решение об успешности операции».
Партнёр получает, обрабатывает и хранит данные карты клиента.
PUT /partner/payin/v1/sites/test-01/payments/1811 HTTP/1.1
Accept: application/json
Authorization: Bearer 5c4b25xx93aa435d9cb8cd17480356f9
Content-type: application/json
Host: b2b-api.qiwi.com
{
"amount": {
"currency": "RUB",
"value": 1.00
},
"paymentMethod" : {
"type" : "CARD",
"pan" : "4444443616621049",
"expiryDate" : "12/19",
"cvv2" : "123",
"holderName" : "unknown cardholder"
}
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"paymentId": "1811",
"billId": "autogenerated-a29ea8c9-f9d9-4a60-87c2-c0c4be9affbc",
"createdDateTime": "2019-08-15T13:28:26+03:00",
"amount": {
"currency": "RUB",
"value": 1.00
},
"capturedAmount": {
"currency": "RUB",
"value": 0.00
},
"refundedAmount": {
"currency": "RUB",
"value": 0.00
},
"paymentMethod": {
"type": "CARD",
"maskedPan": "444444******1049",
"rrn": "123",
"authCode": "181218",
"type": "CARD"
},
"status": {
"value": "WAITING",
"changedDateTime": "2019-08-15T13:28:26+03:00"
},
"requirements" : {
"threeDS" : {
"pareq" : "eJyrrgUAAXUA+Q==",
"acsUrl" : "https://test.paymentgate.ru/acs/auth/start.do"
}
}
}
Запрос и ответ приведены в качестве примера: актуальные формат, список и описание параметров см. в документации API приёма платежей.
Примеры запросов для аутентификации клиента см. в статье «3D-Secure».