@vladismus/sendy
v0.1.4
Published
[Sendy POS API](https://sandbox.sendy.land/) for NodeJS =======================================================
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/activationoptions— Объект значимых параметров для конкретного запроса. Например,{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 (Требуется при выполнении запроса на активацию терминала)
