soap - Paypal 自适应付款响应非常慢

标签 soap paypal wsdl paypal-adaptive-payments

当我们尝试联系 PayPal 自适应支付端点时,两者都在: https://svcs.paypal.com/AdaptivePayments/Pay (对于显式链式支付) https://svcs.paypal.com/AdaptivePayments/Preapproval (对于预先批准的付款)

自 7 月下半月以来,我们收到 paypal 的响应非常慢,超过 50 秒。响应到达后一切正常,但我们正在调查这个奇怪的时间响应,因为它给我们的用户带来了很多购物车丢弃。

首先,我们检查了对端点的 SOAP 调用和我们的请求信封以及一切(在过去 6 年中始终有效)似乎没问题。我们刚刚在 soap 客户端请求中添加了一个 'compression' => SOAP_COMPRESSION_ACCEPT, 行,因为它现在似乎是必需的(我们以前从未使用过它,但自从 7 月以来没有这一行我们就遇到了一个未知的内容编码错误)。不管怎样,从 7 月初/下半月开始,甚至在这个补丁之前就存在缓慢的响应。

然后我们测试了数据库中是否有损坏的表,但一切正常。

然后我们深入检查了在向 paypal 端点发出请求和响应之间我们做了什么,但我们除了打开调用和等待响应之外什么也没做。

我们首先定义我们的 header ,然后我们进行调用:

    $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 的答复,但同时欢迎任何建议。

最佳答案

经过数周的故障排除和无数次尝试从 PayPal MTS 获得任何建议(但没有任何有用的建议),我们终于弄清楚了真正发生的事情以及如何修复它(不是快速简单的修复),我'我将为少数可能同时遇到自适应支付 API 端点 soap 请求响应问题的人发布此解决方案。

首先,我们努力检查由于防火墙、网络问题或编码问题,我们手上没有任何问题,我们在生产(实时)环境中执行了大量测试(但真实的)订单,都使用用于链接支付和预批准操作的自适应支付 API 的支付操作,我们声明我们正在做的任何 svcs 端点连接尝试的 49 秒时间响应是由于 PayPal 服务器配置上的某些东西,某些东西(我们可以'不知道)具体关于 SOAP 连接(与后续数据信封无关)。

我们重写了代码的很大一部分,从 SOAP 连接切换到 cURL 连接,一切都重新开始工作,响应时间良好,大约为 1-3 秒,再次完全可以接受。

所有这些都在生产环境中进行,不幸的是,所有这些都没有来自 PayPal 状态网站的任何建议或给商家和应用程序开发人员的通知,也没有来自 MTS 团队。

因此,给 PayPal 技术团队的最终建议是,PayPal 自适应支付 svcs 端点服务器配置发生了一些变化,大约从 2019 年 7 月开始,在 7 月 10 日至 20 日期间(遗憾的是,我们无法说明确切的日期)停止了对 SOAP 请求做出快速响应并开始提供非常长的响应(通常为 49-51 秒)。

更改整个代码以通过 cURL 而不是通过 SOAP 打开连接和传输数据我们已经解决了问题,但这是一次技术冒险,因为没有人就此给我们任何建议。这是一个遗憾。

希望这对某人有用,这对我们来说是噩梦般的几周。

干杯,菲尔。

关于soap - Paypal 自适应付款响应非常慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57374284/

相关文章:

php - 使用 php SOAP 和 WSDL 的正确步骤是什么?

java - SOAP消息无法解析为java对象

具有 ADFS SAML 身份验证的 Java Web 服务客户端

Paypal 支付标准 : Callback URL

paypal - 新的 PayPal 移动 SDK 中的 CustomID

paypal - 在 PayPal 沙盒中使用 IPN 测试拒付/争议

java - WSDL 中名称相同但参数不同的两个操作

php - 通过 WSDL/SOAP 使用 Fedex Webservice 的问题

asp.net - REST 和 Web 服务之间的区别

php - 我如何通过 PHP 读取 SOAP 回复信封