Библиотека для работы с API и обработки уведомлений от платежного сервиса CloudPayments.
Проект написан на языке TypeScript и включает описание всех доступных интерфейсов. Все примеры приведены по стандарту es7. Версия поддерживаемой платформы Node.js 6 и выше.
Для установки пакета используйте стандартный механизм NPM:
npm i -S cloudpayments
Подключение библиотеки
import{ClientService}from'cloudpayments';constclient=newClientService({/* options */});// бизнес-логика приложения ...Общий интерфейс для доступа к API библиотеки,
принимает единственный аргументClientOptions.
| Method | Options | Return | Description |
|---|---|---|---|
getClientApi | ClientApi | Возвращает экземпляр класса ClientApi для работы со стандартным API | |
getReceiptApi | ReceiptApi | Возвращает экземпляр класса ReceiptApi для работы с API кассы | |
getNotificationHandlers | NotificationHandlers | Возвращает экземпляр класса ClientHandlers для обработки уведомлений | |
createClientApi | ClientOptions | ClientApi | Создает отдельный экземпляр класса ClientApi |
createReceiptApi | ClientOptions | ReceiptApi | Создает отдельный экземпляр класса ReceiptApi |
createNotificationHandlers | ClientOptions | NotificationHandlers | Создает отдельный экземпляр класса NotificationHandlers |
Параметры подключения к платежному сервису.
| Option | Type | Description |
|---|---|---|
endpoint | string | Адрес сервера API, по-умолчанию https://api.cloudpayments.ru |
privateKey | string | Ваш приватный ключ |
publicId | string | Ваш публичный ключ |
org.taxationSystem | TaxationSystem | Система налогооблажения |
org.inn | number | ИНН |
Доступные методы клиентского API:
Интерфейс ReceiptApi предназначен для работы с API касс.
Пример использования:
import{createServer}from'http';import{ClientService,TaxationSystem,VAT,ResponseCodes,ReceiptTypes}from'cloudpayments';constclient=newClientService({privateKey: 'private key',publicId: 'public id',org: {taxationSystem: TaxationSystem.GENERAL,inn: 123456789}});consthandlers=client.getNotificationHandlers();constreceiptApi=client.getReceiptApi();constserver=createServer(async(req,res)=>{constresponse=awaithandlers.handlePayRequest(req,async(request)=>{// Проверям запрос, например на совпадение цены заказаif(request.Amount>0){returnResponseCodes.INVALID_AMOUNT;}// Отправляем запрос на создание чекаconstresponse=awaitreceiptApi.createReceipt({Type: ReceiptTypes.Income,invoiceId: request.InvoiceId,accountId: request.AccountId,},{// если система налогооблажения не указана, // берется из настроек ClientOptionstaxationSystem: TaxationSystem.GENERAL,inn: 123456789,email: 'mail@example.com',phone: '+7123456789',Items: [{label: 'Наименование товара или сервиса',quantity: 2,price: 1200,amount: 2400,vat: VAT.VAT18,ean13: '1234456363',}]});// Проверяем, что запрос встал в очередь,// иначе обрабатываем исключение// Если все прошло успешно, возвращаем 0returnResponseCodes.SUCCESS;});res.setHeader('Content-Type','application/json');res.end(JSON.stringify(response));});| Method | Arguments | Return | Description |
|---|---|---|---|
createReceipt | ReceiptTypes, Receipt | Response<{}> | Отправляет запрос на создание чека |
Смотрите Receipt
В библиотеку cloudpayments встроен механизм обработки
уведомлений о платежах (смотрите документацию).
Список доступных методов для обработки уведомлений:
| Метод | Параметры запроса | Ссылка на описание |
|---|---|---|
handleCheckRequest | CheckNotification | https://developers.cloudpayments.ru/#check |
handlePayRequest | PayNotification | https://developers.cloudpayments.ru/#pay |
handleFailRequest | FailNotification | https://developers.cloudpayments.ru/#fail |
handleRecurrentRequest | RecurrentNotification | https://developers.cloudpayments.ru/#recurrent |
handleRefundRequest | RefundNotification | https://developers.cloudpayments.ru/#refund |
handleReceiptRequest | ReceiptNotification | https://developers.cloudpayments.ru/#receipt |
handleConfirmRequest | ConfirmNotification | https://developers.cloudpayments.ru/#confirm |
Пример использования:
import{createServer}from'http';import{ClientService,TaxationSystem,ResponseCodes}from'cloudpayments';constclient=newClientService({privateKey: 'private key',publicId: 'public id',org: {taxationSystem: TaxationSystem.GENERAL,inn: 123456789}});consthandlers=client.getNotificationHandlers();constserver=createServer(async(req,res)=>{if(req.url=='/cloudpayments/fail'){constresponse=awaithandlers.handleFailRequest(req,async(request)=>{// Делаем что-то с инфомацией о неудачном платежеreturnResponseCodes.SUCCESS;});res.setHeader('Content-Type','application/json');res.end(JSON.stringify(response));}});Базовый интерфейс для всех типов ответов.
| Field | Type | Description |
|---|---|---|
Success | boolean | Успех операции |
Message | string | Сообщение |
MIT