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