解释的很好啊。
其实可以稍稍改进一下,让这个系统更实时一些。假设A支付系统支付成功后,如果B支
付系统还在待等待输入支付密码这种状态,在支付成功后B系统会去回调12306,通知支
付成功,这个时候12306会发现订单状态已经是支付了,就可以从后台直接发起退款操作
把B支付系统的钱直接原路退回,而不用等每日结算再退。
【 在 cashew 的大作中提到: 】
: 标 题: Re: 大家抢火车票有没有遇到不同app抢到同一张票
: 发信站: 水木社区 (Tue Jun 27 09:17:28 2023), 站内
:
: 一看你就不是真码农,至少没做过支付系统,这不是锁能解决的。你在饿了么下一个单,跳支付宝支付,不支付但是支付界面不关,切回回饿了么选微信支付跳到微信,支付掉,再直接打开支付宝,从停留的支付界面继续支付。一笔订单重复支付就实现了。这种情况是通过每日结束后清算
: 哉死醋远丝畲淼模蛭Ц镀教挥心芰κ凳敝蓝┑プ刺丫⑸浠耍馐窃谏碳移教ㄏ低衬诘淖刺浠@砺凵弦部梢酝ü碳业饔弥Ц镀教ㄌ峁┑膚ebhook做实时通知,但是仍然会有race condition处理不干净而且大大增加系统设计复杂度,所以实际操作中并没有这么做。
: 【 在 tianzong 的大作中提到: 】
: : 没加互斥锁啊,抢到的票应该修改完状态,其它线程才能去访问操作
: :
:
: --
:
: ※ 来源:·水木社区
http://www.mysmth.net·[FROM: 120.204.147.*]
--
FROM 123.191.34.*