У меня проблема при создании запроса SOAP с использованием PHP-библиотеки клиента SOAP.
Вот мой код:
$xmlr = new \SimpleXMLElement("<CustomerSearch></CustomerSearch>");
$xmlr->addChild('AuthorID', 'aaa');
$xmlr->addChild('UserID', 2)->addAttribute('type', 'lol');
$xmlr->addChild('UserPassword', 'dffds');
$xmlr->addChild('Email', 'fdfd');
$this->soapClient->__soapCall("OTA_HotelResNotifRQ", [ 'type' => 'lol', new \SoapVar($xmlr->asXML(), \XSD_ANYXML)] );
Этот код создает XML, который выглядит следующим образом:
<SOAP-ENV:Body>
<ns1:OTA_HotelResNotifRQ>
<param0 xsi:type="xsd:string">lol</param0>
<CustomerSearch>
<AuthorID>aaa</AuthorID>
<UserID type="lol">2</UserID>
<UserPassword>dffds</UserPassword>
<Email>fdfd</Email>
</CustomerSearch>
</ns1:OTA_HotelResNotifRQ>
</SOAP-ENV:Body>
Это не то, чего я пытаюсь достичь.Используя SimpleXMLElement, я могу достичь необходимого уровня гибкости.Однако узлы метода запроса создаются с использованием самого SoapClient.Это та часть, в которой у меня больше всего проблем, так как я не знаю, как ее настроить.Узлу также понадобятся атрибуты, и я просто не знаю, как его добавить.Окончательный запрос должен выглядеть так:
<SOAP-ENV:Body>
<ns1:OTA_HotelResNotifRQ type="lol">
<CustomerSearch>
<AuthorID>aaa</AuthorID>
<UserID type="lol">2</UserID>
<UserPassword>dffds</UserPassword>
<Email>fdfd</Email>
</CustomerSearch>
</ns1:OTA_HotelResNotifRQ>
</SOAP-ENV:Body>
Кто-нибудь знает, как это правильно сделать?Спасибо