2012-06-18 4 views
0

나는 이것에 관해서 새롭고, PHP의 비누를 사용하는 방법을 알아 내려고하는 포럼을 통해 열중하고있다.php soap : 생성하는 방법 <SOAP-ENV : Envelope 대신 <soap : Envelope?

곧 내 머리카락을 꺼내겠습니다!

이 헤더를 생성하는 방법을 알아 내려고 노력하고 있습니다.

<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'을 생성 유지 -> I이 방법을 사용하는 경우.

<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로 변경 얻을 필요가있다. Help!

답변

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

희망 클래스