我想通过网络服务访问我的一些客户端数据。他向我提供了以下信息,以便以XML格式获取这些数据。
http://www.clients-domain.com/erpsync/erp_sync.asmx
User = abcd
密码= 1234
功能细节:
GetAllItemData - 将返回为网络选择的所有项目及其价格
GetItemDataByDate - 将返回在特定日期之间更新的所有项目
GetAllItemStock - 将返回网站所有项目的更新库存
GetStockByItem - 将返回单个物品的库存。
此Web服务位于基于Windows的服务器上。
我不知道如何在PHP中调用上面的URL来获取这些数据。 他告诉我,这个Web服务的返回值是XML格式。
它也是SOAP 1.1
任何有用的帮助
答案 0 :(得分:1)
因为他说SOAP简单扩展soap client
1建立与SOAP的连接
$soapCon = new Utils_SoapClient("http://www.clients-domain.com/erpsync/erp_sync.asmx", array());
$soapCon->setCredentialsHeader(User, Password);
创建一个传递变量的结构
$struct = new stdClass();
$struct->item1 = $item1;
客户端为您提供传递参数/变量的函数
GetAllItemData - 将返回为网络选择的所有项目及其价格
$result = $soapCon->GetAllItemData(new SoapVar($struct, SOAP_ENC_OBJECT));
GetItemDataByDate - 将返回在特定日期之间更新的所有项目
$result = $soapCon->GetItemDataByDate(new SoapVar($struct, SOAP_ENC_OBJECT));
GetAllItemStock - 将返回网站所有项目的更新库存
$result = $soapCon->GetAllItemStock(new SoapVar($struct, SOAP_ENC_OBJECT));
GetStockByItem - 将返回单个物品的库存。
$result = $soapCon->GetStockByItem(new SoapVar($struct, SOAP_ENC_OBJECT));
肥皂客户端类
class Utils_SoapClient extends SoapClient {
protected $_targetNamespace;
public function __construct($wsdl, $options){
parent::__construct($wsdl, $options);
// detect target namespace
$xml = simplexml_load_file($wsdl);
$this->_targetNamespace = (string) $xml['targetNamespace'];
}
public function setCredentialsHeader($login, $password) {
$header = new SoapHeader($this->_targetNamespace,
'CredentialsSoapHeader',
new SoapVar(
array(
'Login' => $login,
'Password' => $password,
),
SOAP_ENC_OBJECT,
'CredentialsSoapHeader',
$this->_targetNamespace
)
);
$this->__setSoapHeaders(array($header));
}
}