Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including cloudpayments with all npm packages installed. Try it out:

var cloudpayments = require("cloudpayments")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

cloudpayments v3.0.0

CloudPayments API for Node.js with typings

CloudPayments

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

Все примеры приведены по стандарту 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

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(
            ReceiptTypes.Income,
            {
                invoiceId: request.InvoiceId,
                accountId: request.AccountId,
                // если система налогооблажения не указана, 
                // берется из настроек ClientOptions
                taxationSystem: TaxationSystem.GENERAL,
                inn: 123456789,
                notify: {email: 'mail@example.com', phone: '+7123456789'},
                records: [
                    {
                        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Сообщение
RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free