Я взаимодействую с веб-службой 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 обрабатывать такой цепной импорт?