当我们尝试联系PayPal自适应付款终结点时,请访问:https://svcs.paypal.com/AdaptivePayments/Pay (用于显式链接付款) https://svcs.paypal.com/AdaptivePayments/Preapproval (用于预先批准的付款)
自7月下半月以来,我们从paypal得到的响应非常慢,超过50秒。在响应到达后,一切正常,但我们正在调查这个奇怪的时间响应,因为它给我们的用户带来了大量的购物车。
首先,我们检查了对端点的SOAP调用和请求信封,所有东西(在过去6年中总是正常工作)看起来都很正常。我们刚刚在soap客户端请求中添加了一个“压缩”=> SOAP_COMPRESSION_ACCEPT行,因为现在似乎需要它(我们以前从未使用过它,但是自从7月份以来,我们得到了一个未知的内容编码错误,没有这一行)。无论如何,即使在这个补丁之前,从7月初/下半月开始就存在响应缓慢的问题。
然后我们测试了数据库中是否有一些损坏的表,但一切正常。
然后,我们深入检查了在对paypal端点的请求和响应之间做了什么,但除了打开调用并等待响应之外,我们什么也没做。
我们首先定义我们的头,然后进行调用:
$soapClient = new SoapClient($this->wsdl,
array('location' => $this->EndPointURL."AdaptivePayments/Preapproval/",
'uri' => "urn:Preapproval",
'soap_version' => SOAP_1_1,
'trace' => 1, //debugging option
'compression' => SOAP_COMPRESSION_ACCEPT,
'stream_context' => $ctx)); //adding the stream context option containing the http headers
$response = objectToArray($soapClient->Preapproval($params));
} catch (SoapFault $e) {
$response = objectToArray($e);
}
return $response;
}
这件事与支付操作非常相似,我们在paypal响应中也有相同的50-52秒延迟。
在正常的行为中,我们确实希望在1-5秒之间得到响应。我们认为这是一个关于paypal服务器的问题,我们正在等待MTS的答复,但同时欢迎任何建议。
发布于 2019-08-11 18:07:30
经过几周的故障排除和无数次尝试从API那里获得任何建议(没有任何有用的建议),我们终于弄清楚了真正发生了什么,以及如何修复它(不是一个快速简单的修复),我将为少数可能在soap请求到自适应支付PayPal endopoint时遇到响应问题的人发布这个解决方案。
首先,我们努力检查由于防火墙、网络问题或编码而导致的手头没有任何问题,我们在生产(实时)环境中执行了大量测试(但实际)订单,既使用用于连锁支付的自适应支付应用编程接口的Pay操作,也使用预审批操作,并且我们声明,我们正在进行的任何svcs端点连接尝试的49秒响应是由于PayPal服务器配置上的某些东西,一些(我们不知道的)特定于SOAP连接的东西(与后续数据信封无关)。
我们已经重写了很大一部分代码,从SOAP连接切换到cURL连接,一切都以1-3秒的顺序以良好的时间响应重新开始工作,完全可以再次接受。
所有这一切都是在生产环境中进行的,不幸的是,所有这些都没有来自PayPal状态网站的任何建议,也没有来自机械师和应用程序开发人员的通知,也没有来自MTS团队的任何建议。
因此,给PayPal技术团队的最后一个建议是,PayPal自适应支付svcs端点服务器配置发生了一些变化,大约从2019年7月10日到20日(不幸的是,我们不能说明确切的日期)停止,以快速响应SOAP请求,并开始进行非常长的响应(总是49-51秒)。
将整个代码改为通过cURL打开连接并传输数据,而不是通过SOAP。我们已经解决了这个问题,但这是一次技术冒险,因为没有人在这方面给我们任何建议。这是一个遗憾。
希望这能对某些人有用,对我们来说是噩梦般的一周。
干杯,菲尔。
https://stackoverflow.com/questions/57374284
复制相似问题