Я пытаюсь сделать мыльный заголовок, который бы выглядел так:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header>
<a-user xmlns="a">testName</a-user>
<a-pass xmlns="a">testPassword</a-pass>
</s:Header>
<s:Body>
...
</s:Body>
</s:Envelope>
Я довольно новичок в мыле, так что я почти уверен, что просто не понимаю, что я должен вставить для параметров конструктора SoapHeader, это то, что я сейчас пытаюсь, и он не может пройти проверку подлинности:
$authHeader = new SoapHeader("http://schemas.xmlsoap.org/soap/envelope/", "Envelope", array("Header" => array("a-user" => "testName", "a-pass" => "testPassword")));
Может кто-нибудь объяснить, как я должен перевести этот заголовок из XML в php soapheader, пожалуйста?
Изменить: Да, agunn, я использую реальное имя пользователя и пароль, я получаю исключения SoapFault, говоря «Поставщик не авторизован!» когда я делаю мой soapCall.
Вот включенная часть мыльного вызова:
$this->client->__setSoapHeaders($authHeader);
$response = $this->client->__soapCall("Foo", $params);
$authHeader = new SoapHeader("http://schemas.xmlsoap.org/soap/envelope/", "Envelope", array("Header" => array("a-user" => "testName", "a-pass" => "testPassword")));
Согласно спецификации SoapClient, вы должны попробовать вот так
$this->client->__setSoapHeaders(array($authHeader));
$response = $this->client->__soapCall("Foo", $params);
Других решений пока нет …