2017-02-14 31 views
1

我是新來肥皂,我有這個任務,我需要發送請求和接收響應。但是,我得到肥皂故障異常,說明缺少或無效的參數。我一直在尋找解決方案几個小時,但沒有一個爲我工作。使用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生成器。它將生成與構建請求所需參數相匹配的類,並且您將擁有與響應相匹配的類。另外,你將有類發送請求,所以如果你使用了正確的IDE和自動完成的Eclipse PDT,你將不會理解需要什麼參數。 我不能建議你任何其他的PackageGenerator項目來生成匹配SoapClient WSDL結構和服務的類。