Я пытаюсь подключиться к веб-службе с WS-Security, но получаю сообщение об ошибке «Неверный заголовок безопасности», вот SoapHeader:
<soapenv:Header>
<wsse:Security mustUnderstand="0" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
<wsse:UsernameToken Id="ABC-123">
<wsse:Username>*****</wsse:Username>
<wsse:Password>*****</wsse:Password>
</wsse:UsernameToken>
</wsse:Security>
</soapenv:Header>
А вот код Php для подключения:
<?php
$client = new SoapClient("https://www.weservice.com/service?wsdl");
//Body of the Soap Header.
$headerbody = array("UsernameToken" => array("Username" => "******",
"Password" => "******"));
//Create Soap Header.
$header = new SoapHeader("wsse", "Security", $headerbody);
//set the Headers of Soap Client.
$client->__setSoapHeaders($header);
try{
$result = $client->__soapCall("sendBill", array("fileName" => "filename",
"contentFile" => "byteArray"));
}catch(SoapFault $e){
echo $e;
}
Заранее спасибо.
Я, наконец, решил этот инцидент другим путем.
С Php файл zip в байтовом массиве не может быть отправлен по какой-то редкой причине (возможно, плохая поддержка Php вложений по протоколу soap).
Поэтому я изменил язык на C #, теперь я мог проверить фиктивный файл на мыльном сервисе, у меня были некоторые (решенные) проблемы, но я получил успешный ответ от сервиса.
Других решений пока нет …