0.2.2 • Published 7 months ago

robokassa-ts v0.2.2

Weekly downloads
-
License
ISC
Repository
github
Last release
7 months ago

Клиент для платежной системы Robokassa на Typescript

Работает 2 способами: 1. Создание простой ссылки на оплату 2. Создание ссылки на оплату корзины

const client = new RobokassaClient({
  merchant: 'merchant', // идентификатор магазина
  // testMode: true, // для запуска в тестовом режиме, часть методов не работает
  password1: 'pass1',
  password2: 'pass2',
  hashMethod: HashMethod.MD5,
})

Получение ссылки на оплату (curl)

const result = await client.getLinkCurl({
      InvId: 1,
      Description: 'Просто ссылка',
      UserIp: '127.0.0.1',
      OutSum: 12.3,
    });

Возможно передавать кастомные поля

const result = await client.getLinkCurl({
      InvId: 3,
      OutSum: 3,
      Description: 'Кастомные поля',
      Shp_field: 'кастомное поле 1',
      Shp_c: 'кастомное поле 1',
      Shp_a: 'кастомное поле 1',
      Shp_b: 'кастомное поле 1',
    });

Получение ссылки на оплату (jwt)

Не работает в тестовом режиме

TBD;

Работа с корзиной

Корзина - это такое же создание ссылки на оплату, только с валидацией состава в соответствии с требованиями платежной системы.

const item: ReceiptItem = {
  name: 'Товар без цены',
  sum: 36,
  quantity: 3,
  payment_method: PaymentMethod.FULL_PAYMENT,
  payment_object: PaymentObject.SERVICE,
  nomenclature_code: '04620034587218',
  tax: TaxSize.NONE,
};

// Добавление товара
client.addItem(item);

// Обновляем первый попавшийся по предикату
client.updateItem(
  (item) => item.nomenclature_code === item.nomenclature_code,
  {
    quantity: 22,
  }
);

// Удаление - аналогично
client.deleteItem(
  (item) => item.nomenclature_code === item.nomenclature_code
);

// После обработки корзины - создаем ссылку на оплату
const result = await client.getCartLink({
  OutSum: 1, // Сумма должна совпадать с суммой всех позиций корзины
  // Так же можно дополнить параметрами для обычной ссылки
  InvId: 3
});

// Необязательный аргумент - система налогообложения Tax
// Применим, когда магазин имеет больше 1 системы налогообложения
const resultWithTax = await client.getCartLink({
  OutSum: 1, // Сумма должна совпадать с суммой всех позиций корзины
  // Так же можно дополнить параметрами для обычной ссылки
  InvId: 3
}, Tax.ESN);

Работа с холдом/предавторизацией

TBD;

Запрос

TBD;

Подтверждение

TBD;

Можно изменить состав корзины

TBD;

Отмена

TBD;

0.2.2

7 months ago

0.2.1

7 months ago

0.2.0

7 months ago

0.1.8

7 months ago

0.1.7

7 months ago

0.1.6

7 months ago

0.1.5

7 months ago

0.1.4

7 months ago

0.1.3

7 months ago

0.1.2

7 months ago

0.1.1

7 months ago

0.1.0

7 months ago