尝试在Magento中使用Cyber​​source模块时出现SOAP错误

Jay*_*Jay 2 php soap magento

我试图找到一个更具体的答案,但没有找到任何有关此错误的帮助.可能只是因为我不熟悉Magento或cybersource模块或两者,但不管怎样,我只是无法理解这条消息试图告诉我的内容.

这是一个例外,不仅在调试时显示,而且如果我捕获在我的开发机器上发出的所有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
Run Code Online (Sandbox Code Playgroud)

发生这种情况时我正在尝试提交订单.我已将商品添加到购物车,登录,输入运输数据并查看订单,当我点击提交订单时,它会暂停一段时间并给我这条消息.当我通过代码调试(需要FOREVER)时,我终于到了cybersource模块试图通过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);
}
Run Code Online (Sandbox Code Playgroud)

任何想法对于寻找什么甚至是这个消息的含义都非常有帮助.另外,我在使用apache 2.2的Windows环境中运行的PHP 5.3.6中安装并启用了SOAP.

Jay*_*Jay 7

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

public function __doRequest($request, $location, $action, $version)
Run Code Online (Sandbox Code Playgroud)

public function __doRequest($request, $location, $action, $version, $oneWay = 0)
Run Code Online (Sandbox Code Playgroud)

这似乎解决了这个错误.感谢Joe对此错误的帮助.