PHP Soap передать и получить массив

396
20 января 2017, 10:15

Каким наиболее простым образом можно отправить и получить массив при помощи SOAP?

Answer 1

можно готовую xml отправлять, для примера:

$client = new SoapClient("url wsdl");
$xml = '<RequestBin>
            <Request>
                <SearchFlights LinkOnly="false">
                    <ODPairs Type="OW" Direct="false" AroundDates="0">
                        <!--Zero or more repetitions:-->
                        <ODPair>
                            <DepDate>2017-01-20</DepDate>
                            <DepAirp CodeType="IATA">KBP</DepAirp>
                            <ArrAirp CodeType="IATA">PAR</ArrAirp>
                        </ODPair>
                    </ODPairs>
                    <Travellers>
                        <!--Zero or more repetitions:-->
                        <Traveller Type="ADT" Count="1"/>
                    </Travellers>
                    <Restrictions>
                        <ClassPref>economy</ClassPref>
                        <OnlyAvail>false</OnlyAvail>
                        <AirVPrefs/>
                        <IncludePrivateFare>false</IncludePrivateFare>
                        <CurrencyCode>RUB</CurrencyCode>
                    </Restrictions>
                </SearchFlights>
            </Request>
            <Source>
                <ClientId>xxx</ClientId>
                <APIKey>xxx</APIKey>
                <Language>RU</Language>
                <Currency>RUB</Currency>
                <ShowNames>true</ShowNames>
            </Source>
        </RequestBin>';
$params = array(new SoapVar($xml, XSD_ANYXML));
$res = $client->__call('search', $params);
var_dump($res);