Я пытаюсь подключиться к службе WCF из PHP с помощью класса SoapClient.Я могу успешно подключиться и пройти через API с помощью WCFStorm, однако не могу правильно построить данные заголовка для аутентификации из SoapClient.Рабочий запрос WCF будет выглядеть следующим образом:
<MyMethod>
<OutgoingHeaders attr0="MsgHeaderArray" isNull="false">
<MsgHeaderArray0>
<Name>ApiKey</Name>
<Namespace>http://www.service.com/namespace</Namespace>
<ItemType>System.String</ItemType>
<Value>ABC123</Value>
<Direction>Outgoing</Direction>
</MsgHeaderArray0>
</OutgoingHeaders>
<MethodParameters>
<colour>Red</colour>
<size>Large</size>
</MethodParameters>
</MyMethod>
Код, который я использую для подключения к API и вызова метода:
$params = array(
'colour' => 'Red',
'size' => 'Large'
);
$service = new SoapClient('http://www.service.com/service.svc?wsdl');
$header = new SoapHeader('http://www.service.com/namespace', 'ApiKey', 'ABC123', FALSE);
$service->__setSoapHeaders(array($header));
$service->MyMethod($params);
Однако я получаюошибка доступа запрещена, я полагаю, потому что SoapHeader отформатирован неправильно?
SoapFault: Access is denied. in SoapClient->__call()
Спасибо за любую помощь, которую вы можете предоставить.