Как вызывать функции «SOAP WSDL» из разных типов связывания wsdl:

Пожалуйста, найдите основной ответ WDSL в кодировке ниже.

<wsdl:binding name="BasicHttpBinding_IProductService" type="i0:IProductService">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="RetrieveByKey">
<soap:operation soapAction="WSTRX/Product/IProductService/RetrieveByKey" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="RetrieveCollection">
<soap:operation soapAction="WSTRX/Product/IProductService/RetrieveCollection" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="Validate">
<soap:operation soapAction="WSTRX/Product/IProductService/Validate" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="BasicHttpBinding_ICustomerService" type="i1:ICustomerService">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="RetrieveByKey">
<soap:operation soapAction="WSTRX/Customer/ICustomerService/RetrieveByKey" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="RetrieveCollection">
<soap:operation soapAction="WSTRX/Customer/ICustomerService/RetrieveCollection" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="Validate">
<soap:operation soapAction="WSTRX/Customer/ICustomerService/Validate" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="BasicHttpBinding_ISalesOrderService" type="i2:ISalesOrderService">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="RetrieveCollection">
<soap:operation soapAction="WSTRX/SalesOrder/ISalesOrderService/RetrieveCollection" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="Store">
<soap:operation soapAction="WSTRX/SalesOrder/ISalesOrderService/Store" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="Validate">
<soap:operation soapAction="WSTRX/SalesOrder/ISalesOrderService/Validate" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="BasicHttpBinding_ISalesOrder_lineService" type="i3:ISalesOrder_lineService">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="RetrieveCollection">
<soap:operation soapAction="WSTRX/SalesOrder_line/ISalesOrder_lineService/RetrieveCollection" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="Validate">
<soap:operation soapAction="WSTRX/SalesOrder_line/ISalesOrder_lineService/Validate" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="BasicHttpBinding_ICustomer_deliveryContactService" type="i4:ICustomer_deliveryContactService">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="RetrieveCollection">
<soap:operation soapAction="WSTRX/Customer_deliveryContact/ICustomer_deliveryContactService/RetrieveCollection" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="Validate">
<soap:operation soapAction="WSTRX/Customer_deliveryContact/ICustomer_deliveryContactService/Validate" style="document"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>

Ниже приведен код PHP, который я использовал для вызова функции «RetrieveCollection».

    $options = array(
'uri'=>'http://schemas.xmlsoap.org/soap/envelope/',
'style'=>SOAP_RPC,
'use'=>SOAP_ENCODED,
'soap_version'=>SOAP_1_1,
'cache_wsdl'=>WSDL_CACHE_NONE,
'connection_timeout'=>500000,
'trace'=>true,
'encoding'=>'UTF-8',
'exceptions'=>true,
'keep_alive' => false,
);
try {
$soap = new SoapClient($wsdl, $options);
$data = $soap->RetrieveCollection('BasicHttpBinding_ICustomerService');
}
catch(Exception $e) {
die($e->getMessage());
}
echo "<pre>";
var_dump($client->__getFunctions());
print_r($data);
die;

Выше кодирования ответ будет как ниже массива

stdClass Object
(
[RetrieveCollectionResult] => stdClass Object
(
[AnyMorePages] =>
[ExceptionInformation] =>
[Items] => stdClass Object
(
[Product] => Array
(
[0] => stdClass Object
(
[Id] => 21479131965317
[Category] => stdClass Object
(
[Id] => 21487721936886
[Code] => 046
[Description] => DISCONTINUED
)

[Code] => 96RT
[D_CreativeBarcode] => 761236103018
[ECommerceSettings_ECommerceStatus] => Disabled
[Measurements_NetWeight] => 0.110000
[SellingPrice6] => 5.200200
[Statistics_AvailableStockLevel] => 0.000000
)

[1] => stdClass Object
(
[Id] => 21479131965338
[Category] => stdClass Object
(
[Id] => 21487721936836
[Code] => 021
[Description] => CC Novelties
)

[Code] => CCBJK
[D_CreativeBarcode] => 847878001384
[ECommerceSettings_ECommerceStatus] => Enabled
[Measurements_NetWeight] => 0.000000
[SellingPrice6] => 9.166700
[Statistics_AvailableStockLevel] => 61.000000
)

Кроме того, ответ на вызов функции $ client -> __ getFunctions () будет выглядеть следующим образом:

array(13) {
[0]=>
string(62) "RetrieveByKeyResponse RetrieveByKey(RetrieveByKey $parameters)"[1]=>
string(77) "RetrieveCollectionResponse RetrieveCollection(RetrieveCollection $parameters)"[2]=>
string(47) "ValidateResponse Validate(Validate $parameters)"[3]=>
string(62) "RetrieveByKeyResponse RetrieveByKey(RetrieveByKey $parameters)"[4]=>
string(77) "RetrieveCollectionResponse RetrieveCollection(RetrieveCollection $parameters)"[5]=>
string(47) "ValidateResponse Validate(Validate $parameters)"[6]=>
string(77) "RetrieveCollectionResponse RetrieveCollection(RetrieveCollection $parameters)"[7]=>
string(38) "StoreResponse Store(Store $parameters)"[8]=>
string(47) "ValidateResponse Validate(Validate $parameters)"[9]=>
string(77) "RetrieveCollectionResponse RetrieveCollection(RetrieveCollection $parameters)"[10]=>
string(47) "ValidateResponse Validate(Validate $parameters)"[11]=>
string(77) "RetrieveCollectionResponse RetrieveCollection(RetrieveCollection $parameters)"[12]=>
string(47) "ValidateResponse Validate(Validate $parameters)"}

Мой вопрос: пока я звоню «RetrieveCollection» функция, возвращающая все детали продукта. Та же функция используется только для получения Клиенты, заказ, Customer_delivery, ProductService …

Как мы можем получить информацию о клиенте и заказе, используя ту же функцию?

Спасибо!

0

Решение

Попробуйте функцию SoapClient :: __setLocation (), чтобы изменить конечную точку на Http: //…./WSTRX/Product, Http: //…./WSTRX/Customer а затем вызвать конкретное имя функции.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector