# robokassa-node

> Robokassa Package for NodeJS

Latest version **1.1.2** (published 2021-11-17) · ISC license · 0 weekly downloads

## Install

```sh
npm install robokassa-node
pnpm add robokassa-node
yarn add robokassa-node
bun add robokassa-node
```

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.1.2 |
| Published | 2021-11-17 |
| First published | 2021-11-06 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 1 |
| Unpacked size | 29.6 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 1 |
| Author | Alex Samarkin |
| Maintainers | alexgui |

## Links

- npm: https://www.npmjs.com/package/robokassa-node
- Repository: https://github.com/AlexSamarkin/robokassa-node
- Homepage: https://github.com/AlexSamarkin/robokassa-node#readme
- Issues: https://github.com/AlexSamarkin/robokassa-node/issues
- npm.io page: https://npm.io/package/robokassa-node

## Dependencies (1)

- [crypto-js](https://npm.io/package/crypto-js.md) ^4.1.1

## Recent versions

- 1.1.2 (latest) — 2021-11-17
- 1.1.1 — 2021-11-15
- 1.1.0 — 2021-11-15
- 1.0.15 — 2021-11-15
- 1.0.14 — 2021-11-14
- 1.0.13 — 2021-11-14
- 1.0.12 — 2021-11-14
- 1.0.11 — 2021-11-14
- 1.0.10 — 2021-11-14
- 1.0.9 — 2021-11-14
- 1.0.8 — 2021-11-14
- 1.0.7 — 2021-11-14
- 1.0.6 — 2021-11-13
- 1.0.5 — 2021-11-13
- 1.0.4 — 2021-11-10
- … 4 more at https://npm.io/package/robokassa-node/versions

## README

# Robokassa Node

Пакет для работы с сервисом эквайринга Robokassa

## Установка

```bash
npm install robokassa-node --save
```

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

Всю документацию по работе с API Робокассы можно найти здесь:
https://docs.robokassa.ru

```typescript

import { Robokassa } from 'robokassa-node';
import type { RobokassaConfig } from 'robokassa-node';

const config: RobokassaConfig = {
    merchantId: YOUR_MERCHANT_ID,
    passwordOne: YOUR_PASSWORD_1,
    passwordTwo: YOUR_PASSWORD_2,
    hashAlgo: 'MD5',
}

const robokassa = new Robokassa(config);
```

Поддерживаются методы:
- #### async generatePaymentLink(order: Order): Promise<string> - возвращает ссылку, ведущую на страницу оплаты
```typescript
   const order: Order = {
    outSum: 1000,
    additionalParams: {
        orderId: 'order_1',
    },
    description: `Описание заказа`,
    email: 'your@email.com',
    items: [
        {
            name: `Товар "Товар 1"`,
            quantity: 1,
            sum: "1000.00",
            tax: PaymentTax.NONE,
            payment_method: PaymentMethod.FULL_PREPAYMENT,
            payment_object: PaymentObject.COMMODITY,
        },
    ],
};

const paymentLink = await robokassa.generatePaymentLink(order);
```
- #### async checkPayment(params: CheckPaymentParams): Promise<boolean> - проверяет, успешно ли прошла оплата, в зависимости от переданных Робокассой параметров.
###### CheckPaymentParams

| Параметр | Тип | Описание | Обязательный
| ------ | ------ | ------ | ------ |
| sum | string | Сумма заказа, которая приходит от Робокассы | Да
| invId | number | номер заказа в Робокассе, приходит в ответе | Да
| signature | string | Подпись, приходит из Робоказзы | Да
| order | Order | Сущность заказа | Да

```typescript
   const order: Order = {
    outSum: 1000,
    additionalParams: {
        orderId: 'order_1',
    },
    description: `Описание заказа`,
    email: 'your@email.com',
    items: [
        {
            name: `Товар "Товар 1"`,
            quantity: 1,
            sum: "1000.00",
            tax: PaymentTax.NONE,
            payment_method: PaymentMethod.FULL_PREPAYMENT,
            payment_object: PaymentObject.COMMODITY,
        },
    ],
};

const invId = 1;
const signature = 'SIGNATRUE_FROM_ROBOKASSA_RESPONSE';

const params = {
    signature,
    invId,
    sum: "1000.000000",
    order
}

const isSuccessfull = await robokassa.checkPayment(params);
```
- ###### async checkPaymentSuccessURL(signature: string, invId: number, order: Order): Promise<boolean> - проверяет, успешно ли прошла оплата при редиректе Робокассой на указанный в настройках URL успешной оплаты.

```typescript
   const order: Order = {
        outSum: 1000,
        additionalParams: {
            orderId: 'order_1',
        },
        description: `Описание заказа`,
        email: 'your@email.com',
        items: [
            {
                name: `Товар "Товар 1"`,
                quantity: 1,
                sum: "1000.00",
                tax: PaymentTax.NONE,
                payment_method: PaymentMethod.FULL_PREPAYMENT,
                payment_object: PaymentObject.COMMODITY,
            },
        ],
   };

   const invId = 1;
   const signature = 'SIGNATRUE_FROM_ROBOKASSA_RESPONSE';

   const isSuccessfull = await robokassa.checkPaymentSuccessURL(signature, invId, order);
```

## Параметры и интерфейс

### RobokassaConfig

| Параметр | Тип | Описание | Обязательный
| ------ | ------ | ------ | ------ |
| merchantId | string | Ваш идентификатор магазина | Да
| passwordOne | string | Пароль#1 | Да
| passwordTwo | string | Пароль#2 | Да
| hashAlgo | MD5, SHA1, SHA256, SHA384, SHA512 | Алгоритм шифрования для создания подписи | Да
| isTest | boolean | Тестовый режим оплаты (по умолчанию - false) | Нет
| culture | ru, en | | Нет
| encoding | utf-8, win-1251 | Кодировка | Нет
| additionalParamPrefix | shp_ , Shp_, SHP_ | Префикс для пользовательских параметров, переданных в ссылку для оплаты | Нет
| debug | boolean | Режим отладки | Нет

### Order

| Параметр | Тип | Описание | Обязательный
| ------ | ------ | ------ | ------ |
| outSum | number | Сумма заказа | Да
| description | string | Описание заказа | Да
| invId | number | Идентификатор заказа в Робокассе | Нет
| email | string | Email покупателя | Да
| expirationDate | Date | Дата, до которой возможна оплата заказа| Нет
| additionalParams | Record<string, any> | Дополнительные пользовательские параметры | Нет
| items | ReceiptItem[] | Массив товаров для фискализации | Нет
| sno | SNO | Система налогообложениы | Нет

# Отказ от ответственности

Этот пакет не является официальным пакетом для работы с сервисом РОБОКАССА. Используйте на свой страх и риск.

---
_Source: https://npm.io/package/robokassa-node · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
