php soap:如何让它生成

时间:2012-06-18 08:53:15

标签: php soap

我是新手,并一直在试图弄清楚如何使用PHP肥皂的论坛。

我很快就会脱掉头发!

花了数年时间试图弄清楚如何生成这个标题。

<AutenticationToken>
      <Username>admin</Username>
      <Password>123456</Password>
   </AutenticationToken>

最终使用了这个:

$sh_param = "<AutenticationToken><Username>admin</Username><Password>123456</Password></AutenticationToken>";
$auth = new SoapVar($sh_param, XSD_ANYXML, null, null, null);
$headers = new SoapHeader($wdsl, 'AuthenticationToken', $auth);

它会像这样生成'ns' - &gt;当我使用这种方法时。

<ns2:AuthenticationToken>
  <item>
   <key>Username</key>
   <value>admin</value>
  </item>
  <item>
   <key>Password</key>
   <value>123456</value>
  </item>
</ns2:AuthenticationToken>


$sh_param = array( 
                    'Username'    =>    'admin', 
                    'Password'    =>    '123456'); 
 $headers = new SoapHeader($wsdl, 'AuthenticationToken', $sh_param); 

现在我需要让它从<soap:Envelope更改为<SOAP-ENV:Envelope。 救命啊!

1 个答案:

答案 0 :(得分:1)

类SOAPStruct

{

function __construct($user, $pass) 
{
    $this->Username = $user;
    $this->Password = $pass;
}

}

//set username and password
$auth = new SOAPStruct("admin","123456");

//soap header object
$header = new SoapHeader("http://gateway.asiagategroup.com/","AutenticationToken",$auth,false); 
$client->__setSoapHeaders($header);

希望这能解决您的问题