Взаимодействам с WCF уеб услуга, която излага метода си с помощта на SOAP, използвайки PHP 5.3.10. Надявам се да мога да използвам SoapClient, но имам проблеми с правилното формулиране на заявките.
WSDL изглежда е 1.0 ( xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/
в маркера wsdl:definitions
).
Всяка операция в WSDL се дефинира подобно на това:
<wsdl:operation name="GetPortfolios">
<soap:operation soapAction="urn:IPortfolio/GetPortfolios" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
Бих искал да създам заявката за тялото като масив, така че тялото на сапуна да изглежда по следния начин:
<GetPortfolios>
<Portfolio>*con*</Portfolio>
<Token>1234</Token>
</GetPortfolios>
Може ли това да се направи с PHP 5.3.10 SoapClient? (и пример моля). Бих предпочел, ако извикването на SoapClient е инстанцирано, наречено __soapCall().
Актуализация: Над обвързванията има импортиране за друг WSDL.
Оригиналният WSDL е https://clienttest.praemium.biz/praemiumclientwebservice/PortfolioService.svc?wsdl.
Импортирането изглежда така: <wsdl:import namespace="" location="https://clienttest.praemium.biz/PraemiumClientWebService/PortfolioService.svc?wsdl=wsdl0"/>
.
И този доставчик допълнителна информация за заявките и отговорите, на ниво работа, и също така извършва друго импортиране:
<xsd:schema targetNamespace="/Imports">
<xsd:import schemaLocation="https://clienttest.praemium.biz/PraemiumClientWebService/PortfolioService.svc?xsd=xsd0"/>
</xsd:schema>
Именно това импортиране описва действителните елементи, очаквани в заявките, и елементите, които да очаквате в отговорите.
Като настрана, може ли PHP SoapClient да се справи с верижен импорт като този?