Добрый день! Пытаюсь отправить данные на SOAP сервер. Нюансы коннекта опущу, представляю непосредственно пример данных. Есть вот такой массив: Код (Text): $order = array(); $order['Order'] = array(); $order['Order']['Partner']['Name'] = new SoapVar('Тестовый партнёр', XSD_STRING); $order['Order']['Partner']['ID'] = new SoapVar('1', XSD_INTEGER); $order['Order']['Partner']['ManagerID'] = new SoapVar('10', XSD_INTEGER); $order['Order']['Counterpart']['ID'] = new SoapVar('1', XSD_STRING); $order['Order']['Counterpart']['Name'] = new SoapVar('new conr', XSD_STRING); $order['Order']['Counterpart']['INN'] = new SoapVar('111', XSD_STRING); $order['Order']['Counterpart']['KPP'] = new SoapVar('222', XSD_STRING); $order['Order']['Counterpart']['Address'] = new SoapVar('adr', XSD_STRING); $order['Order']['Counterpart']['Email'] = new SoapVar('test@test.ru', XSD_STRING); $order['Order']['Counterpart']['Phone'] = new SoapVar('89999999999', XSD_STRING); $order['Order']['Counterpart']['Person'] = new SoapVar('test', XSD_STRING); При попытке отправить данные на SOAP сервер, логирую отправляемый запрос. А там такое: Код (Text): <?xml version="1.0" encoding="UTF-8"?> <env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns:ns1="http://xxxxxxxxx/"> <env:Body> <ns1:OrderCreate> <ns1:Order> <ns1:Partner> <ns1:Name>Тестовый партнёр</ns1:Name> <ns1:ID>1</ns1:ID> <ns1:ManagerID>10</ns1:ManagerID> </ns1:Partner> </ns1:Order> </ns1:OrderCreate> </env:Body> </env:Envelope> По непонятной для меня причине - контейнер Counterpart не записывается в запрос. Если удалить контейнер Partner, то записывается только контейнер Counterpart. Иначе говоря всегда записывается только первый контейнер. Остальные игнорируются. Что я делаю не так?
Может если убрать $order['Order'] = array(); и просто написать $order['Partner']['Name'] и $order['Counterpart']['Name'] то проканает.
@Asagi, сверьтесь со спецификацией на предмет ожидаемых сервером данных. Быть может, в методе/функции, которой пользуетесь, этот контейнер и не предусмотрен, либо должен передаваться иным образом.