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.