嗨,我有假肥皂
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 :(得分: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请求示例中所示。
评论更新
我看到请求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';