我试图找到一个更具体的答案,但没有找到任何有关此错误的帮助.可能只是因为我不熟悉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.
感谢Joe,我做了一些挖掘,发现Cybersource编写了模块来使用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对此错误的帮助.
归档时间: |
|
查看次数: |
3227 次 |
最近记录: |