在一些接口的设计中有时用到了soap方式的请求,比如顺丰bsp的接口。
我尝试不同方式的post方式请求,要么完全请求不到东西,要么接收到乱码,均以失败告终。
针对顺丰接口的soap请求的核心代码分享如下:
代码如下:
/**
* 发送soap请求
*/
private function _soap()
{
$client = new soapclient($this->serviceurl);
$info = new stdclass();
$info->arg0 = $this->xml;
$param = array($info);
$response = $client->__call(“sfexpressservice”,$param);
return $response->return ;
}
/**
* 拼接出请求的xml
*/
public function createxml()
{
$xml = ‘<request service=”routeservice” lang=”zh-cn”>
<head>’.$this->user.’,’.$this->password.’</head>
<body>
<routerequest tracking_type=”1″ method_type=”1″ tracking_number=”‘.$this->invoice_no.’” />
</body>
</request>’;
$this->xml = $xml;
}
提示:
1.$this->serviceurl 顺丰分配的bsp请求地址,注意是?wsdl的地址
2.$this->user,$this->password 即是顺丰分配的id和校验码
3.返回的return是一个xml的string,你可能需要simplexml_load_string来解析。
更多信息请查看IT技术专栏