商户遇到金额不对时,第一反应通常是「钱是不是少了」。但在绝大多数情况下,钱并没有丢,只是扣费发生在链路的某个环节,而商户看不到这个环节。把链路拆开,问题就清楚很多。
六个环节,环环都有成本
- 受理:顾客在终端扫码或刷卡,终端把交易请求发给服务商系统;
- 路由:服务商根据通道状态、费率、限额,决定这笔交易走哪条通道;
- 上送:请求以通道方要求的格式和签名方式发往通道;
- 清算:通道方完成资金清算,把交易结果和费用明细回传;
- 归集:服务商把多通道的交易汇总,形成对账数据;
- 结算:按约定周期打款给商户。
六个环节,每一步都可能产生费用,也都可能出错。受理阶段可能出现重复提交,路由阶段可能出现通道降级,上送阶段可能因为签名格式对不上被拒,清算阶段可能因为通道方延迟导致数据缺失。
看得见,才好排查
真正麻烦的不是出错,而是出错之后查不到。如果系统只记录了一个最终金额,那么一笔账对不上时,只能靠人工翻流水、逐个通道去问,一次排查可能要花掉半天。
反过来,如果系统在每一笔交易上都记录了通道、时间、请求号、通道返回码和费用构成,那么对账就是一次筛选的事。这也是我们在系统设计上一直坚持的原则:
金额可以计算,但过程必须留痕。只留结果的系统,等于把问题推给了明天。
为什么对账总在月底爆炸
很多商户的对账压力集中在月底,原因不复杂:日常不记录、月底靠汇总。而汇总表和明细对不上时,已经过了能逐笔追查的时间窗口。
更实际的做法是把对账做成日常动作——每天自动汇总一次,差异当天就能发现。通道方一般提供查询接口或对账文件,服务商要做的只是把它们按时拉回来、按统一口径归集、把差异标出来。
这件事的技术难度不高,难在坚持。而做到之后,月底那场对账战争基本就不会再发生。