Это библиотека для Node.js для упрощения API сайтов СП. Документация к API тут.
Вы можете установить эту библиотеку при помощи
npm
или альтернативного пакетного менеджера (pnpm
, yarn
).
npm i spworlds
import { SPWorlds } from 'spworlds'
// const { SPWorlds } = require('spworlds');
// Где получить ID и токен - https://github.com/sp-worlds/api-docs/blob/main/AUTHORIZATION.md#%D0%BF%D0%BE%D0%BB%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D1%82%D0%BE%D0%BA%D0%B5%D0%BD%D0%B0-%D0%B8-id-%D0%BA%D0%B0%D1%80%D1%82%D1%8B
const api = new SPWorlds({ id: 'ID карты', token: 'Токен карты' })
const pong = await api.ping()
if (pong) {
return 'Работает!!'
} else 'Не работает :('
Если вы хотите принимать оплату в АРах на своем сайте, используйте этот метод.
Получение ссылки на страницу оплаты 16 АР, после успешной оплаты пользователь перейдет со страницы оплаты на https://eximple.com/success
, а сайт СП отправит запрос на https://api.example.com/webhook
с данными этого платежа, в том числе и SomeString
. Последнее поле можно использовать, например, для ID заказа или чего-то подобного.
const url = await api.initPayment({
items: [
{
name: 'SomeName',
count: '1',
price: '1',
comment: 'SomeComment'
}
],
redirectUrl: 'https://eximple.com/success',
webhookUrl: 'https://api.example.com/webhook',
data: 'SomeString'
})
Перевод 16 АР на карту с номером 55555 и комментарием "С днем рождения!"
api.createTransaction({
receiver: '55555',
amount: '16',
comment: 'С днём рождения!'
})
Метод возвращает объект с балансом и подключенным к карте вебхуком
const balance = await api.getCardInfo()
Метод возвращает массив со следующими значениями:
name
- Название карты
number
- Номер карты
const cards = await api.getCards('5opka')
Метод возвращает объект с большим количеством информации, которую можно узнать из официальной документации API
const user = await api.getCardOwner()
Метод принимает ID игрока в Discord и возвращает его nickname и uuid, если у него есть проходка на сервер.
const userData = await api.findUser('111111111111111111')
if (!userData) throw 'У этого игрока нет проходки'
console.log(`Никнейм игрока: ${userData.username}`)
console.log(`Айди игрока: ${userData.uuid}`)
Метод возвращает id
и установленный webhook
карты
На установленный вебхук будут отправляться все новые транзакции связанные с картой Данные будут отправлены через POST запрос
const res = await api.setWebhook('https://api.example.com/webhook')
Проверка хеша из req.headers['X-Body-Hash']
на валидность. Если метод возвращает не true, не обрабатывайте этот запрос.
const isValid = api.validateHash(req.body, req.headers['X-Body-Hash'])
if (!isValid) throw 'Ошибка проверки цифровой подписи'
Если вы хотите дополнить или улучшить библиотеку или документацию к ней, то сделайте pull запрос к этому репозиторию. Пожалуйста, используйте pnpm вместо npm и форматируйте js и ts код при помощи prettier, чтобы все было красиво.