PHP SoapClient и создание заголовка

Я пытаюсь создать собственный заголовок с помощью PHP SOAP CLient, который будет выглядеть так

  <soap:Header>
    <AuthorizationToken xmlns="http://www.avectra.com/OnDemand/2005/">
      <Token>string</Token>
    </AuthorizationToken>   </soap:Header>

Мой код выглядит так:

      $client = new SoapClient("http://nftpsandbox.avectra.com/xweb/netFORUMXMLONDemand.asmx?WSDL",array("trace" => 1));

    try {

        $header = new SoapHeader('http://www.avectra.com/OnDemand/2005/', 'AuthorizationToken', $token, false);
        $client->__setSoapHeaders(array($header));              

        $result = $client->CheckEWebUser(array('szEmail' => $userName , 'szPassword' => $password));

    }
    catch (SoapFault $result)
    {
        echo $result->faultstring;
    }   

    catch   (Exception $result){
    } 

Но заголовок запроса, который я получаю, выглядит так:

<SOAP-ENV:Header>
  <ns1:AuthorizationToken>
     <ns1:Token></ns1:Token>
  </ns1:AuthorizationToken>
</SOAP-ENV:Header>

Любая идея, почему узел Token пуст, когда $token имеет значение?

1 ответ

Решение

С SimpleXMLLement трудно справиться, попробуйте передать простой экземпляр stdClass

$auth = new stdClass();
$auth->Token = '123';

$header = new SoapHeader('http://www.avectra.com/OnDemand/2005/', 'AuthorizationToken', $auth, false);
Другие вопросы по тегам