Перейти к основному содержимому

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);

Обязательные параметры

ПараметрТипОписание
merchantLoginstringЛогин магазина, указанный в технических настройках
outSumnumberСумма к оплате. Формат — число через точку, например 123.45
signaturestringКонтрольная сумма запроса.
emailstringEmail покупателя
paymentMethodstringСтрого "SBP"

Дополнительные параметры

ПараметрТипОписание
invIdnumberНомер счёта в магазине
receiptstringФискальные данные в формате JSON. Подробности см. в разделе «Фискализация»
onpaymentlinkfunctionКолбэк при получении ссылки
qrContainerIdstringID HTML-контейнера для QR
qrContainerSizenumberРазмер 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>

Типовой поток

  1. Вы вызываете startOp.
  2. Robokassa создаёт операцию.
  3. Возвращается платёжная ссылка.
  4. Пользователь оплачивает через СБП.
  5. Статус операции отправляется на ResultURL магазина.

Особенности

  • Работает без iframe-виджетов.
  • Полный контроль UX на стороне магазина.
  • Поддерживается только paymentMethod: "SBP".