0.0.4 • Published 6 months ago

sbp-c2b v0.0.4

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

SbpC2BLib

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

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

  • Генерация платежей с использованием динамических QR-кодов.
  • Поддержка событий для обработки ключевых этапов платежа (создание, завершение, ошибка).
  • Опрос статуса платежа с использованием встроенного polling механизма.

Установка

Установите библиотеку через npm или yarn:

npm install sbp-c2b

или

yarn add sbp-c2b

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

Инициализация библиотеки

import SbpC2BLib from 'sbp-c2b';

const sbpC2b = new SbpC2BLib({
    token: 'YOUR_TOKEN', // Публичный токен для авторизации
    entityId: 'YOUR_ENTITY_ID', // ID товара
    merchantId: 'YOUR_MERCHANT_ID', // ID продовца
    account: 'YOUR_ACCOUNT', // Счет для платежа
    options: {
        qrSize: 400, // Размер QR-кода (по умолчанию 400)
        requestLimit: 25 // Лимит запросов (по умолчанию 25)
    }
});

Создание платежа

const payment = await sbpC2b.createPayment(10000, 'Оплата за услуги');
console.log('Платеж создан:', payment);

Опрос статуса платежа

sbpC2b.startPaymentPolling(payment);

// Подписка на события
sbpC2b.on('qrcGenerate', (data) => {
    console.log('Статус создания платежа:', data);
});

sbpC2b.on('qrcPollingStep', (data) => {
    console.log('Шаг опроса:', data);
});

sbpC2b.on('qrcFinal', (data) => {
    console.log('Финальный статус:', data);
});

sbpC2b.on('error', (error) => {
    console.error('Ошибка:', error);
});

Остановка опроса

sbpC2b.stopPaymentPolling('Опрос остановлен вручную');

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

ПараметрТипОписаниеОбязательный
tokenstringПубличный токен для авторизацииДа
entityIdstringID товараДа
merchantIdstringID продовцаДа
accountstringСчет для платежаДа
options.qrSizenumberРазмер QR-кода (в пикселях).Нет
options.requestLimitnumberМаксимальное количество запросов.Нет

Методы

createPayment(amount: number, paymentPurpose?: string): Promise<PaymentData>

Создает новый платеж.

  • amount: Стоимость платежа (в копейках).
  • paymentPurpose: Описание платежа (опционально).
  • Возвращает: Объект PaymentData с информацией о платеже.

startPaymentPolling(payment: PaymentData): void

Запускает опрос статуса платежа.

  • payment: Объект PaymentData.

stopPaymentPolling(reason?: string): void

Останавливает опрос статуса платежа.

  • reason: Причина остановки (опционально).

on(event: string, callback: Function): void

Подписывается на событие.

  • event: Название события (qrcGenerate, qrcPollingStep, qrcFinal, error).
  • callback: Функция-обработчик.

off(event: string, callback: Function): void

Отписывается от события.

  • event: Название события (qrcGenerate, qrcPollingStep, qrcFinal, error).
  • callback: Функция-обработчик.

События

  • qrcGenerate: Вызывается после генерации QR-кода.
  • qrcPollingStart: Вызывается при начале опроса статуса платежа
  • qrcPollingStep: Вызывается на каждом шаге опроса статуса платежа.
  • qrcPollingEnd: Вызывается при завершении опроса статуса платежа.
  • qrcFinal: Вызывается, когда платеж завершен.
  • error: Вызывается при возникновении ошибки.

Пример

import SbpC2BLib from 'sbp-c2b';

const sbpC2b = new SbpC2BLib({
    token: 'YOUR_TOKEN',
    entityId: 'YOUR_ENTITY_ID',
    merchantId: 'YOUR_MERCHANT_ID',
    account: 'YOUR_ACCOUNT'
});

sbpC2b.on('qrcPollingStep', (data) => {
    console.log('Опрос статуса:', data);
});

sbpC2b.on('qrcFinal', (data) => {
    console.log('Платеж завершен:', data);
});

try {
    const payment = await sbpC2b.createPayment(15000, 'Оплата товара');
    console.log('Платеж создан:', payment);

    sbpC2b.startPaymentPolling(payment);
} catch (error) {
    console.error('Ошибка:', error);
}

Лицензия

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

0.0.4

6 months ago

0.0.3

6 months ago

0.0.2

6 months ago

0.0.1

6 months ago