Crypto Pay 是基于 @CryptoBot 的支付系统,允许您使用 API 接受加密货币支付。本库帮助您通过 Crypto Pay API 与 Crypto Pay 进行交互。
安装
使用以下命令集成库:
npm i @foile/crypto-pay-api
使用方法
API 初始化
首先,创建应用并获取 API 令牌,通过向 @CryptoBot 或 @CryptoTestnetBot(测试网)发送 /pay
命令。然后,通过调用 getMe()
方法验证 API 功能:
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'
});
网络 | 机器人 | 主机名 |
---|---|---|
主网 | @CryptoBot | pay.crypt.bot |
测试网 | @CryptoTestnetBot | testnet-pay.crypt.bot |
注意:所有对 Crypto Pay API 的查询必须通过 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));
还可以使用简化的别名方法处理更新:
cryptoPay.invoicePaid(update => console.log(update.payload));
API 方法
该库提供了与 Crypto Pay API 交互的各种方法,包括但不限于:
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 区块链的技术文章,采用第三人称描述,并以专业、学术的风格撰写的中文文章。](GitHub - Foile/crypto-pay-api: Cryptocurrency payment system based on @CryptoBot)