PHP Soal Client, атрибуты узла метода soapCall (), как добавить - PullRequest
0 голосов
/ 29 ноября 2018

У меня проблема при создании запроса 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>

Кто-нибудь знает, как это правильно сделать?Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...