有家做连锁零售的客户,小程序上线前一天才发现支付回调收不到。技术说是证书配错了,业务说是渠道没开通,两边耗了两天,开业活动只能推迟。这种事我见过不止一次,问题都不在技术难度上。
支付不是接个接口那么简单
很多人以为找技术对接一下 SDK 就完事。实际上要理清的东西不少:收款主体、结算账户、费率、退款规则、对账文件格式,还有不同渠道的异步通知机制。哪一项没提前定,后面都要返工,而返工往往卡在别人的审核周期上。
对账文件比接口更值得盯
接口调通只是开始,钱能不能对上才是关键。微信、支付宝每天都会给对账文件,里面有成交、退款、手续费。很多团队不接这个文件,靠自己的订单表算,一天差几块钱,一个月就是几百,谁也不愿意花时间去查,最后成了一笔糊涂账。
回调要幂等,退款要可追
支付回调可能重复推送,系统必须能识别同一笔订单不重复入账。退款也一样,一次失败要有重试,重试要有记录。这两条写不进代码,上线后半夜被电话叫起来的就是你,而且那时候业务正忙,更没人陪你查日志。
还有分账。连锁企业总部收款、门店分账、平台抽佣,这套逻辑如果一开始按单店写死,开到第十家店就得推倒重来。设计时把分账规则做成配置,多一层抽象,比事后改代码省事得多,也不会动一次改一次账单。
我们给客户做支付对接,通常会留一份上线检查清单:商户号、密钥、回调地址、证书有效期、对账文件下载、退款权限,逐项打勾。看着笨,但能避免九成的上线事故,也能让后面接手的人知道当时怎么配的。
支付对接的常见疑问
多个收款渠道能统一管理吗
可以,做一个支付网关层,把不同渠道的接口和回调统一成一套,业务代码只认这一层。
费率能谈到多少
这个由渠道按行业和流水定,我们能做的是帮你把资料准备齐、把渠道选对。
上线后发现对不上账怎么办
先把对账文件接上,用渠道数据为准回溯,多半是退款或者手续费口径的问题。
总结:支付这块技术不难,难在细节多。对账、回调、分账三件事在开工前想清楚,上线当天才不会手忙脚乱,也不至于开业第一单就出岔子。