我有一个问题,如果你能帮我解决一些想法,我将不胜感激。
在在线酒店或机票预订系统中,通常为用户分配特定时间来完成其注册/付款等,并且在此期间系统保留该用户的预订。如果用户在此期间无法完成注册,则系统超时并且不允许用户继续进行。系统会拒绝其他用户的预订。
我的问题是,如果用户被带到支付网关系统(paypal等)并且他们将所有分配/保留时间花在支付页面上,并且在成功支付后他们返回到网站,将即使用户用完了他分配的时间,系统仍允许他们完成预订?
这在典型的预订系统中如何运作?
非常感谢提前。
答案 0 :(得分:2)
如果您正在使用与支付网关的同步连接,那么一旦启动支付流程,预订状态应该会发生变化,例如“付款待处理”。如果支付网关响应失败(或您有超时),则将其报告给用户,由您决定是否延长会话时间。
如果您正在使用异步连接,例如将用户重定向到PayPal页面并等待回复,那么您可能需要考虑授权而不是付款:如果用户在以后重定向回您的网站会话时间限制已过,取消授权并通知用户他们花了太长时间,需要重新开始。如果他们在他们的时间限制内,请告诉PayPal完成交易并确保您获得资金。
希望有所帮助:)
答案 1 :(得分:0)
系统应该让您支付预订费用,应该弹出一些警告。如果您成功付款,那么您可能需要出示一张显示您已付款的机票,因此公司要么退款还是给您房间。
每一点都应该充满期待,这就是你应该关注的工作,而不是你设计算法的方式。
想一想,如果你超过了提供一些工作的最后期限,会发生什么。
答案 2 :(得分:0)
您的销售算法必须具备一定的智能。就像推销员试图完成交易一样。
他会知道这是一位老太太,可能需要一段时间,但是当她下定决心时,她会全额付款。
或者他是一个胡思乱想的老人,他总是会在支票上说明支票。
计算机只能在没有满足或理解的情况下进行最佳猜测。
因此,您的最佳猜测将基于过去的回复并允许适当的超时。 例如监控您网站上表单的平均输入时间。一个老人可能会被慢慢的互联网连接模拟。
答案 3 :(得分:0)
与PayPal很好,您可以进行付款授权..这将从客户的PayPal帐户中暂停这笔钱。
在aothrization之后,它将以事务ID发送回您的系统 然后,您可以检查预订是否已超时。
如果是这样,您可以通知用户它已超时且未收费。然后,您使用交易ID取消交易以释放其资金
如果没有超时,您可以获取资金。
https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_html_authcapture