ZH

如何不用真实资金测试加密货币支付

在 SnapEX Pay 中测试加密货币支付

在把商店、计费面板或机器人切换到加密货币支付之前,您会希望看到整个流程跑通:账单被创建,客户选择币种,付款被确认,您的系统将订单标记为已支付。使用 SnapEX Pay,您无需发送任何一枚币就能完成这一切。

什么是测试账单

测试账单就是 environment 设为 test 的普通 SnapEX Pay 账单。它与正式账单经历相同的状态、发送相同的 Webhook,每个事件中的 data.environment 都为 "test"。它永远不会改变您的真实余额。

没有单独的测试 API 密钥:使用同一个密钥,只需修改请求中的一个字段。

通过 API 创建测试账单

在创建账单的请求中加入 "environment": "test":

curl -sS -X POST https://pay.snapex.pro/api/v1/merchant/invoices \
  -H "Authorization: Bearer <your API key>" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -H "Idempotency-Key: order-15-test" \
  -d '{
    "amount_usd": "15.00",
    "environment": "test",
    "external_id": "order-15"
  }'

密钥需要 invoices.write 权限。响应中包含支付链接,与正式账单完全一样。

或在商户后台创建

在后台打开 Invoices,将模式切换为 Test。在那里创建的账单都是测试账单,列表也只显示测试账单,因此它们永远不会与真实付款混在一起。

支付测试账单

打开支付链接。页面上会显示 Test 标记。选择任意币种和网络:页面会显示一个测试地址(不是真实地址),大约 10 秒后付款会自动确认。无需发送任何东西。

在您这边需要检查什么

  • Webhook 投递。 您的端点会收到 data.environment = "test" 的 invoice.paid。检查签名能否通过校验,以及同一 Webhook-Id 的重复投递不会让订单被重复标记为已支付。
  • 订单状态。 您系统中的订单只在收到 invoice.paid 时变为已支付。
  • 测试与正式分开。 确保上线后您的代码会忽略测试事件,或将测试订单单独保存。

现成模块中的测试模式

WHMCS、BILLmanager、WooCommerce、CS-Cart、FOSSBilling、Paymenter 和 Remnawave 模块都有创建测试账单的测试模式。开启期间,在 WHMCS 中只有已登录的管理员能看到支付按钮,在 WooCommerce 中只有店铺管理员能看到该支付方式;在 BILLmanager 和 CS-Cart 中,您可以把测试支付方式限制给测试客户或用户组。下单,在 SnapEX Pay 页面付款,检查订单变为已支付,然后关闭测试模式。pay.snapex.pro 上各模块的安装指南都介绍了这一步。

然后上线

去掉 "environment": "test"(或在模块中关闭测试模式),之后的账单就是正式账单。测试付款永远不会应用到正式订单上。

完整的 API 参考:SnapEX Pay API 文档。

准备好接收加密货币了吗?

创建商户账户并获取 API 密钥。每笔支付 1%,无月费。