Я пытаюсь просто отправить RAW xml в webservice через PHP и SoapClient. Проблема в том, что когда я кодирую свой XML, он меняет порядок элементов в XML, который преобразуется в ассоциативный массив.Отправка Raw XML через PHP SoapClient request
// Initialize the Soap Client:
$this->_transactionServicesClient = new SoapClient($soapWSDLUrl);
Как или что было бы лучшим способом отправить следующий XML-код в мой SoapClient?
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://www.micros.com/pos/les/TransactionServices">
<SOAP-ENV:Body>
<ns1:PostTransaction>
<ns1:REQ>
<ns1:RequestHeader>
<ns1:InterfaceVersion>3.0.7</ns1:InterfaceVersion>
<ns1:ClientName>TRANS_SERVICES</ns1:ClientName>
</ns1:RequestHeader>
<ns1:CheckDetailEntries>
<ns1:MenuItem>
<ns1:ReferenceEntry>Pizza4</ns1:ReferenceEntry>
<ns1:Count>1</ns1:Count>
<ns1:Price>10.00</ns1:Price>
<ns1:ItemNumber>112001</ns1:ItemNumber>
<ns1:PriceLevel>1</ns1:PriceLevel>
<ns1:Seat xsi:nil="true"/>
</ns1:MenuItem>
</ns1:CheckDetailEntries>
<ns1:CheckHeaderRequest>
<ns1:CheckId>03:21:05.050505</ns1:CheckId>
<ns1:GuestCount>1</ns1:GuestCount>
<ns1:GuestInformation>
<ns1:ID>001</ns1:ID>
<ns1:FirstName>xxx</ns1:FirstName>
<ns1:LastName>xxx</ns1:LastName>
<ns1:Address1>xxx Rd</ns1:Address1>
<ns1:Address2>xx</ns1:Address2>
<ns1:Address3>xx</ns1:Address3>
<ns1:PhoneNum>xx</ns1:PhoneNum>
<ns1:UserText1>None</ns1:UserText1>
<ns1:UserText2>None</ns1:UserText2>
<ns1:UserText3>None</ns1:UserText3>
<ns1:GUID></ns1:GUID></ns1:GuestInformation>
</ns1:CheckHeaderRequest>
<ns1:OrderTypeNumber>1</ns1:OrderTypeNumber>
</ns1:REQ>
</ns1:PostTransaction>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Update/Разрешение: Вот код, который я использовал для расширения SOAP клиента и отправить мое сырое мыло Конверт: My answer below
Я в замешательстве - вы отправляете этот XML-код в службу SOAP, и он не обрабатывается или у вас есть XML, который вы хотите отправить внутри сообщения SOAP? – enygma
У меня XML, я хочу отправить сообщение с мылом. Когда я отправляю данные, закодированные в ассоциативном массиве, узлы теряют свой первоначальный порядок, который прерывает запрос. Пример: внутри CheckDetailEntries вы можете использовать теги MenuItem или Condiment. Но, чтобы связать Приправы с MenuItems, они должны быть в определенном порядке, который теряется при кодировании XML. Поэтому мне просто нужно отправить XML-строку методу PostTransaction для обработки. – Fostah
Есть ли другой способ, которым вы могли бы связать их? Опираясь на порядок входящего XML кажется немного хрупким для меня ... – enygma