4

有时在本地开发时,我的连接会中断,虽然这种情况希望不应该发生在生产环境中,但它会引发一个问题,即当 ActiveMerchant 发送到支付网关时,我可能应该处理它的超时,在我的例子中是 SagePay。

我在文档中看不到执行此操作的方法,我想知道是否有最佳实践方法来处理此问题?

4

1 回答 1

0

我相信这个问题与 AM 的 ruby​​ 实现有关(如果我错了,请纠正我)。

ActiveMerchantActiveMerchant::ConnectionError发生超时时引发(链接到源)。因此我们可以简单地处理异常。例如:

begin
  # Your ActiveMerchant staff here
rescue ActiveMerchant::ConnectionError => e
  # timeout handler
end

open_timeout此外,有时使用和read_timeout类属性(链接到源)控制超时可能很有用,以防出现以下情况SagePay

ActiveMerchant::SagePay.open_timeout = 5 # timeout for opening the connection is set to 5 seconds
ActiveMerchant::SagePay.read_timeout = 10 # timeout for reading from opened connection is set to 10
于 2017-10-02T18:36:26.670 回答