Виджет оплаты через SberPay
Виджет оплаты через SberPay нужен, чтобы принимать платежи без ввода данных карты.
Внешний вид виджета

Пример кода страницы с виджетом
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="utf-8" />
<title>SberPay оплата</title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="format-detection" content="telephone=no" />
<!-- Подключение скрипта и стилей виджета. -->
<link href="https://widget.bank131.ru/sber-pay-payment.css" rel="stylesheet" />
<script src="https://widget.bank131.ru/sber-pay-payment.js" defer></script>
</head>
<body>
<main>
<div id="bank131-sber-pay-payment"></div>
</main>
<script>
const publicToken = 'publicToken'; // публичный токен из запроса token
document.addEventListener('DOMContentLoaded', function () {
if (!window.Bank131SberPayPayment) {
return;
}
const widget = new Bank131SberPayPayment(publicToken);
widget.onReady = function () {
console.log('SberPayPayment is ready.');
};
widget.onSberPayStart = function () {
console.log('SberPayPayment was started.');
};
widget.onSberPayFail = function (error) {
console.log('SberPayPayment was failed with an error', error);
};
widget.onSberPaySuccess = function () {
console.log('SberPayPayment was succeed.');
};
widget.render();
});
</script>
</body>
</html>
Принцип работы виджета
Вы встраиваете виджет на сайт. Виджет открывает окно SberPay, в котором пользователь проходит авторизацию и подтверждает платеж. После этого виджет отображает статус и результат операции.
Инициализация виджета
Шаг 1. Получите публичный токен
Отправьте запрос Банку 131 на создание токена (token), передав в нем тип виджета sber_pay_widget. В ответе вы получите публичный токен.
Шаг 2. Подключите скрипт и стили
Подключите скрипт (JS) и стили (CSS) виджета:
<!-- Для операций с реальными данными -->
<link href="https://widget.bank131.ru/sber-pay-payment.css" rel="stylesheet" />
<script src="https://widget.bank131.ru/sber-pay-payment.js" defer></script>
После подключения скрипта в глобальной области видимости появится класс Bank131SberPayPayment.
Шаг 3. Добавьте контейнер
Добавьте контейнер с уникальным идентификатором для размещения виджета на странице:
<div id="bank131-sber-pay-payment"></div>
Шаг 4. Создайте экземпляр класса
В конструктор класса Bank131SberPayPayment передайте публичный токен:
const widget = new Bank131SberPayPayment('publicToken');
Шаг 5. Отобразите виджет
Вызовите метод render():
widget.render();
API виджета
Конструктор Bank131SberPayPayment
Конструктор класса виджета:
const widget = new Bank131SberPayPayment(publicToken)
| Параметр | Тип | Описание |
|---|---|---|
publicToken | string | Публичный токен. Обязательный параметр |
Метод widget.render()
Отображает виджет внутри контейнера, указанного в id="bank131-sber-pay-payment":
widget.render();
Обработчик события widget.onReady
Вызывается, когда виджет готов к работе:
widget.onReady = function () { /* обработчик */ }
Обработчик события widget.onSberPayStart
Вызывается при старте процесса оплаты через SberPay:
widget.onSberPayStart = function () { /* обработчик */ }
Обработчик события widget.onSberPaySuccess
Вызывается при успешном завершении оплаты:
widget.onSberPaySuccess = function () { /* обработчик */ }
Обработчик события widget.onSberPayFail
Вызывается при неуспешном завершении оплаты:
widget.onSberPayFail = function (error) { /* обработчик */ }
Как принять платеж через SberPay >