我们有一个电子商务网站使用Authorize.net
作为支付网关。如何模拟来自authorize.net的扩展处理响应?
我们最近遇到了提交付款确认的人的问题,然后再次点击提交。这导致双重产品情况和/或双重付款。
有些事情要考虑:
- 支付确认页面是结果的PRG(后重定向消息获得),这是安装在用户提交他们的付款之前
- 我们拥有的功能在实际上会对请求的每个部分起作用的地方(请参阅下面的描述)
- 这种情况只适用于Authorize.net事务比平时更长的情况。
- 这是不是在生产中,我们只是在寻找一种方法来测试这个新功能来防止这种行为。
的防护件
我们必须遵循以下过程一个多步骤的结账方式:
- 产品选择
- 付款项
- 确认订单/提交付款
- 收据
在过程的每一步执行该检查是否用户具有当前的“订单”,其具有多个状态中的一个的服务的呼叫:started
,processing
或complete
。
如果订单是started
,它会将它们重定向到结账流程的第一页。 如果订单是processing
,它会将它们重定向到占位符页面,该页面每2秒执行一次ajax请求以检查订单状态。订单完成后,它们被重定向到receipt
页面。 如果订单为complete
,则会立即将其重定向到receipt
页面。
的问题
由于这个功能真的是唯一有效的在处理交易需要更长的时间,它给我们带来麻烦测试它 - 有几个原因:
- 我们的开发服务器速度慢,并且在应用程序甚至呈现页面之前,
Authorize.net
将更有可能响应我们的请求。 - 如果我们通过使用PHP函数
sleep()
虚拟响应,它会阻塞线程并且什么都不运行,我们和[1]在同一条船上。
我们希望什么
我不知道是否有办法通过一些参数进行Authorize.net
以较慢的方式响应请求,或者如果有另一种方式来做到这一点。我欢迎任何和所有想法!
完美:)这将工作出色! – 2013-04-25 18:03:40