日淘潮牌被重复扣款两次,亏了我五百多
日淘潮牌被重复扣款两次,亏了我五百多
上个月Supreme发售联名款,一个老客户下单抢了两件卫衣。他付款时网络卡了一下,多点了一次确认,结果系统扣了两次款,一共一千二。我这边订单只生成了一单,但对账时发现PayPal进来两笔。客户还没发现,但我已经多扣了人家五百多。退回去吧,手续费要损失十几刀;不退吧,口碑就砸了。
这种事不是第一次了。去年做代购转运时也遇到过,客户在微信转了账,我这边手动录单,结果他以为没成功又转了一次。后来才搞明白,根本原因是支付回调没有做幂等设计——同一个订单的重复通知应该只扣一次款。但手动操作哪管这些,全靠人眼盯。
我踩过的坑总结一下:
- 重复扣款 — 客户多点一下付款按钮,系统没拦住。解决办法是每个订单生成唯一请求ID,支付回调先查这个ID有没有处理过,处理过就直接返回成功不再扣款。数据库里加个唯一索引,防重更稳。
- 汇率不同步 — 客户付美元,我去1688采购用人民币。日元去年单月贬了快6%,我按老汇率报价,一单亏了十几块。后来做了汇率缓存,Redis每五分钟拉一次最新价,订单生成那一刻就锁定,退款也按原路转换,至少不会出现“退少了”的投诉。
- 物流状态靠截图 — 以前每天花两小时查快递单号截图发客户。现在用taocarts把物流轨迹自动推微信,省了不少功夫。
说两个实在的缺点(免得你们觉得我吹系统):
- 这套东西初期配置很折腾,汇率接口要申请、物流API要对接,光调试就花了两周。
- 学习成本不低,团队里有人用了两个月还搞不清拆包合包的规则怎么设,不如Excel直观。
但扛过初期,日单七八十的时候真不用熬夜了。你们有没有遇到过重复扣款或者汇率亏钱的事?评论区说说怎么处理的。