2016-08-03 156 views
0

您好我有休耕皁PHP肥皂客戶端連接

SOAP 1.1 



POST /ServicePeletalk.asmx HTTP/1.1 
Host: 82.80.225.186 
Content-Type: text/xml; charset=utf-8 
Content-Length: length 
SOAPAction: "http://peletop.co.il/GetProducts" 

<?xml version="1.0" encoding="utf-8"?> 
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Body> 
    <GetProducts xmlns="http://peletop.co.il/"> 
     <query> 
     <TerminalNum>string</TerminalNum> 
     <ProviderID>int</ProviderID> 
     <CardType>All or Virtual or Manual or BillPayment</CardType> 
     <Language>Hebrew or Arabic or English</Language> 
     <LoadPictures>boolean</LoadPictures> 
     </query> 
    </GetProducts> 
    </soap:Body> 
</soap:Envelope> 
HTTP/1.1 200 OK 
Content-Type: text/xml; charset=utf-8 
Content-Length: length 

    <?xml version="1.0" encoding="utf-8"?> 
    <soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
     <soap:Body> 
     <GetProductsResponse xmlns="http://peletop.co.il/"> 
      <GetProductsResult> 
      <Products> 
       <clsProduct> 
       <ProductIdenfity>string</ProductIdenfity> 
       <ProductName>string</ProductName> 
       <Description>string</Description> 
       <Picture>base64Binary</Picture> 
       <Price>double</Price> 
       <MaxPrice>double</MaxPrice> 
       <CardType>All or Virtual or Manual or BillPayment</CardType> 
       <DetailsLink>string</DetailsLink> 
       </clsProduct> 
       <clsProduct> 
       <ProductIdenfity>string</ProductIdenfity> 
       <ProductName>string</ProductName> 
       <Description>string</Description> 
       <Picture>base64Binary</Picture> 
       <Price>double</Price> 
       <MaxPrice>double</MaxPrice> 
       <CardType>All or Virtual or Manual or BillPayment</CardType> 
       <DetailsLink>string</DetailsLink> 
       </clsProduct> 
      </Products> 
      </GetProductsResult> 
     </GetProductsResponse> 
     </soap:Body> 
    </soap:Envelope> 

SOAP 1.2

以下是一個示例SOAP 1.2請求和響應。顯示的佔位符需要用實際值替換。

POST /ServicePeletalk.asmx HTTP/1.1 
Host: 82.80.225.186 
Content-Type: application/soap+xml; charset=utf-8 
Content-Length: length 

    <?xml version="1.0" encoding="utf-8"?> 
    <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> 
     <soap12:Body> 
     <GetProducts xmlns="http://peletop.co.il/"> 
      <query> 
      <TerminalNum>string</TerminalNum> 
      <ProviderID>int</ProviderID> 
      <CardType>All or Virtual or Manual or BillPayment</CardType> 
      <Language>Hebrew or Arabic or English</Language> 
      <LoadPictures>boolean</LoadPictures> 
      </query> 
     </GetProducts> 
     </soap12:Body> 
    </soap12:Envelope> 

HTTP/1.1 200 OK 
Content-Type: application/soap+xml; charset=utf-8 
Content-Length: length 

    <?xml version="1.0" encoding="utf-8"?> 
    <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> 
     <soap12:Body> 
     <GetProductsResponse xmlns="http://peletop.co.il/"> 
      <GetProductsResult> 
      <Products> 
       <clsProduct> 
       <ProductIdenfity>string</ProductIdenfity> 
       <ProductName>string</ProductName> 
       <Description>string</Description> 
       <Picture>base64Binary</Picture> 
       <Price>double</Price> 
       <MaxPrice>double</MaxPrice> 
       <CardType>All or Virtual or Manual or BillPayment</CardType> 
       <DetailsLink>string</DetailsLink> 
       </clsProduct> 
       <clsProduct> 
       <ProductIdenfity>string</ProductIdenfity> 
       <ProductName>string</ProductName> 
       <Description>string</Description> 
       <Picture>base64Binary</Picture> 
       <Price>double</Price> 
       <MaxPrice>double</MaxPrice> 
       <CardType>All or Virtual or Manual or BillPayment</CardType> 
       <DetailsLink>string</DetailsLink> 
       </clsProduct> 
      </Products> 
      </GetProductsResult> 
     </GetProductsResponse> 
     </soap12:Body> 
    </soap12:Envelope> 

我該如何在PHP中編寫它?

我試圖

<? 
    // Maximum error reporting 
    error_reporting(E_ALL); 
    ini_set('error_reporting', E_ALL); 
    ini_set('display_errors', 1); 

    $wsdl = 'http://82.80.225.186:8000/ServicePeletalk.asmx?WSDL'; 

    $trace = true; 
    $exceptions = true; 
    $client = new SoapClient($wsdl, array('trace' => $trace, 'exceptions' => $exceptions)); 


    $xml_array['TerminalNum'] = 5089 ; 
    $xml_array['UserType'] = 'SiteUser'; 
    $xml_array['Language'] = 'English'; 
    $xml_array['ConnectionOrDeviceID'] = '879d62-EA47-4520-8A29-EB5981A62DD8'; 

    try 
    { 
     $client = new SoapClient($wsdl, array('trace' => $trace, 'exceptions' => $exceptions)); 
     $response = $client->GetSellerProviders($xml_array); 
    } 
    catch (Exception $e) 
    { 
     echo "Error!"; 
     echo $e -> getMessage(); 
     echo 'Last response: '. $client->__getLastResponse(); 
    } 

?> 

它不工作

請幫助

回答

0

對於第一次看,似乎,根據您的XML文件,你必須調用$client->GetProducts,而不是$client->GetSellerProviders ,因爲在xml文件中有一個名爲GetProducts的元素。

如果這是一個錯字,你真的叫$client->GetProducts然後檢查$xml_array結構是這樣的

$xml_array['query']['TerminalNum'] = 5089 ; 
$xml_array['query']['UserType'] = 'SiteUser'; 
$xml_array['query']['Language'] = 'English'; 
$xml_array['query']['ConnectionOrDeviceID'] = '879d62-EA47-4520-8A29-EB5981A62DD8'; 

包括query元素如XML請求樣本。

從評論UPDATE

我看到,請求XML具有以下元素

<TerminalNum>string</TerminalNum> 
<ProviderID>int</ProviderID> 
<CardType>All or Virtual or Manual or BillPayment</CardType> 
<Language>Hebrew or Arabic or English</Language> 
<LoadPictures>boolean</LoadPictures> 

所以$xml_array變量應該有這些元素就像名字的數組:

$xml_array['query']['TerminalNum'] = 5089 ; 
$xml_array['query']['ProviderID'] = 'SiteUser'; 
$xml_array['query']['CardType'] = 'som card type'; 
$xml_array['query']['Language'] = 'English'; 
$xml_array['query']['LoadPictures'] = 'true'; 
+0

嗨Whiteulver,我試過了,但它不起作用 – YossefB

+0

我收到來自服務器的錯誤發送空值 – YossefB

+0

我對我的答案做了一些編輯。請試試這個數組結構。也可以嘗試使用和不使用'query'元素來查看它是否可以工作 – Whiteulver