关于火车票订票网站的几点改进意见

看大家这几天都在关注这个东西,我也提几点意见,和大家共享。

问题一:目前在火车票网站和银行支付网关之间存在很大的问题,导致钱付了,结果票没了,还要退款之类的

解决方案:为什么出现?订票在前,付款在后,中间有延迟,如果将这个过程倒过来想一下,

我们假设有票池TicketsPool和退票池ReTicketsPool

买票人FIFO队列BuyersList

买票人授权FIFO队列AuthorizeLis

支付FIFO队列PaymentList

等候退票人队列WaitForReTicketsList

1.系统线程对BuyersList中的买家资金账户和买家订票总值进行核对验证,如果资金满足,则将买家送入AuthorizeList。这个过程要对买家账户进行锁定,也就是说只有等一笔交易完毕以后该买家才能继续下一笔交易,目的是防止有人刷票。这步需要和银行网关做交互,如果符合条件的买家,该银行账户中的相应钱数被冻结,要等到后面买家买到票以后进行确认,钱款才会被从银行账户划走。

2.系统线程对AuthorizeList中的买家进行出票操作,一旦出票,则等于这笔交易成功,提示用户,票已买到,该用户被放入PaymentList

这期间会对票池中的票进行验证,发现票数为0,但是有退票的可能,这时如果把当前买家放入队尾,不太合适,所以要放入另外的队列。检查AuthorizeLis中买当次列车的买家放入另外一个WaitForReTicketsList

3.系统线程对WaitForReTicketsList中的买票人执行与2相同操作,但不同的是此时操作的是退票池ReTicketsPool

4.如果3中的买票人在等到火车出发那天仍没有等到退票,那么我们将通过银行支付网关对用户账户进行解冻操作。

5.如果2和3的操作成功则系统对PaymentList中的买家账号进行扣款操作。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值