【问题标题】:SOAP Error when trying to use the Cybersource module within Magento尝试在 Magento 中使用 Cyber​​source 模块时出现 SOAP 错误
【发布时间】:2011-06-02 19:15:23
【问题描述】:

我试图找到更具体的答案,但找不到任何关于此错误的有用信息。可能只是我不熟悉 Magento 或网络资源模块或两者都不熟悉,但无论哪种方式,我都无法理解这条消息试图告诉我什么。

这是一个例外,它不仅会在调试时出现,而且如果我捕获了在我的开发机器上发出的所有 SMTP 流量,它会显示在失败时您会收到的电子邮件中。

Exception: Strict Notice: Declaration of Mage_Cybersource_Model_Api_ExtendedSoapClient::__doRequest() 
should be compatible with that of SoapClient::__doRequest()  in
C:\code\app\code\local\Mage\Cybersource\Model\Api\ExtendedSoapClient.php on line 75 
in C:\code\app\code\core\Mage\Core\functions.php on line 245

发生这种情况时我正在做的是尝试提交订单。我已将商品添加到购物车,登录,输入运输数据并查看订单,当我点击提交订单时,它会分块并给我这条消息。当我调试代码时(这需要 FOREVER),我终于到达了网络源模块试图通过 SOAP 系统进行授权的地步,然后它抛出了这个错误。

它错误的确切位置是围绕这个方法

protected function getSoapApi($options = array())
{
    $wsdl = $this->getConfigData('test') ? self::WSDL_URL_TEST  : self::WSDL_URL_LIVE;
    return new Mage_Cybersource_Model_Api_ExtendedSoapClient($wsdl, $options);
}

任何想法都会对查找内容甚至此消息的含义非常有帮助。此外,我在运行在 apache 2.2 的 windows 环境中的 PHP 5.3.6 中安装并启用了 SOAP。

【问题讨论】:

    标签: php soap magento


    【解决方案1】:

    感谢 Joe,我进行了一些挖掘,发现 Cyber​​source 编写了它的模块来使用 PHP5.2.1,并且在那个版本中,SOAP 客户端与 PHP 5.3 上的不同。 __doRequest 方法添加了一个导致不一致的项目。所以我将 ExtendedSoapClient.php 文件中的代码从 来自

    public function __doRequest($request, $location, $action, $version)
    

    public function __doRequest($request, $location, $action, $version, $oneWay = 0)
    

    这似乎解决了这个错误。感谢 Joe 帮助解决此错误。

    【讨论】:

      【解决方案2】:

      这实际上是一个关于子类化 SoapClient 的 PHP 错误。基本上,当你有这样的事情时,它就会发生:

      class Foo {
          public function doSomething() {
            // ...
          }
      }
      
      class Bar extends Foo {
          public function doSomething($totallyUnreasonableParameter) {
            // ...
          }
      }
      

      您的问题几乎可以肯定是您的服务器上安装的 SOAP 版本的问题。我没有特别看到这一点,但它可能与我不知道的受支持版本的 PHP 版本(5.3.6)有关。

      希望有帮助!

      谢谢, 乔

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-02-23
        • 2016-03-22
        • 2020-10-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-24
        相关资源
        最近更新 更多