2017-02-14 6 views
1

私は石鹸には新しく、このタスクは要求を送信して応答を受け取る必要がある場所です。しかし、欠落しているか無効なパラメータがあることを示すsoap fault例外が発生します。私は何時間も解決策を見てきましたが、誰も私のために働いていませんでした。PHPでパラメーターを持つSOAP関数を呼び出す

私のパラメータが正常に機能していないことは知っていますが、送信方法はわかりません。いくつかの解決策が述べられているが、それは私のために働いていないので、私はそれらを配列でラッパーしている。

あなたが私の状況を見て、私が状況を理解するのを助けることができれば、本当にありがたいです。

私はのSoapClientを使用してSOAPとの接続、および関数と型を取得する場合、私は、次の取得:

SOAP機能:

array (
     [0] => agentBalanceResult getAgentBalance(authorizationData $requesterAuthentication, agentIdentifier $targetAgent, string $productId, string $requestTag) 
) 

<?php 

SOAPタイプ:

Array 
(
[0] => struct authorizationData { 
       aliasCategory aliasCategory; 
       string aliasName; 
       string aliasPassword; 
       long mvnoId; 
     } 

[1] => struct agentIdentifier { 
       long actorId; 
       aliasCategory aliasCategory; 
       string aliasName; 
       long mvnoId; 
     } 
) 

送る私のクラス要求

class SendRequest { 

private $client; 

public function __construct(){ 

    $this->client = new SoapClient(
            "myurl", 
            [ 
             'location' => 'myurl' 
            ] 
        ); 

} 

public function sendRequestWithData(){ 

    //test parameters 
    $testParameters = [ 

     "authorizationData" => [ 
      "aliasCategory" => "*****", 
      "aliasName" => "*****", 
      "aliasPassword" => "*****", 
      "mvnoId" => "*****" 
     ], 

     "agentIdentifier" => [ 
      "actorId" => *****, 
      "aliasName" => "*****", 
      "aliasCategory" => "*****", 
      "mvnoId" => "*****" 
     ], 

     "productId" => "*****", 
     "requestTag" => "*****" 

    ]; 

    $this->client->getAgentBalance($testParameters); 

} 

} 

$send = new SendRequest; 
$send->sendRequestWithData(); 

// throws Uncaught SoapFault exception: [env:Server] Missing or invalid SOAP request parameters in 

答えて

0

私の最善のアドバイスは、WSDLを使用してPHPジェネレータを使用することです。リクエストを作成するために必要なパラメータと一致するクラスが生成され、レスポンスに一致するクラスが作成されます。さらに、Eclipse PDTなどの自動補完機能を備えた正しいIDEを使用する場合には、どのパラメータが必要なのか不思議ではないように、リクエストを送信するクラスが必要です。 私は、PackageGeneratorプロジェクトがSoapClient WSDL構造体とサービスに一致するクラスを生成することについて何も提案することはできません。

関連する問題