我记得原来在摩拜第一次做活动,好像是3元宝月的活动吧。
我听过一个有趣的事情。
事情很简单,大概是这样的:
当摩拜做活动的时候呢,很多人都想多充几次前,一次3个月,那充4次不就能12块钱骑一年了吗?(当然摩拜是不会这么想的)
所以就有人在活动支付时使用了三种支付手段,同时提交了订单,竟然真的成功了。(当然这是同事和我聊天时告诉我的,他是哪里听的我忘了)
开始我们都想不通这个问题。
后来我做了微信支付时,发现了可能是原因的原因。
微信支付在失败或成功的情况下会通知调用方,调用方会配置一个链接给微信。
也就是说我们调用和得到调用结果是一个异步的过程,而且这个时间段的长短是没有强制的规定。
所以说,如果摩拜的业务逻辑是:
调用付款-》判断是否参加活动-》等待结果-》得到结果-》设置参加活动
这样的过程的话,当三种支付并发的情况下,从等待结果到得到结果这个过程中,三种支付可能都会成功。
我这个想法不知道是否正确,如果正确,这里有两个前提,
1:三种支付结果都是异步通知的方式
2:摩拜是采用和我刚才假设的差不多的业务逻辑