0.0.19 • Published 6 months ago

sbp-c2b-widget v0.0.19

Weekly downloads
-
License
ISC
Repository
-
Last release
6 months ago

SBP C2B Widget

Описание

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


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

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

npm.io

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

npm.io


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

  • Генерация платежей с использованием динамических 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',
  extEntityId: 'your_entity_id',
  merchantId: 'your_merchant_id',
  account: 'your_account',
  className: 'custom-class',
  options: {
    qrSize: 300,
    wrapperId: 'custom-wrapper-id',
    placeHolderSrc: 'base64-image-string',
    showLoader: true,
    showSpinner: false,
  },
  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();

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

ПараметрТипОбязательныйОписание
tokenstringДаПубличный токен для авторизации.
extEntityIdstringДаID сущности.
merchantIdstringДаID мерчанта.
accountstringДаСчет для платежа.
classNamestringНетПользовательский класс для корневого элемента виджета.
optionsObjectНетДополнительные настройки виджета (см. ниже).
onReadyFunctionНетCallback, вызываемый после успешного рендеринга виджета.
onDestroyFunctionНетCallback, вызываемый при удалении виджета.
onQrcGenerateFunctionНетCallback, вызываемый при успешной генерации QR-кода.
onPollingStepFunctionНетCallback, вызываемый при каждом шаге опроса статуса платежа.
onSBPFinalFunctionНетCallback, вызываемый при завершении транзакции.
onErrorFunctionНетCallback, вызываемый при возникновении ошибки.

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

ПараметрТипЗначение по умолчаниюОписание
qrSizenumber400Размер QR-кода в пикселях.
wrapperIdstringsbp-c2b-qrID контейнера для размещения виджета.
placeHolderSrcstringbase64-заглушкаИзображение-заглушка для виджета.
hideQrcStatusLoaderbooleanfalseОтображение индикатора опроса статуса.
hideQrcLoaderbooleanfalseОтображение спиннера загрузки.
hideQrcHeaderbooleanfalseОтображение заголовка платежа.
hideQrcDescriptionbooleanfalseОтображение статуса платежа узки.

Методы

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.

0.0.19

6 months ago

0.0.18

6 months ago

0.0.17

6 months ago

0.0.16

6 months ago

0.0.15

6 months ago

0.0.14

6 months ago

0.0.13

6 months ago

0.0.12

6 months ago

0.0.11

6 months ago

0.0.10

6 months ago

0.0.9

6 months ago

0.0.8

6 months ago

0.0.7

6 months ago

0.0.6

6 months ago

0.0.5

6 months ago

0.0.4

6 months ago

0.0.3

6 months ago

0.0.2

6 months ago

0.0.1

7 months ago