I'm using a provider wsdl with SoapClient but when I use the command __getFunctions I get something like this:
method1Rsp service(method1Req $parameters)
method2Rsp service(method2Req $parameters)
method3Rsp service(method3Req $parameters)
method4Rsp service(method4Req $parameters)
method5Rsp service(method5Req $parameters)
So,I can only call the function "service()" or use __soapCall('service',$info)
but I always get the "method1" schema.
If I use __doRequest()
I can send the method I want in a self writen xml and works fine, but it's a pity...
If I send the method name in the $info array, it also uses the first method.
Question: Is there a way to call specific methods using __soapCall()
or the service function, or I have to modify the wsdl?
Edit:
Here is a xml request used with __doRequest
:
<?xml version="1.0" encoding="UTF-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<LowFareSearchReq TargetBranch="" xmlns="http://www.travelport.com/schema/air_v20_0" xmlns:com="http://www.travelport.com/schema/common_v17_0">
<com:BillingPointOfSaleInfo OriginApplication="UAPI"/>
<SearchAirLeg>
<SearchOrigin>
<CityOrAirport Code="LON" xmlns="http://www.travelport.com/schema/common_v17_0" />
</SearchOrigin>
<SearchDestination>
<CityOrAirport Code="MUC" xmlns="http://www.travelport.com/schema/common_v17_0" />
</SearchDestination>
<SearchDepTime PreferredTime="2013-02-10" />
<AirLegModifiers>
<PreferredCabins>
<CabinClass Type="Economy" />
</PreferredCabins>
</AirLegModifiers>
</SearchAirLeg>
<SearchPassenger Code="ADT" Age="30" xmlns="http://www.travelport.com/schema/common_v17_0"/>
<AirPricingModifiers CurrencyType="EUR">
</AirPricingModifiers>
</LowFareSearchReq>
</s:Body>
</s:Envelope>
The location of the webservice is http://webservicename/AirService
despite the method you have to use.
This works okay, but the response is also and xml string. Further more, the schemas are not updated if I change the wsdl file in a future update. Using __soapCall
returns an stdClass object and gets the schemas automatically.