Инструменты страницы
Песочница для тестирования
Для тестирования подключения к платежному шлюзу метода SberPay необходимо руководствоваться следующей инструкцией.
Основные сценарии
Вся интеграция делится на три основных сценария:
- WEB2APP (mWEB2APP, SMS-checkout) - оплата посредством нажатия кнопки на платежной странице
- APP2APP - оплата через стороннее мобильное приложение магазина
- BACK2APP - оплата через сервисы продавца, без использования платежных страниц РБС
Главная идея заключается в том, чтобы отправлять специальные запросы с необходимым для банковской системы набором параметров. Это может происходить как во время регистрации заказа (APP2APP, BACK2APP), так и после (WEB2APP, mWEB2APP). После того как банковская система уведомлена о заказе, происходит оплата на стороне клиента через мобильное приложение СБОЛ. В шлюзе факт оплаты осуществляется через запрос /notifyPaymentStatus.do.
1. WEB2APP (mWEB2APP) сценарий
Основное различие между WEB2APP и mWEB2APP заключается в том, с какого устройства клиент проводил оплату на платежной странице.
- WEB2APP - десктоп, после регистрации заказа в системе банка клиенту придет PUSH-уведомление с предложением оплатить заказ.
- mWEB2APP - мобильное устройство, после регистрации заказа в системе банка клиента сразу средиректит в приложение СБОЛ
- SMS-checkout - используется в случае наличия соответствующей пермисии продавца. После регистрации заказа в системе банка, клиенту будет отправлено смс уведомление о подтверждении оплаты заказа.
2. App2App сценарий
Уведомление банковской системы о заказе происходит на этапе регистрации в шлюзе через приложение продавца. Подробное описание использования параметра externalParams.
Пример запроса на регистрацию:
GET ../rest/register.do?returnUrl=https://sberbank.ru&amount=120&jsonParams=%7B%22app2app%22:%22true%22,%22app.osType%22:%22android%22,%22app.deepLink%22:%22https://sberbank.ru%22%7D&userName={user-api}&password={password}
3. Back2App сценарий
Уведомление банковской системы о заказе происходит на этапе регистрации в шлюзе через сервисы продавца.
GET ../rest/register.do?returnUrl=https://sberbank.ru&amount=120&jsonParams=%7B%22back2app%22%3A%22true%22%7D&userName=781000012764-20162559-api&password=sberbankIFT
Уведомление шлюза об изменении состояния заказа СБОЛ через запрос ''notifyPaymentStatus.do''
Примеры:
mdOrder
- уникальный номер заказа в системе РБС
bankInvoiceId
- номер заказа в системе банка (отображается в атрибутах заказа на странице детальной информации, параметр sbolBankInvoiceId
)
Отклонение заказа: POST Content-Type:application/json https://3dsec.sberbank.ru/dummysbolpayment/sbol/notifyPaymentStatus.do Body: { "bankInvoiceId": "{{bankInvoiceId}}", "orderNumber": "{{mdOrder}}", "stateCode": "DECLINED" }
Оплата одностадийного заказа: POST Content-Type:application/json https://3dsec.sberbank.ru/dummysbolpayment/sbol/notifyPaymentStatus.do Body: { "bankInvoiceId": "{{bankInvoiceId}}", "orderNumber": "{{mdOrder}}", "stateCode": "DEPOSITED" }
Оплата двухстадийного заказа: POST Content-Type:application/json https://3dsec.sberbank.ru/dummysbolpayment/sbol/notifyPaymentStatus.do Body: { "bankInvoiceId": "{{bankInvoiceId}}", "orderNumber": "{{mdOrder}}", "stateCode": "APPROVED" }
Отмена: POST Content-Type:application/json https://3dsec.sberbank.ru/dummysbolpayment/sbol/notifyPaymentStatus.do Body: { "bankInvoiceId": "{{bankInvoiceId}}", "orderNumber": "{{mdOrder}}", "stateCode": "REVERSED", "merchantId": "123", "cancelInfo": { "cancelCreationDate": "2021-04-03T12:14:12" } }
Возврат без корзины: POST Content-Type:application/json https://3dsec.sberbank.ru/dummysbolpayment/sbol/notifyPaymentStatus.do Body: { "bankInvoiceId": "{{bankInvoiceId}}", "orderNumber": "{{mdOrder}}", "stateCode": "REFUNDED", "cancelInfo": { "cancelCreationDate": "2021-04-03T12:14:12", "cancelAmount": { "value": 100, "currency": "RUB" } } }
Возврат с корзиной: POST Content-Type:application/json https://3dsec.sberbank.ru/dummysbolpayment/sbol/notifyPaymentStatus.do Body: { "bankInvoiceId": "{{bankInvoiceId}}", "orderNumber": "{{mdOrder}}", "stateCode": "REFUNDED", "cancelInfo": { "cancelCreationDate": "2020-07-03T12:14:12", "cancelAmount": { "value": 9000, "currency": "RUB" } }, "itemList": { "items": [ { "itemPositionId": "3", "name": "3", "amount": 9000, "price": 3000, "currency": "RUB", "count": 3, "quantityMeasure": "ед." } ] } }
Оплата с последующим созданием связки: POST Content-Type:application/json https://3dsec.sberbank.ru/dummysbolpayment/sbol/notifyPaymentStatus.do Body: { "bankBindingId": "05e63b91-2038-41da-b7f2-93566ec7bae5", "bankInvoiceId": "thdjrhjxBGdGKbMrhA4DIKRoo3DOnQ4q", "orderNumber": "b4aed2dc-6f89-78a4-b031-97e400f2b4d1", "stateCode": "DEPOSITED", "transactionInfo": { "authCode": "0316967", "bin": "4507", "expDate": "202502", "maskedNumber": "163", "operationDateTime": "2020-11-30T20:05:43", "rrn": "711520107063" } }
Изменение состояния заказа СБОЛ через базовое API-шлюза
Завершение двухстадийного заказа, а также возвраты и отмены по заказам СБОЛ, можно проводить, используя базовое API-шлюза и личный кабинет.
Примечание
- Для того чтобы получить код 15 (деактивация связки) в ответе на запросы
BindingPaymentSberPay
иRecurrentPaymentSberPay
, необходимо использовать связки по картам с паном, оканчивающимся на 0015. - Для тестирования функционала связок СБОЛ использовать следующий адрес
notifyPaymentStatus.do
https://3dsec.sberbank.ru/dummysbolpayment/sbol/notifyPaymentStatus.do