Структура массива под SOAP запрос

406
22 марта 2017, 19:09

У меня есть вот такой XML, который прекрасно работает в SOAPIU:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/"
                  xmlns:wssc="http://schemas.datacontract.org/2004/07/WSSC.V4.DMS.EKV.WssDocsService">
    <soapenv:Header/>
    <soapenv:Body>
        <tem:CreateDocument>
            <!--Optional:-->
            <tem:parameters>
                <!--Optional:-->
                <!--Optional:-->
                <wssc:DocType>01</wssc:DocType>
                <!--Optional:-->
                <!--Optional:-->
                <!--Optional:-->
                <wssc:FieldValues>
                    <wssc:BaseDocumentField xsi:type="wssc:DocumentField"
                                            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                        <!--Optional:-->
                        <wssc:Name>value1</wssc:Name>
                        <!--Optional:-->
                        <wssc:Value>email@email.email</wssc:Value>
                    </wssc:BaseDocumentField>
                    <wssc:BaseDocumentField xsi:type="wssc:DocumentField"
                                            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                        <!--Optional:-->
                        <wssc:Name>content</wssc:Name>
                        <!--Optional:-->
                        <wssc:Value>just text</wssc:Value>
                    </wssc:BaseDocumentField>
                    <wssc:BaseDocumentField xsi:type="wssc:DocumentField"
                                            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                        <!--Optional:-->
                        <wssc:Name>name</wssc:Name>
                        <!--Optional:-->
                        <wssc:Value>number</wssc:Value>
                    </wssc:BaseDocumentField>
                </wssc:FieldValues>
                <wssc:UserMail>email@email.email</wssc:UserMail>
            </tem:parameters>
        </tem:CreateDocument>
    </soapenv:Body>
</soapenv:Envelope>

Такую же структуру мне нужно сгенерировать средствами PHP. В итоге получился вот такой массив:

<?php
$params = array(
    'parameters' => array(
        'DocType' => '01',
         'UserMail' => 'email@email.email',
        'FieldValues' => array(
            'BaseDocumentField' => array(
                    'name' => 'something',
                    'value' => 'something',
                ),
                'BaseDocumentField' => array(
                    'name' => 'something',
                    'value' => 'something',
                ),
            ),
    )
);
$client = new SoapClient("http://servicename?wsdl", array("trace" => 1, "exceptions" => 0, "login" => $login, "password" => $password));
$result = $client->CreateDocument($params);
try {
        $request = $client->CreateDocument($params);
        $last_request = $client->__getLastRequest();
    } catch (SoapFault $exception) {
        $last_request = $client->__getLastRequest();
    }
var_dump($last_request);
?>

Запрос проходит, но с ошибкой. Функция __getLastRequest в итоге выдает вот такой результат:

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
                   xmlns:ns1="http://schemas.datacontract.org/2004/07/WSSC.V4.DMS.EKV.WssDocsService"
                   xmlns:ns2="http://tempuri.org/">
    <SOAP-ENV:Body>
        <ns2:CreateDocument>
            <ns2:parameters>
                <ns1:DocType>01</ns1:DocType>
                <ns1:FieldValues>
                   <ns1:BaseDocumentField/>
                </ns1:FieldValues>
                <ns1:UserMail>email@email.email</ns1:UserMail>
            </ns2:parameters>
        </ns2:CreateDocument>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Секция не формируется, только открывающий тег. Как нужно сформировать массив данных, чтобы в итоге получить нормальную секцию ?

READ ALSO
отправка запроса json через php+curl

отправка запроса json через php+curl

Есть необходимость отправить следующий хук:

353
Как объединить два массива и сделать отображения по порядку

Как объединить два массива и сделать отображения по порядку

Пытаюсь объединить два массива первый массив

223
Можно это перевести?

Можно это перевести?

Можно это перевести с php на html?

266