Оплата с помощью СБП¶
Общие сведения¶
Партнёр может реализовать оплату с собственной платёжной формы с помощью Системы быстрых платежей (СБП). В этом случае клиент оплачивает заказ без ввода данных банковской карты: сканирует QR-код и получает ссылку на платеж, которую можно открыть в приложении банка. Для подключения этого способа оплаты обратитесь в службу поддержки.
Обратите внимание
Подключение нового способа оплаты предполагает, что партнёр уже реализовал сценарий «Оплата с формы партнёра».
Проведение оплаты¶
Для проведения оплаты с помощью СБП необходимо отправить запрос на создание QR-кода (можно использовать как POST-, так и PUT-метод).
POST /partner/payin/v1/sites/test-01/sbp/qrCodes HTTP/1.1
Accept: application/json
Authorization: Bearer 5c4b25xx93aa435d9cb8cd17480356f9
Content-type: application/json
Host: b2b-api.qiwi.com
{
"qrCodeUid": "Test12",
"amount": {
"value": 100.00,
"currency": "RUB"
},
"qrCode": {
"type": "DYNAMIC",
"ttl": 60,
"image": {
"mediaType": "image/png",
"width": 300,
"height": 300
}
},
"paymentPurpose": "Flower for my girlfriend",
"redirectUrl": "http://example.com"
}
HTTP/1.1 200 OK
Content-Type: application/json
{
"qrCodeUid": "Test12",
"amount": {
"currency": "RUB",
"value": "1.00"
},
"qrCode": {
"type": "DYNAMIC",
"ttl": 60,
"image": {
"mediaType": "image/png",
"width": 300,
"height": 300,
"content": "iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAYAA"
},
"payload": "https://qr.nspk.ru/AD10006M8KH234K782OQM0L13JI31LQD?type=02&bank=100000000009&sum=200&cur=RUB&rc=C63A",
"status": "CREATED"
},
"createdOn": "2022-08-11T20:10:32+03:00"
}
Запрос и ответ приведены в качестве примера: актуальные формат, список и описание параметров см. в документации API приёма платежей.
В ответе на запрос содержатся данные QR-кода:
qrCode.image.content
— QR-код, закодированный в base64.qrCode.payload
— URL для перенаправления клиента в приложение банка.
Значение необходимо расшифровать. Изображение кода, полученное после расшифровки, следует отобразить клиенту.
Определить текущее состояние QR-кода (в том числе, не истёк ли срок его действия) можно с помощью запроса статуса кода: см. в ответе значение поля qrCode.status
.