Как установить нижний колонтитул в SoapClient

В PHP мне нужно отправить SOAP-запрос с параметром (Hash) в нижний колонтитул. Я использую SoapClient, но не могу понять, как это сделать, ни в интернет-поисках, ни в документация.

Это конверт, который я использовал в инструменте SoapUI для тестирования:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:abc="" xmlns:abc1="" xmlns:abc2="">
<soapenv:Header/>
<soapenv:Body>
<abc:Method>
<!--Optional:-->
<abc:request>
<abc1:Header>
<abc1:Username>Username</abc1:Username>
<abc1:Password>Password</abc1:Password>
<!--Optional:-->
<abc1:PublicKeyUid></abc1:PublicKeyUid>
</abc1:Header>
<abc1:Body>
<abc2:Id></abc2:Id>
</abc1:Body>
<abc1:Footer>
<abc1:Hash></abc1:Hash>
</abc1:Footer>
</abc:request>
</abc:Method>
</soapenv:Body>
</soapenv:Envelope>

Есть Класс SoapHeader е SoapClient :: __ setSoapHeaders метод, но я не нахожу ничего связанного с нижним колонтитулом.

У меня нет доступа к серверу, и я должен следовать этой структуре, упомянутой выше.

Что мне нужно знать, это как отправить параметр HASH, который находится внутри нижнего колонтитула с SoapClient.

Заранее спасибо за любую помощь или предложение.

0

Решение

Как IMSoP а также axiac прокомментировал нижний колонтитул (<abc1: Footer>) является просто подструктурой тела конверта, а не стандартным элементом конверта XML. Я этого не осознавал и поэтому не нашел в документации.

Поэтому, чтобы отправить HASH в запрошенную структуру, мне нужно передать многомерный массив в элементе body. Код выглядит так:

$arrParameters = [
'request'=>[
'Header'=>[
'Username'=>$strUsername,
'Password'=>$strPassword
],
'Body'=>[
...
],
'Footer'=>[
'Hash'=>$strHash
]
]
];

$SoapClient = new SoapClient(<WSDL URL>);

$resp = $SoapClient->method($arrParameters);

Спасибо IMSoP а также axiac!

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector