Spring 控制器在测试环境中被调用两次
Spring controller is getting called twice at test environment
我长期以来一直面临 spring 控制器的问题。即使在对这个 spring 控制器重定向问题进行了大量研究之后,也没有给出任何解决方案。
问题: 我们正在使用 Spring 进行一些支付集成,例如 Sofort、AliPay 和 PayPal。在本地机器(PC 桌面)上一切正常,而在测试环境(云部署服务器)上导致 PayPal 出现问题;但是,其余所有其他支付类型都工作正常。
商家服务器上有 PayPal 响应处理程序 url(控制器),它处理 paypal 支付响应,处理程序 url 被调用两次。因此,它不会给出适当的结果,因为它应该只被调用一次。
PayPal 响应处理程序 URL:
us/en-us/checkout/payment/paypal/handleResponse?token=EC-XXXXXXXXXXXX&PayerID=XXXXXX
观察:
a) 每当我们遇到 url 被调用两次这样的问题时。在 chrome 的网络选项卡上,JS 可能是问题所在。但是,我们在那里还没有找到这样的历史。
b) 我们在测试环境中使用负载均衡器。有时,负载均衡器会使 url 被调用两次。但是,我们在负载均衡器上没有找到这样的调用。
c) Spring 处理方法如下。
@RequestMapping(path = "/handleResponse", method = RequestMethod.GET)
public String handleResponse(@RequestParam(name = "token")
final String token, @RequestParam(name = "PayerID")
final String payerId)
d) PayPal 配置或 PayPal 服务器没有问题。如果我用下面的示例 url 访问浏览器,它会被调用两次,尽管它不是从 PayPal 发送的。因此,PayPal 没有问题。
伙计们,如果你能提出任何建议来追查它的根本原因。这对我有帮助。
提前致谢!!
我们已经给出了处理第二次调用的修复程序,但是,在进一步的测试中它仍然失败并找到了根本原因并给出了修复程序。
根本原因: PayPal 测试环境,需要超过 45 秒才能完成设置、获取、authorize/capture 和下订单请求,但应用程序服务器超时为 10那里的秒数失败了,因此它进行了第二次调用。
修复:我们已将服务器超时时间增加到 50 秒,并且它停止发出第二个请求。
我长期以来一直面临 spring 控制器的问题。即使在对这个 spring 控制器重定向问题进行了大量研究之后,也没有给出任何解决方案。
问题: 我们正在使用 Spring 进行一些支付集成,例如 Sofort、AliPay 和 PayPal。在本地机器(PC 桌面)上一切正常,而在测试环境(云部署服务器)上导致 PayPal 出现问题;但是,其余所有其他支付类型都工作正常。
商家服务器上有 PayPal 响应处理程序 url(控制器),它处理 paypal 支付响应,处理程序 url 被调用两次。因此,它不会给出适当的结果,因为它应该只被调用一次。
PayPal 响应处理程序 URL: us/en-us/checkout/payment/paypal/handleResponse?token=EC-XXXXXXXXXXXX&PayerID=XXXXXX
观察:
a) 每当我们遇到 url 被调用两次这样的问题时。在 chrome 的网络选项卡上,JS 可能是问题所在。但是,我们在那里还没有找到这样的历史。
b) 我们在测试环境中使用负载均衡器。有时,负载均衡器会使 url 被调用两次。但是,我们在负载均衡器上没有找到这样的调用。
c) Spring 处理方法如下。
@RequestMapping(path = "/handleResponse", method = RequestMethod.GET)
public String handleResponse(@RequestParam(name = "token")
final String token, @RequestParam(name = "PayerID")
final String payerId)
d) PayPal 配置或 PayPal 服务器没有问题。如果我用下面的示例 url 访问浏览器,它会被调用两次,尽管它不是从 PayPal 发送的。因此,PayPal 没有问题。
伙计们,如果你能提出任何建议来追查它的根本原因。这对我有帮助。
提前致谢!!
我们已经给出了处理第二次调用的修复程序,但是,在进一步的测试中它仍然失败并找到了根本原因并给出了修复程序。
根本原因: PayPal 测试环境,需要超过 45 秒才能完成设置、获取、authorize/capture 和下订单请求,但应用程序服务器超时为 10那里的秒数失败了,因此它进行了第二次调用。
修复:我们已将服务器超时时间增加到 50 秒,并且它停止发出第二个请求。