2011-06-02 9 views
2

もっと具体的な答えを見つけようとしましたが、このエラーに関して役立つ情報が見つかりませんでした。私はMagentoやcybersourceモジュール、あるいはその両方に精通していないかもしれませんが、いずれにせよ、私はこのメッセージが私に教えようとしていることを理解できません。MagentoでCyber​​sourceモジュールを使用しようとするとSOAPエラーが発生する

これは例外で、デバッグ中に表示されるだけでなく、自分のマシン上にあるすべての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を取る)、私は最終的に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); 
} 

です。また、私はSOAPをインストールし、Apache 5.3でWindows環境で動作するPHP 5.3.6で有効にしました。

答えて

4

これは実際にSoapClientのサブクラス化に関するPHPエラーです。

class Foo { 
    public function doSomething() { 
     // ... 
    } 
} 

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

あなたの問題はほぼ確実にサーバーにインストールされているSOAPのバージョンの問題です:あなたはこのようなものを持っている場合基本的には、それが起こります。私はこれを特に見たことはありませんが、サポートされているバージョンとして認識していないPHPバージョン(5.3.6)と関係があります。

希望に役立ちます!

おかげで、ジョーへ ジョー・

+0

恐ろしい答え! –

7

おかげで、私はいくつかの掘削を行なったし、Cyber​​source社はPHP5.2.1で動作するようにそのモジュールを書き、そのバージョンでSOAPクライアントは、PHP 5.3よりも異なっていたことがわかりました。 __doRequestメソッドに、矛盾の原因となっていた項目が追加されました。私は

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

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

から からExtendedSoapClient.phpファイル内のコードを変更し、それがこのエラーを修正するように見えました。このエラーへのあなたの助けに感謝ジョー。

関連する問題