npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

sbp-c2b-widget

v0.0.23

Published

Виджет для интеграции с Системой Быстрых Платежей (СБП) через динамические QR-коды

Downloads

55

Readme

SBP C2B Widget

Описание

SBP Widget — это виджет для интеграции с Системой Быстрых Платежей (СБП) от ТРР «Золотая корона» с использованием динамических QR-кодов. Виджет позволяет создавать платежи, отображать QR-коды, а также отслеживать статусы транзакций.


Как выглядит виджет

Экран по умолчанию, без показа QR-кода

Экран отображающий используемый QR-код


Основные возможности:

  • Генерация платежей с использованием динамических QR-кодов.
  • Отображение статусов транзакций.
  • Поддержка кастомизации через параметры.
  • Реализация событий для взаимодействия с системой.

Установка

Установите виджет через npm или yarn:

npm install sbp-c2b-widget

или

yarn add sbp-c2b-widget

Использование

Импорт

import initSbpWidget from 'sbp-c2b-widget';

Инициализация

Для инициализации виджета необходимо добавить контейнер, в который будет помещен виджет. По умолчанию виджет использует контейнер с id="sbp-c2b-qr". Если используется кастомный wrapperId, то нужно использовать id из этого параметра:

<div id="sbp-c2b-qr"></div>

или

<div id="custom-wrapper-id"></div>

Затем используйте параметры, описанные ниже:

const widget = initSbpWidget({
  token: 'your_token',
  entityId: 'your_entity_id',
  merchantId: 'your_merchant_id',
  account: 'your_account',
  className: 'custom-class',
  options: {
    qrSize: 300,
    wrapperId: 'custom-wrapper-id',
    placeHolderSrc: 'base64-image-string',
  },
  onReady: () => console.log('Widget is ready'),
  onDestroy: () => console.log('Widget destroyed'),
  onQrcGenerate: (event) => console.log('QR code generated', event),
  onPollingStep: (event) => console.log('Polling step', event),
  onSBPFinal: (event) => console.log('Transaction completed', event),
  onError: (error) => console.error('Error occurred', error),
});

widget.render();

Параметры конструктора

| Параметр | Тип | Обязательный | Описание | |------------------|--------------|--------------|-------------------------------------------------------------------------| | token | string | Да | Секретный токен для авторизации. | | entityId | string | Да | ID ЮЛ | | merchantId | string | Да | ID ТСП | | account | string | Да | Счет для платежа. | | className | string | Нет | Пользовательский класс для корневого элемента виджета. | | options | Object | Нет | Дополнительные настройки виджета (см. ниже). | | onReady | Function | Нет | Callback, вызываемый после успешного рендеринга виджета. | | onDestroy | Function | Нет | Callback, вызываемый при удалении виджета. | | onQrcGenerate | Function | Нет | Callback, вызываемый при успешной генерации QR-кода. | | onPollingStep | Function | Нет | Callback, вызываемый при каждом шаге опроса статуса транзакции. | | onSBPFinal | Function | Нет | Callback, вызываемый при завершении транзакции. | | onError | Function | Нет | Callback, вызываемый при возникновении ошибки. |

Параметры объекта options:

| Параметр | Тип | Значение по умолчанию | Описание | |------------------|----------|------------------------|-------------------------------------------------------------------------| | qrSize | number | 400 | Размер QR-кода в пикселях. | | wrapperId | string | sbp-c2b-qr | ID контейнера для размещения виджета. | | placeHolderSrc | string | base64-заглушка | Изображение-заглушка для виджета. | | hideQrcStatusLoader | boolean| false | Скрыть отображение индикатора опроса статуса. | | hideQrcLoader | boolean| false | Скрыть отображение загрузки. | | hideQrcHeader | boolean| false | Скрыть отображение заголовка платежа. | | hideQrcDescription | boolean| false | Скрыть отображение статуса транзакции. |


Методы

render()

Рендерит HTML-контент виджета в указанной области DOM.

widget.render();

initPaymentPolling(amount: number, paymentPurpose?: string)

Инициализирует платеж и начинает опрос статуса транзакции.

await widget.initPaymentPolling(5000, 'Оплата услуг');

stopPaymentPolling(reason?: string)

Останавливает процесс опроса статуса транзакции.

widget.stopPaymentPolling('Причина остановки');

showPaymentImage(sbpImage: string)

Заменяет изображение QR-кода внутри виджета.

widget.showPaymentImage('data:image/png;base64,...');

destroy()

Полностью удаляет виджет из DOM и освобождает ресурсы.

widget.destroy();

Лицензия

Этот проект лицензирован под MIT License. Подробности в файле LICENSE.