CloudPayments
Библиотека для работы с API и обработки уведомлений от платежного сервиса
CloudPayments.
Проект написан на языке TypeScript и включает описание всех доступных интерфейсов.
Все примеры приведены по стандарту es7. Версия поддерживаемой платформы Node.js 6 и выше.
Install
Для установки пакета используйте стандартный механизм NPM:
npm i -S cloudpayments
Usage
Подключение библиотеки
import {ClientService} from 'cloudpayments';
const client = new ClientService({});
ClientService
Общий интерфейс для доступа к API библиотеки,
принимает единственный аргумент ClientOptions
.
Methods
getClientApi | | ClientApi | Возвращает экземпляр класса ClientApi для работы со стандартным API |
getReceiptApi | | ReceiptApi | Возвращает экземпляр класса ReceiptApi для работы с API кассы |
getNotificationHandlers | | NotificationHandlers | Возвращает экземпляр класса ClientHandlers для обработки уведомлений |
createClientApi | ClientOptions | ClientApi | Создает отдельный экземпляр класса ClientApi |
createReceiptApi | ClientOptions | ReceiptApi | Создает отдельный экземпляр класса ReceiptApi |
createNotificationHandlers | ClientOptions | NotificationHandlers | Создает отдельный экземпляр класса NotificationHandlers |
ClientOptions
Параметры подключения к платежному сервису.
endpoint | string | Адрес сервера API, по-умолчанию https://api.cloudpayments.ru |
privateKey | string | Ваш приватный ключ |
publicId | string | Ваш публичный ключ |
org.taxationSystem | TaxationSystem | Система налогооблажения |
org.inn | number | ИНН |
ClientApi
Доступные методы клиентского API:
ReceiptApi
Интерфейс ReceiptApi
предназначен для работы с API касс.
Пример использования:
import {createServer} from 'http';
import {ClientService, TaxationSystem, VAT, ResponseCodes, ReceiptTypes} from 'cloudpayments';
const client = new ClientService({
privateKey: 'private key',
publicId: 'public id',
org: {
taxationSystem: TaxationSystem.GENERAL,
inn: 123456789
}
});
const handlers = client.getNotificationHandlers();
const receiptApi = client.getReceiptApi();
const server = createServer(async (req, res) => {
const response = await handlers.handlePayRequest(req, async (request) => {
if (request.Amount > 0) {
return ResponseCodes.INVALID_AMOUNT;
}
const response = await receiptApi.createReceipt(
{
Type: ReceiptTypes.Income,
invoiceId: request.InvoiceId,
accountId: request.AccountId,
},
{
taxationSystem: TaxationSystem.GENERAL,
inn: 123456789,
email: 'mail@example.com',
phone: '+7123456789',
Items: [
{
label: 'Наименование товара или сервиса',
quantity: 2,
price: 1200,
amount: 2400,
vat: VAT.VAT18,
ean13: '1234456363',
}
]
}
);
return ResponseCodes.SUCCESS;
});
res.setHeader('Content-Type', 'application/json');
res.end(JSON.stringify(response));
});
Methods
createReceipt | ReceiptTypes , Receipt | Response<{}> | Отправляет запрос на создание чека |
Receipt
Смотрите Receipt
Handlers
В библиотеку cloudpayments
встроен механизм обработки
уведомлений о платежах (смотрите документацию).
Список доступных методов для обработки уведомлений:
Пример использования:
import {createServer} from 'http';
import {ClientService, TaxationSystem, ResponseCodes} from 'cloudpayments';
const client = new ClientService({
privateKey: 'private key',
publicId: 'public id',
org: {
taxationSystem: TaxationSystem.GENERAL,
inn: 123456789
}
});
const handlers = client.getNotificationHandlers();
const server = createServer(async (req, res) => {
if (req.url == '/cloudpayments/fail') {
const response = await handlers.handleFailRequest(req, async (request) => {
return ResponseCodes.SUCCESS;
});
res.setHeader('Content-Type', 'application/json');
res.end(JSON.stringify(response));
}
});
Response
Базовый интерфейс для всех типов ответов.
Success | boolean | Успех операции |
Message | string | Сообщение |
License
MIT