[英]Online Hotel Booking System, Simultaneous Booking?
我被要求创建一个在线支付的在线预订系统,我想知道在2个客户同时预订同一房间的情况下该怎么办。
例如:
与此同时:
客户1和客户2预订了标准间,只有1间客房。 (房间可用性将显示仍有1个房间可用)。 然后他们同时点击“确认”按钮。
使用锁定构造(在这种情况下可能在数据库级别),以确保一次只能进行一次确认。 如果可能出现这样的竞争条件,你应该总是这样做。 通过这种方式,您将始终知道谁是第一个,并且您可以告诉其他用户他们太慢而无法确认。
您可能想要添加的另一件事是付款时间限制。 在许多系统中,当您确认某些内容时,您将有一定的时间来支付预订费用。 如果您未在该时间内付款,确认将过期,房间将再次可用。
有几种方法可以解决这个问题。
使用“临时”系统将预订标记为临时,例如10分钟。 然后,这些插槽将无法用于后续请求。 如果预订未在时间范围内完成,则该插槽将再次释放。 如果您在预订插槽之前获取所有客户详细信息,则辍学率应保持较低。
您必须将时间框架和“临时状态”告知预订者。 如果你有后续阶段,访问者可以停止,那么一个简单的JS计时器倒计时将有所帮助,并推动预订者沿着这个过程。
或者,允许双重预订,直到第一次出现时按下最后的“付费”按钮。 第二种方法转换得更好,第一种方法更“正确”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.