主机计费系统
FOSSBilling 加密货币支付
适用于 FOSSBilling 的支付适配器,让客户通过 SnapEX Pay 使用 USDT(TRC20、ERC20、BEP20)和其他币种支付账单。客户在账单上选择 SnapEX Pay 时,适配器会创建 SnapEX Pay 账单并显示前往支付页面的按钮(如果 FOSSBilling 要求,则直接跳转)。付款确认后,签名 Webhook 到达 FOSSBilling 的 IPN URL,客户获得入账,账单被标记为已支付。
免费。版本 1.2.0。
功能
- 无需运行钱包、节点或区块链监听程序:资金进入您的 SnapEX Pay 商户余额。
- 单文件适配器,显示在 System → Payment gateways 中。
- Webhook 通过 HMAC-SHA256 和 5 分钟窗口校验,入账前会从 SnapEX Pay API 读取账单。
- 付款只记账一次:重复的 Webhook 不会再次为客户入账,数据库支持时结算在数据库锁下执行。如果结账后账单总额发生变化,则不会自动入账。
- FOSSBilling 的 Enable Test Mode 会创建无需真实资金的 SnapEX Pay 测试账单;网关处于正式模式时,测试付款永不生效。
- 每个 FOSSBilling 站点只结算自己创建的账单;非 USD 账单按固定汇率或 FOSSBilling 自身的汇率换算。
安装
- 从压缩包中将
SnapexPay.php复制到 FOSSBilling 根目录,使其位于library/Payment/Adapter/SnapexPay/SnapexPay.php(文件夹和文件名区分大小写),并确保 Web 服务器用户可读。 - 在后台进入 System → Payment gateways → New payment gateway,安装 SnapexPay。
- 打开该网关,填入来自 SnapEX Pay 后台的 API 密钥(权限
invoices.read、invoices.write),勾选 Enabled 和 Allow One Time Payments,然后保存。 - 复制网关页面上显示的 IPN Callback URL(
https://<your-fossbilling>/ipn.php?gateway_id=<id>),在 SnapEX Pay 后台(Developers)将其设为 Webhook URL,并将whsec_…密钥(仅在首次保存 URL 时显示一次)填入 Webhook secret。 - 开启 Enable Test Mode,支付一张账单并在 SnapEX Pay 页面确认测试付款;账单应变为 Paid。然后关闭测试模式。
设置
| API key | 来自 SnapEX Pay 后台 → API keys,权限 invoices.read 和 invoices.write。 |
|---|---|
| Webhook secret | Webhook 端点的 whsec_… 密钥。未签名或签名错误的 Webhook 会被拒绝。 |
| Network fee paid by | merchant:客户支付账单金额,手续费从您的到账金额中扣除。customer:SnapEX Pay 手续费和网络费用加在其上。 |
| Payment window, minutes | 1–1440,默认 60。 |
| USD per 1 unit of invoice currency | USD 账单忽略此项。其他币种填写固定汇率,或留空以使用 FOSSBilling 自身的汇率(System → Currencies 中必须有 USD)。 |
| Enable Test Mode | FOSSBilling 自带的开关:开 — SnapEX Pay 测试账单,关 — 正式账单。 |
| Partner ID | 可选:为您配置此模块的集成商的 Partner ID(SnapEX Pay 推荐计划)。如果是您自己安装,请留空。 |
| API URL | 留空。 |
常见问题
支持哪些 FOSSBilling 版本?
FOSSBilling 0.8.x 以及当前的开发版本。
New payment gateway 中没有 SnapexPay。
检查相对于 ipn.php 所在目录的路径 library/Payment/Adapter/SnapexPay/SnapexPay.php(区分大小写),以及 Web 服务器能否读取该文件。
客户已付款,但账单仍未支付。
打开 Invoices → Transactions。如果没有交易,请在 SnapEX Pay 后台检查 Webhook 投递情况,以及 URL 是否包含 ?gateway_id=。修复原因后,可以在后台重新处理该交易。
交易显示 "partially paid"、"already paid" 或 "total changed"。
这些情况永远不会自动入账。请在 SnapEX Pay 后台检查付款,然后手动添加余额或将账单标记为已支付。
多个 FOSSBilling 站点可以共用一个 SnapEX Pay 账户吗?
每个站点只结算自己的账单,但一个 SnapEX Pay 账户只有一个 Webhook URL,而适配器只通过 Webhook 确认付款。因此只有 IPN URL 被设为 Webhook 的站点能自动确认付款。
准备好接收加密货币了吗?
创建商户账户,获取 API 密钥并连接模块。每笔支付 1%,无月费。