@vladismus/sendy
v0.1.4
Published
[Sendy POS API](https://sandbox.sendy.land/) for NodeJS =======================================================
Downloads
2
Readme
Sendy POS API for NodeJS
Введение
Модуль упрощает взаимодействие с API платёжной системы Sendy.
Перед началом
Для работы с API потребуется ID-терминала и ключи шифрования — закрытый и открытый (RSA)
Создание ключей
Если у вас уже есть пара открытого и закрытого ключа, то этот раздел можно пропустить.
- Сгенерируйте закрытый ключ:
openssl genrsa -out private_key.pem 2048
- Сгенерируйте открытый ключ на основе закрытого:
openssl rsa -in private_key.pem -out public_key.pem -pubout
Конфигурация
Добавьте модуль в проект:
npm i @vladismus/sendy
В коде вашего проекта:
const Sendy = require('@vladismus/sendy')
const { readFileSync } = require('fs')
// Укажите параметры вашего терминала
const terminal = {
terminalId: 1234567, // ID терминала посмотрите в Личном Кабинете Sendy
privateKey: readFileSync('/path/to/your/private_key.pem'),
publicKey: readFileSync('/path/to/your/public_key.pem'),
}
const apiUrl = undefined // Здесь нужно указать URL к API Sendy, по умолчанию это 'https://testapi.sendy.land'
const api = new Sendy(terminal, apiUrl)
Использование
Обращения к API осуществляются путём вызова функции
api.call(requestName, options, returnFullResponse)
Где:
requestName
— Идентификатор процесса в Sendy, напримерpos/service/activation
options
— Объект значимых параметров для конкретного запроса. Например,{Serial: '<S/N of terminal', Secret: '<some string>'}
ОБРАТИТЕ ВНИМАНИЕ, что параметры APISubject
(содержит ID терминала) иRequest
(содержит идентификатор процесса) указывать не нужно — данные параметры обязательны для всех запросов в Sendy и добавляются в запрос автоматически!returnFullResponse
— булево значение (true
/false
); определяет что вернуть в ответе — только данные тела ответа от API или весь ответ axios (может потребовать для отладки). По умолчанию это значение равноfalse
, то есть, возвращается только тело ответа.
Метод .call()
является асинхронным и возвращает JS Promise.
Примеры использования
Получение данных через await
:
try {
const result = await api.call('pos/service/activation', {
Serial: '1234',
Secret: '12345678',
Key: api.publicKey,
})
console.log(result)
} catch (error) {
console.error(error.message)
}
Получение данных через .then()
:
api.call('pos/service/activation', {
Serial: '1234',
Secret: '12345678',
Key: api.publicKey,
})
.then(result => {
console.log(result)
// some code there
})
.catch(error => console.error(error.message))
Показанные выше примеры являются эквивалентными
Методы и свойства
call(requestName, [options])
— Метод, вполняющий запросrequestName
в API и возвращающий результатsign(string)
— Метод возвращающий подписанную при помощи закрытого ключа строкуstring
(возвращает строку в формате Base64)publicKey
— Свойство, содержащее открытый ключ в формате Base64 (Требуется при выполнении запроса на активацию терминала)