Инструменты страницы

Песочница для тестирования

Для тестирования подключения к платежному шлюзу метода 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