加密货币支付,指的是买家从自己的钱包或交易所账户,把数字资产直接转到商户的收款地址。对商户来说,最常用的是 USDT 这类与美元挂钩的稳定币:价格基本不波动,定价和对账都可以按美元算,不用像收 BTC、ETH 那样承担币价涨跌。
有一点需要先弄清楚:USDT 同时发行在多条区块链上,常见的有 TRON(TRC-20)、以太坊(ERC-20)和 BNB Chain。同样叫 USDT,在不同网络上是不同的资产,彼此不能直接互通。收款选哪条网络、怎么告诉买家,是整个接入里最重要的细节。
为什么越来越多商户接入 USDT 收款
- 跨境到账快:TRON 网络约 3 秒出一个块,一笔转账通常一分钟左右完成确认,不受银行营业时间和节假日影响。
- 手续费可预期:链上转账费用与金额大小无关,跨境大额收款的成本往往低于传统通道。
- 没有拒付:链上转账一旦确认就不可撤销,不存在信用卡那样的拒付(chargeback)纠纷。
- 全球买家都能付:有钱包或交易所账户就能付款,不依赖当地的银行卡体系。
不可撤销也意味着,退款需要商户另外发起一笔转账。稳定币本身也存在脱锚和发行方风险,收到的资金最好按自己的策略及时处理。
一笔 USDT 支付是怎么完成的
- 创建订单:商户服务器生成订单,确定应付金额、收款网络和有效期。
- 展示收款信息:收银台展示金额、收款地址(附二维码)和倒计时,并醒目标注网络,例如“仅支持 TRC-20”。
- 买家转账:买家从钱包或交易所向该地址转账。
- 链上监听与匹配:系统监听收款地址的入账,把链上交易和订单对应起来。
- 等待确认:交易达到约定的确认深度后才算到账,避免链上回滚带来的风险。
- 回调通知:向商户服务器发送带签名的回调,商户验签后更新订单状态、发货或开通服务。
- 对账:定期核对链上流水、订单记录和发货记录。
买家在页面上点“我已付款”,只能作为开始核对的信号,不能据此判定支付成功。支付结果必须以链上确认和服务端回调为准。
订单和转账怎么对上:两种常见做法
一单一地址:每个订单分配一个独立的收款地址,收到钱就知道是哪笔订单,匹配最干净。代价是地址数量多,资金分散在很多地址上,需要定期归集。
共用地址加唯一金额:多个订单共用少量地址,通过给金额加随机尾数(例如 100.003 USDT)区分订单。地址好管理,但只要到账金额和订单金额对不上,比如交易所扣了手续费,匹配就会失败,需要人工介入。
订单量小、客单价高的业务,用一单一地址更省心;订单量大、希望少管地址的业务可以考虑唯一金额,但一定要设计好金额不符时怎么处理。
接入时最容易踩的坑
- 选错网络:以太坊、BNB Chain 等网络的地址格式相同,买家选错网络也能转出去,但商户不一定能收到或找回。收银台要把网络写清楚,最好只支持一条网络。
- 少付和多付:部分交易所提币时会从转账金额里扣手续费,导致到账比订单少。要提前定好容差,以及少付时是补款还是退款。
- 重复通知:回调可能因为超时而重试,同一笔入账可能多次通知到商户。商户端要用订单号加交易哈希做幂等,避免重复发货。
- 过期后才到账:订单过期后款项才到,需要有补单或退款的流程,不能直接忽略。
- 地址投毒:攻击者会用首尾字符和你常用地址相同的相似地址给你发一笔小额转账,让它出现在交易记录里,诱导你之后从记录里复制到错误的地址。提醒买家只从收银台复制地址,商户自己转账时也要完整核对。
- 私钥与权限:自托管模式下资金在商户自己的钱包里,私钥要离线妥善保管。后台修改收款地址、回调地址等敏感操作要开启二次验证。
回调和对账的实践建议
- 先验签,再处理业务,不要只相信前端页面跳转的结果。
- 回调接口尽快返回成功,发货、开通等耗时逻辑放到异步任务里处理。
- 保存原始回调内容和交易哈希,出问题时可以直接到区块浏览器核对。
- 每天对一次账:链上入账、订单状态和发货记录三者要一致。
合规与风控
不同国家和地区对加密资产收款的要求差异很大,可能涉及牌照、KYC/AML、制裁名单筛查和税务申报,上线前请咨询当地的法律和税务顾问。业务上也建议为大额或异常交易设置人工审核。
自托管收款:资金直接进商户钱包
以 TSG Charge 为例,买家的付款直接进入商户自己的钱包地址,平台负责地址监听、订单匹配、回调通知和账单,不经手这笔资金。收银台只有在接口确认到账后才显示支付成功;回调地址保存后即锁定,修改需要通过谷歌验证器验证。
想了解接入细节,可以免费注册 TSG Charge,在控制台查看开发文档。
常见问题
USDT 收款多久到账?
以 TRON 网络为例,一般一分钟左右完成确认,具体时间取决于网络拥堵情况和商户设置的确认深度。
买家转错网络怎么办?
先拿到交易哈希,确认实际转账的网络。能不能找回,取决于这个地址在那条网络上是否由你掌握私钥;如果是交易所或托管平台的地址,通常要联系对应平台处理。
加密货币支付可以退款吗?
链上转账无法撤销。退款需要商户向买家另外发起一笔转账,发起前务必和买家确认收款地址和网络。
