Robokassa.pay.startOp
Метод для программного запуска платёжной операции и получения платёжной ссылки.
Поддерживаемый метод оплаты: SBP.
Назначение
Robokassa.pay.startOp(options):
- создаёт платёжную операцию;
- возвращает ссылку на оплату;
- при передаче контейнера автоматически отображает QR-код;
- вызывает колбэк
onpaymentlinkпри получении ссылки.
Подключение
<script src="https://auth.robokassa.ru/merchant/bundle/robokassa-iframe-badge.js"></script>
После подключения метод доступен глобально:
Robokassa.pay.startOp(...)
Сигнатура метода
Robokassa.pay.startOp(options);
Обязательные параметры
| Параметр | Тип | Описание |
|---|---|---|
merchantLogin | string | Логин магазина, указанный в технических настройках |
outSum | number | Сумма к оплате. Формат — число через точку, например 123.45 |
signature | string | Контрольная сумма запроса. |
email | string | Email покупателя |
paymentMethod | string | Строго "SBP" |
Дополнительные параметры
| Параметр | Тип | Описание |
|---|---|---|
invId | number | Номер счёта в магазине |
receipt | string | Фискальные данные в формате JSON. Подробности см. в разделе «Фискализация» |
onpaymentlink | function | Колбэк при получении ссылки |
qrContainerId | string | ID HTML-контейнера для QR |
qrContainerSize | number | Размер QR-кода в px |
Формирование подписи
Без invId и receipt
MD5(merchantLogin:outSum::Пароль#1)
С invId
MD5(merchantLogin:outSum:invId:Пароль#1)
С receipt
MD5(merchantLogin:outSum::receipt:Пароль#1)
С invId и receipt
MD5(merchantLogin:outSum:invId:receipt:Пароль#1)
Пароль#1 — технический пароль магазина.
Отображение QR-кода
Если передан qrContainerId:
- контейнер должен существовать в DOM;
- QR-код автоматически отрисуется внутри него;
- размер задаётся через
qrContainerSize.
Если контейнер не передан или не найден, QR-код не отображается, но ссылка всё равно возвращается через onpaymentlink.
Получение только ссылки
Если отображение QR-кода не требуется, не передавайте qrContainerId и qrContainerSize.
В этом режиме метод можно использовать как API для получения платёжной ссылки, а затем обрабатывать её по своему сценарию: например, отправлять в мобильное приложение, показывать в собственном интерфейсе или передавать в другой сервис.
Пример
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8" />
<title>Robokassa SBP QR</title>
<script src="https://auth.robokassa.ru/merchant/bundle/robokassa-iframe-badge.js"></script>
</head>
<body>
<!-- Контейнер под QR -->
<div id="robokassa-qr-container"></div>
<script>
function onpaymentlinkhandler(url) {
// Обработайте полученную ссылку по логике вашего приложения.
return url;
}
function startPayment() {
Robokassa.pay.startOp({
paymentMethod: 'SBP',
email: 'test@test.ru',
merchantLogin: 'robokassa_demo',
outSum: 1,
receipt: '{"sno":"osn","items":[{"name":"Название товара 1","quantity":1,"sum":1,"payment_method":"full_payment","payment_object":"commodity","tax":"vat10"}]}',
signature: '81dc169f93a39832e91b1a7b7bc656f1',
onpaymentlink: url => onpaymentlinkhandler(url),
qrContainerId: 'robokassa-qr-container',
qrContainerSize: 360,
});
}
document.addEventListener('DOMContentLoaded', startPayment);
</script>
</body>
</html>
Типовой поток
- Вы вызываете
startOp. - Robokassa создаёт операцию.
- Возвращается платёжная ссылка.
- Пользователь оплачивает через СБП.
- Статус операции отправляется на
ResultURLмагазина.
Особенности
- Работает без iframe-виджетов.
- Полный контроль UX на стороне магазина.
- Поддерживается только
paymentMethod: "SBP".