@foile/crypto-pay-api: Интеграция платежной системы криптовалюты с TON Blockchain

Crypto Pay - это платежная система, основанная на @CryptoBot, которая позволяет принимать платежи в криптовалюте с использованием API. Эта библиотека помогает работать с Crypto Pay через Crypto Pay API.

Установка

Для интеграции библиотеки используйте следующую команду:

npm i @foile/crypto-pay-api

Использование

API

Сначала создайте приложение и получите токен API, отправив команду /pay в @CryptoBot или @CryptoTestnetBot (для тестовой сети). Затем проверьте функциональность API, вызвав метод getMe():

const { CryptoPay } = require('@foile/crypto-pay-api');
  
const cryptoPay = new CryptoPay(token);
const app = await cryptoPay.getMe();
console.log(app);

Можно установить необязательные параметры, такие как hostname и protocol:

const cryptoPay = new CryptoPay(token, {
  hostname: 'testnet-pay.crypt.bot',
  protocol: 'https'
});
Сеть Бот Хост
mainnet @CryptoBot pay.crypt.bot
testnet @CryptoTestnetBot testnet-pay.crypt.bot

Примечание: Все запросы к API Crypto Pay должны отправляться через HTTPS.

Создание счетов

Счета можно создавать с различными параметрами, включая поддерживаемые активы и настраиваемые имена кнопок:

const { CryptoPay, Assets, PaidButtonNames } = require('@foile/crypto-pay-api');

const cryptoPay = new CryptoPay(token);
cryptoPay.createInvoice(Assets.BTC, 1, {
  description: 'котенок',
  paid_btn_name: PaidButtonNames.VIEW_ITEM,
  paid_btn_url: 'http://placekitten.com/150',
});

Полные примеры кода смотрите в директории примеров.

Webhooks

Webhooks обеспечивают получение обновлений для приложения в реальном времени. Рекомендуется использовать секретный путь в URL для безопасности, например, https://www.example.com/<secret>.

const cryptoPay = new CryptoPay(token, {
  webhook: {
    serverHostname: 'localhost',
    serverPort: 4200,
    path: '/secret-path'
  },
});

cryptoPay.on('invoice_paid', update => console.log(update.payload));

Методы API

Библиотека предоставляет различные методы для взаимодействия с API Crypto Pay, включая, но не ограничиваясь:

  • getMe(): Получает основную информацию о приложении.
  • createInvoice(asset, amount, options): Создает новый счет.
  • transfer(user_id, asset, amount, spend_id, options): Отправляет монеты от приложения пользователю.
  • getInvoices(options): Получает счета приложения.
  • getBalance(): Получает баланс приложения.
  • `getExchangeRates

()`: Получает обменные курсы поддерживаемых валют.

  • getCurrencies(): Получает поддерживаемые валюты.

Типы обновлений

Библиотека поддерживает различные типы обновлений, такие как invoice_paid, для обработки различных событий.

Константы

Библиотека предоставляет константы для активов и имен оплаченных кнопок для удобства:

Константа Значение
Assets.BTC BTC
Assets.TON TON
Assets.ETH ETH
Assets.USDT USDT
Assets.USDC USDC
Assets.BUSD BUSD
PaidButtonNames.VIEW_ITEM viewItem
PaidButtonNames.OPEN_CHANNEL openChannel
PaidButtonNames.OPEN_BOT openBot
PaidButtonNames.CALLBACK callback

Эта статья предоставляет комплексный обзор интеграции платежей криптовалюты с использованием TON Blockchain с помощью библиотеки @foile/crypto-pay-api.