SaaS 接入 USDT 收款:账单续费、会员余额与权益开通
SaaS USDT收款需要把软件服务账单、支付订单和账户权益可靠关联。客户付款之后,是否续费、开通哪档服务、延长多久,仍由 SaaS 业务系统决定。UUGate 提供收款入口、状态查询与到账回调,不替代你的订阅与权益规则。
按账单付款还是预充值
按月、按年销售软件服务时,可为每张续费账单创建固定金额收款订单;客户按账单金额主动付款。按用量消费或账户预存,可为会员绑定独享地址,确认充值后由业务系统增加余额,再按自己的规则消费。
账单模式保存账单与平台 orderNo 的对应关系;预充值模式保存会员与 bindKey、网络和币种的对应关系。两个模式的实收金额和业务处理规则分别设计。
为软件账单生成 USDT 支付入口
在服务端确定账单应付金额、服务档位和有效期,使用创建收款订单生成付款入口。保存 merchantOrderNo、orderNo、cashierUrl 与 expireAt,客户从账单页打开在线收银台。
USDT 当前支持 TRC20 和 BEP20;如需 USDC,可使用 BEP20 或 SPL。客户必须选择账单指定的币种和网络。价格为商户的业务报价,不将稳定币等值政策宣传成实时汇率或法币兑换。
付款后怎样开通或延长权益
服务端验证收款回调,核对商户、订单、网络、币种、实收与 completed 状态,再按已保存的账单规则更新账户。使用唯一支付记录和数据库事务,避免重复通知造成重复延长有效期。
演示:一张月度服务账单定价 20 USDT,确认对应订单完成后按商户规则延长一个服务周期。价格仅为流程示例,不是 UUGate 套餐,也不是客户案例。保留原账单、付款记录与权益变更记录,便于撤销或补偿业务动作。
长期账户预充值怎样处理
使用独享地址绑定给已认证会员分配长期充值地址。完成每笔充值确认后,按 paidAmount 更新账户余额;每笔 orderNo 单独去重,不按会员标识屏蔽后续充值。
SaaS 自己决定余额消费、余额不足提醒与服务到期规则;链上钱包余额与 SaaS 用户的业务余额分开核对。接入细节见钱包到账通知指南。
账单续费不等于自动扣款
客户通过支付链接付款属于主动续费;创建长期地址也不会授权平台从客户钱包定期扣款。当前插件不提供循环扣款,WHMCS 适配仍为测试版,不支持自动续费扣款。不要用“订阅支付”暗示已提供钱包授权扣款功能。
如果业务需要定期出账、到期提醒或从已充值的内部余额扣除费用,由 SaaS 业务系统实现并向用户解释规则。插件支持边界见插件接入文章。
回调缺失、过期和重复支付怎么处理
未收到通知时按已保存的 orderNo 查询,核实付款状态后恢复业务处理。少付、多付、过期后到账或付款期间账单已取消,进入人工复核,不直接开通权益。建单超时且没有平台单号时,先核实创建结果,不能假定相同商户单号自动保证幂等重试。
- 未付款、错误签名和金额不一致不能开通服务。
- 重复回调只记录一次付款与一次权益变更。
- 数据库写入中断后核对已有副作用,再恢复,避免重复交付。
- 账单付款和长期充值分别验证,不在前端保存 API Key。
接入前核对能力与成本
从USDT收款接口、独享地址方案选择模式,在定价核对套餐月费、地址额度与网络费。开发可使用Node.js SDK或PHP / Laravel SDK,把签名与入账放在服务端。