php - php SOAP: 如何让它生成 <soap:Envelope 而不是 <SOAP ENV:Envelope?

  显示原文与译文双语对照的内容

我在这里是新的,并且正在尝试在论坛中找到如何使用 php 。

我马上把我的头发拉出来 !

花费无数年的时间来找出如何生成这个 header 。


<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'。


<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 。 帮助 !

时间:

类 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);

希望能解决你的问题

...