免费活动的麻烦在名单,收费活动的麻烦在账。
接上在线支付之后,会出现一类特别难查的问题:钱付了,报名没成功;或者报名成功了,系统里查不到付款。
最常见的三种错位
一是回调丢失。用户付款成功,支付平台的异步通知没到你服务器,订单一直停在“待付款”。用户拿付款截图来找你,你只能手工核。
二是重复支付。有人点了两次,付了两笔,系统只认了一笔。
三是部分退款。退了一张票,订单总额变了,但名单没跟着变。
怎么设计才不容易乱
根本原则是订单是唯一的事实来源:支付状态、票的状态、签到的状态,都挂在这一笔订单上,不另建第二套记录。
再加一条主动查询:除了接收支付通知,隔几分钟主动向支付平台问一次状态。通知丢了也能补上。
每天该做的那次核对
把当天的支付平台流水导出来,和系统里的订单比一遍,重点看金额和笔数能不能对上。差异要及时查,拖到月末就查不清了。
对账不是为了查错,是为了在错误发生时第一时间知道。
嘉云优品(JYUM)把报名、付款、出票、退款、签到放在同一笔订单的五个状态下,任何一环都能追溯到具体的人和具体的金额。