2017-02-14 92 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结构和服务的类。