跟踪付款在 10 分钟内完成
Posted
技术标签:
【中文标题】跟踪付款在 10 分钟内完成【英文标题】:Tracking payment is done within 10 minutes 【发布时间】:2014-01-07 22:45:39 【问题描述】:我想开发一个预约支付系统。 预约后 10 分钟前未付款即表示我已取消预约。
I am using ebs payment system.
预约后将进入 ebs 网站。 我如何跟踪付款可以在 10 分钟内完成。 我是否需要为此创建线程,如果没有得到所需的结果意味着我必须取消该约会?
How can i do this?
【问题讨论】:
【参考方案1】:我从未使用过 EBS,也无法在线找到 API 规范。但是,一般的方案是服务将在成功交易后将用户重定向到某个 pingback URL。这个 pingback URL 包含事务 ID,因此您只需要一个简单的 servlet 来检查 EBS 服务是否具有给定 ID 的事务确实成功。检查后,您可以在 html 响应中向用户发送消息,并在系统中触发所需的操作。
关于取消部分,您可以安排一个 cron 作业(例如使用 Quartz 调度程序),定期检查未付的约会并丢弃那些太旧的约会。但是我认为 10 分钟是一个非常短的时间,因为付款本身可能会持续超过 10 分钟。
更好的方法是给用户 10 分钟的时间来完成订单。最终订单仍然可以付款、未付款甚至取消,但不会被定期作业丢弃。
【讨论】:
是的,我做到了。运行正常。如果付款未完成(用户关闭浏览器)或没有响应,我如何跟踪 10 分钟? 您可以安排一个每 X 分钟运行一次的 cron 作业,并丢弃未付费的约会。 注意 10 分钟似乎太短了。如果用户在完成付款之前在 EBS 网站上停留 15 分钟会发生什么?如果付款本身需要超过 10 分钟才能完成,会发生什么?我估计用户不会很高兴,你得回很多钱 好的,谢谢。我将完成 cron 工作。但是在这里,您谈论的是一个调度程序,它在一段时间内重复检查所有约会是否已付款。未付款的约会在该时间间隔内被取消。但我想要特定的一个约会,我必须跟踪它是否已付款在 10 分钟内。(不是所有约会)。通过 cron 工作我可以做什么? 所有约会都存储在一张表中。在您的示例中,每 10 分钟执行一段代码,该代码将丢弃超过阈值的未付费预约。假设这段代码立即执行并在它应该执行的那一刻开始,您将有一个约会可以在您的系统中保持 10 到近 20 分钟之间的无偿状态。如果您按任务安排作业,您可能需要更多系统资源以上是关于跟踪付款在 10 分钟内完成的主要内容,如果未能解决你的问题,请参考以下文章
Django - 特定时间后的transaction.atomic回滚