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

Универсальный виджет рассрочки

Универсальный виджет рассрочки

Данный код Универсального виджета/бейджа позволяет включить и настроить отображение в карточке товара доступных продавцу в Robokassa способов оплаты в кредит/BNPL (оплата частями по графику).

В настоящий момент Robokassa поддерживает следующие методы:

BNPL способы оплаты: Подели, Яндекс Сплит, Мокка

Кредит и рассрочка от ОТП Банка.

На настоящий момент реализована поддержка в следующих CMS:

Общее описание

Кастомные элементы (Vue 3) для отображения бейджа и виджета Robokassa на сайте магазина.
Подходит для встраивания внутри <iframe>.

На странице используются кастомные Web Components:

  • <robokassa-widget> — основной платежный виджет.
  • <robokassa-badge> — компактный платежный бейдж.

Виджеты интегрируются через внешний JavaScript-файл и настраиваются параметрами через HTML-атрибуты.

Описание компонентов

<robokassa-widget>

Представляет собой основной платежный виджет, который может быть настроен по различным параметрам.

Сценарии использования:

  • Отображение на странице с возможностью мгновенной оплаты.
  • Различные режимы оплаты (BNPL, кредит).
  • Гибкая настройка внешнего вида и поведения.

<robokassa-badge>

Компактный мини-виджет (бейдж), который отображает доступные способы оплаты.

Сценарии использования:

  • Карточки товаров.
  • Баннеры.
  • Вызов кастомных обработчиков по клику.

Параметры компонентов

Параметры <robokassa-badge>

АтрибутТипОбяз.По умолчаниюОписание
merchantLoginstringдаИдентификатор магазина.
outSumnumber (decimal)нетСумма к оплате.
theme"light" | "dark"нетlightЦветовая тема.
colorScheme"primary" | "secondary" | "accent"нетprimaryЦветовая схема.
size"s" | "m"нетmРазмер компонента.
showLogobooleanнетtrueПоказывать логотип.
onclickfunctionнетJS-обработчик клика.

Параметры <robokassa-widget>

АтрибутТипОбяз.По умолчаниюОписание
merchantLoginstringдаИдентификатор магазина.
outSumnumber (decimal)даСумма к оплате.
invIdlongнетУникальный номер счёта.
receiptstringнетЧек JSON-string.
signaturestringдаКонтрольная сумма.
theme"light" | "dark"нетlightТема.
size"s" | "m"нетmРазмер.
showLogobooleanнетtrueПоказывать логотип.
borderRadiusnumber (int)нет10Скругление углов.
hasSecondLinebooleanнетfalseВторая строка (только для m).
descriptionPosition"left" | "right"нетleftПозиция описания.
emailstringнетEmail покупателя.
type"bnpl" | "credit"нетТип оплаты.
mode"checkout" | "payment"нетpaymentРежим оплаты.
checkoutUrlstringнетURL редиректа.
oncheckoutfunction(event)нетКолбэк.
paymentMethodstringнетМетод оплаты.

Установка и подключение

Подключение через CDN

<script src="https://auth.robokassa.ru/merchant/bundle/robokassa-iframe-badge.js"></script>

После подключения вызывайте:

<script>
document.addEventListener('DOMContentLoaded', () => {
window.initRobokassaBadges();
});
</script>

Пример кода с аннотациями

<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8" />
<title>Robokassa Badge Embed</title>
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
<script src="https://auth.robokassa.ru/merchant/bundle/robokassa-iframe-badge.js"></script>
<script>
document.addEventListener('DOMContentLoaded', () => {
window.initRobokassaBadges();
});
</script>
</head>
<body>
<div>
<p>Большой виджет, BNPL, светлая тема, размер m</p>

<robokassa-widget
outSum="6000"
merchantLogin="robo-demo-test"
signature="1e7aedb3bf0151471fbaa460356e6cd2"
theme="light"
size="m"
borderRadius="50"
descriptionPosition="right"
type="bnpl"
email="test@test.ru"
hasSecondLine="true"
mode="payment"
checkouturl="url">
</robokassa-widget>

<p>Маленький виджет, BNPL, светлая тема, размер s</p>

<robokassa-widget
outSum="6000"
merchantLogin="robo-demo-test"
signature="1e7aedb3bf0151471fbaa460356e6cd2"
theme="light"
size="s"
borderRadius="50"
descriptionPosition="right"
type="bnpl"
email="test@test.ru"
hasSecondLine="true"
mode="payment"
checkouturl="url">
</robokassa-widget>

<p>Большой виджет, кредит, темная тема</p>

<robokassa-widget
outSum="6000"
merchantLogin="robo-demo-test"
signature="1e7aedb3bf0151471fbaa460356e6cd2"
theme="dark"
size="m"
borderRadius="12"
descriptionPosition="right"
type="credit"
email="test@test.ru"
hasSecondLine="false"
mode="payment">
</robokassa-widget>

</div>

<p>Информационный бейдж</p>

<robokassa-badge
outSum="6000"
merchantLogin="robo-demo-test"
signature="1e7aedb3bf0151471fbaa460356e6cd2"
onclick="badgeClickHandler">
</robokassa-badge>

<script>
function badgeClickHandler() {
alert('badgeClickHandler вызван!');
}
</script>

</body>
</html>

Как будут выглядеть виджет и бейдж при подключении к сайту