【问题标题】:Paypal Adaptive Payments response very slowPaypal Adaptive Payments 响应非常缓慢
【发布时间】:2019-12-13 21:40:56
【问题描述】:

当我们尝试联系 PayPal Adaptive Payments 端点时,两者都在: 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 端点的请求和响应之间所做的事情,但除了打开呼叫并等待响应之外,我们什么也没做。

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

    $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;

}

Pay 操作的情况非常相似,我们在 paypal 响应中也有相同的 50-52 秒延迟。

在正常行为中,我们确实希望在 1-5 秒之间做出响应。 我们认为这是 paypal 服务器上的问题,我们正在等待 MTS 的答复,但同时欢迎任何建议。

【问题讨论】:

    标签: soap paypal wsdl paypal-adaptive-payments


    【解决方案1】:

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

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

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

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

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

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

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

    干杯,菲尔。

    【讨论】:

    • 对于那些受影响的人,请考虑该解决方案还可以,但需要一点集成。对于来自我们桌面网站的 cURL 请求,使用设置 XML 格式的请求标头和 JSON 格式的响应标头,一切正常。出于某种原因,我们不知道(几乎令人难以置信)来自应用程序的迷你浏览器的相同代码不起作用,我们不得不将标头请求从 XML 更改为 NV (NVP)。
    猜你喜欢
    • 2012-06-28
    • 2020-07-29
    • 2013-03-22
    • 2013-09-28
    • 2013-09-14
    • 2012-12-03
    • 2014-01-18
    • 2013-03-26
    • 2013-09-13
    相关资源
    最近更新 更多