@foile/crypto-pay-api:集成加密货币支付系统

Crypto Pay 是基于 @CryptoBot 的支付系统,允许您使用 API 接受加密货币支付。本库帮助您通过 Crypto Pay APICrypto 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);

可以设置可选参数,如 hostnameprotocol

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)