SagePay直接超时期

时间:2015-08-24 09:40:53

标签: timeout sagepay

我们在超时之前将SagePay(直接)的响应设置为30秒,并向客户发送“超时,再试一次”消息。有时,SagePay很少需要花费更长的时间来回应。

有一些(罕见)SagePay直接实例,其响应时间最长为2分钟(称为SagePay支持跟踪事务)。显然这是由于下游银行的系统需要很长时间才能做出回应。这会导致孤立的交易,我们告诉客户它已经失败,但SagePay已完成交易。客户然后再次尝试,我们最终得到重复的交易(或者,在一个案例中,在我们注册为失败的成功交易之后卡被拒绝)。

这种情况很少见,但是数十万笔交易已经发生了几十起,并导致客户服务和需要退还这些交易的客户部门感到悲痛。

问题:

  1. 您可以在SagePay Direct上设置超时以防止此情况吗?
  2. 什么是合理的应用程序超时值(Web应用程序的2分钟太长了?)
  3. 减少这种罕见事件的替代方案?例如,我可以查询SagePay以查看交易是否已完成? (但话又说回来,我们被卡住了,因为我们会在SagePay完成之前发送此查询,例如30秒后)
  4. “E”商务和“M”OTO交易之间是否存在超时差异?
  5. 更新1 - 9月2日:
    在9月1日再次发生SagePay在他们的数据库失败,因此“交易花费的时间比平时长”。这些交易花费了一分多钟才完成,到那时我们已经超时并告诉客户即使他们的交易最终完成也要再次尝试。

    当被问到时,SagePay表示他们的超时间隔是15分钟,这是等待HTTP响应的非常长的时间。默认情况下,IIS在请求被终止之前的最长时间为90秒。

    同样,有没有人为此做过变通办法?

    更新2 - 9月29日: SagePay因为网关故障而失败,它会导致一些飞行中的交易失败,我们得到以下信息:

      

    底层连接已关闭:预期的连接   保持活着由服务器关闭。

    然而,遗憾的是,其中一些交易已经成功,即SagePay向客户收费,但我们并未意识到这一点。

    有任何改进建议吗?

    2016年2月26日更新时间: 关于这一点,没有什么可以做的。您需要允许某个超时时间,比如30秒,然后将其作为错误处理。最好的选择是确保引发/记录警告,然后您可以在以后跟踪它。

    其中一件事永远无法解决......: - (

0 个答案:

没有答案