
在把商店、计费面板或机器人切换到加密货币支付之前,您会希望看到整个流程跑通:账单被创建,客户选择币种,付款被确认,您的系统将订单标记为已支付。使用 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 文档。