几天以来,自适应支付(包括预批准和链式)似乎被打破了。 当我们将用户发送到 paypal 以完成订单(链接)或授权预批准(preapprovals)时,他们会得到一个通用的“无效交易”错误。测试了流程,我们得到了同样的错误,并查看控制台,我们可以在 paypal 对象目录中的 checkout.js 文件中看到这个错误:
Uncaught TypeError: PAYPAL.AP.Subflow is not a constructor
at checkout.js:11
(anonymous) @ checkout.js:11
PayPal 端似乎有问题。 有同样问题的人吗?解决方法?
干杯,菲尔
最佳答案
我们终于弄清楚出了什么问题。
尝试完全调试对 svcs 端点的调用,我们发现从几天开始(从 2013 年开始),我们开始从 paypal 服务器收到对我们的 SOAP 请求的奇怪响应:
{"faultstring":"Unknown Content-Encoding","faultcode":"HTTP"}
然后我们考虑了调用 paypal 服务器的“传输”中的一些问题,我们尝试在 header 中添加一些内容。
首先,我们发现在我们的 http header 请求中丢失了一些我们以前从未使用过的行,例如:
“X-PAYPAL-设备-IP 地址:”。 $_SERVER['REMOTE_ADDR'] 。 "\r\n";
但这并没有解决问题。 然后我们在 soap 客户端数组中添加了一个新行:
'压缩'=> SOAP_COMPRESSION_ACCEPT,
添加这个解决了问题,但没有人就这部分代码的要求向我们提出建议。可能这是一个 linux 问题,也许 paypal 已将某些服务器更换为较新的服务器,而较旧的服务器接受了 SOAP 请求,即使它没有使用此“压缩”参数,但在较新的环境中似乎是必需的。
无论如何,添加这条线一切都恢复正常,我们仍然有一个奇怪的时间响应(长)支付操作,而预批准操作的一切都很顺利,但这可能取决于不同的 paypal 服务器管理一个或另一个操作。
关于paypal - 自适应支付流程中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57269749/