6.0.1 • Published 2 years ago

cloudpayments v6.0.1

Weekly downloads
254
License
MIT
Repository
github
Last release
2 years ago

CloudPayments

Библиотека для работы с API и обработки уведомлений от платежного сервиса CloudPayments.

Проект написан на языке TypeScript и включает описание всех доступных интерфейсов. Все примеры приведены по стандарту es7. Версия поддерживаемой платформы Node.js 6 и выше.

Install

Для установки пакета используйте стандартный механизм NPM:

npm i -S cloudpayments

Usage

Подключение библиотеки

import {ClientService} from 'cloudpayments';

const client = new ClientService({/* options */});

// бизнес-логика приложения ...

ClientService

Общий интерфейс для доступа к API библиотеки, принимает единственный аргумент ClientOptions.

Methods

MethodOptionsReturnDescription
getClientApiClientApiВозвращает экземпляр класса ClientApi для работы со стандартным API
getReceiptApiReceiptApiВозвращает экземпляр класса ReceiptApi для работы с API кассы
getNotificationHandlersNotificationHandlersВозвращает экземпляр класса ClientHandlers для обработки уведомлений
createClientApiClientOptionsClientApiСоздает отдельный экземпляр класса ClientApi
createReceiptApiClientOptionsReceiptApiСоздает отдельный экземпляр класса ReceiptApi
createNotificationHandlersClientOptionsNotificationHandlersСоздает отдельный экземпляр класса NotificationHandlers

ClientOptions

Параметры подключения к платежному сервису.

OptionTypeDescription
endpointstringАдрес сервера API, по-умолчанию https://api.cloudpayments.ru
privateKeystringВаш приватный ключ
publicIdstringВаш публичный ключ
org.taxationSystemTaxationSystemСистема налогооблажения
org.innnumberИНН

ClientApi

Доступные методы клиентского API:

МетодОписаниеДокументация
chargeCryptogramPaymentОплата по криптограммеhttps://developers.cloudpayments.ru/#oplata-po-kriptogramme
authorizeCryptogramPaymentОплата по криптограмме (преавторизация)https://developers.cloudpayments.ru/#oplata-po-kriptogramme
chargeTokenPaymentОплата по токенуhttps://developers.cloudpayments.ru/#oplata-po-tokenu-rekarring
authorizeTokenPaymentОплата по токену (преавторизация)https://developers.cloudpayments.ru/#oplata-po-tokenu-rekarring
confirm3DSPaymentОбработка 3-D Securehttps://developers.cloudpayments.ru/#obrabotka-3-d-secure
confirmPaymentПодтверждение оплатыhttps://developers.cloudpayments.ru/#podtverzhdenie-oplaty
refundPaymentВозврат денегhttps://developers.cloudpayments.ru/#vozvrat-deneg
voidPaymentОтмена оплатыhttps://developers.cloudpayments.ru/#otmena-oplaty
getPaymentПросмотр информации об операцииhttps://developers.cloudpayments.ru/#prosmotr-tranzaktsii
findPaymentByInvoiceIdПроверка статуса платежаhttps://developers.cloudpayments.ru/#proverka-statusa-platezha
getPaymentsListВыгрузка списка транзакцийhttps://developers.cloudpayments.ru/#vygruzka-spiska-tranzaktsiy
createOrderСоздание счета для отправки по почтеhttps://developers.cloudpayments.ru/#sozdanie-scheta-dlya-otpravki-po-pochte
createSubscriptionСоздание подписки на рекуррентные платежиhttps://developers.cloudpayments.ru/#sozdanie-podpiski-na-rekurrentnye-platezhi
updateSubscriptionИзменение подписки на рекуррентные платежиhttps://developers.cloudpayments.ru/#izmenenie-podpiski-na-rekurrentnye-platezhi
cancelSubscriptionОтмена подписки на рекуррентные платежиhttps://developers.cloudpayments.ru/#izmenenie-podpiski-na-rekurrentnye-platezhi
getSubscriptionЗапрос информации о подпискеhttps://developers.cloudpayments.ru/#zapros-informatsii-o-podpiske
getSubscriptionsListПоиск подписокhttps://developers.cloudpayments.ru/#poisk-podpisok
chargeCryptogramPayoutВыплата по криптограммеhttps://developers.cloudpayments.ru/#vyplata-po-kriptogramme
chargeTokenPayoutВыплата по токенуhttps://developers.cloudpayments.ru/#vyplata-po-tokenu

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,
            },
            {
                // если система налогооблажения не указана, 
                // берется из настроек ClientOptions
                taxationSystem: TaxationSystem.GENERAL,
                inn: 123456789,
                email: 'mail@example.com',
                phone: '+7123456789',
                Items: [
                    {
                        label: 'Наименование товара или сервиса',
                        quantity: 2,
                        price: 1200,
                        amount: 2400,
                        vat: VAT.VAT18,
                        ean13: '1234456363',
                    }
                ]
            }
        );
        
        // Проверяем, что запрос встал в очередь,
        // иначе обрабатываем исключение
        
        // Если все прошло успешно, возвращаем 0
        return ResponseCodes.SUCCESS;
    });
    res.setHeader('Content-Type', 'application/json');
    res.end(JSON.stringify(response));
});

Methods

MethodArgumentsReturnDescription
createReceiptReceiptTypes, ReceiptResponse<{}>Отправляет запрос на создание чека

Receipt

Смотрите Receipt

Handlers

В библиотеку cloudpayments встроен механизм обработки уведомлений о платежах (смотрите документацию).

Список доступных методов для обработки уведомлений:

МетодПараметры запросаСсылка на описание
handleCheckRequestCheckNotificationhttps://developers.cloudpayments.ru/#check
handlePayRequestPayNotificationhttps://developers.cloudpayments.ru/#pay
handleFailRequestFailNotificationhttps://developers.cloudpayments.ru/#fail
handleRecurrentRequestRecurrentNotificationhttps://developers.cloudpayments.ru/#recurrent
handleRefundRequestRefundNotificationhttps://developers.cloudpayments.ru/#refund
handleReceiptRequestReceiptNotificationhttps://developers.cloudpayments.ru/#receipt
handleConfirmRequestConfirmNotificationhttps://developers.cloudpayments.ru/#confirm

Пример использования:

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

Базовый интерфейс для всех типов ответов.

FieldTypeDescription
SuccessbooleanУспех операции
MessagestringСообщение

License

MIT

7.0.0-dev

2 years ago

7.0.0-dev.1

2 years ago

7.0.0-dev.0

2 years ago

6.0.1

3 years ago

5.0.4

3 years ago

5.0.3

3 years ago

5.0.1

4 years ago

4.1.0

4 years ago

4.1.1

4 years ago

3.1.1

4 years ago

3.1.0

4 years ago

3.0.0

5 years ago

2.1.3

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago

0.4.3

6 years ago

0.4.2

6 years ago

0.4.1

6 years ago

0.4.0

6 years ago