在一些接口的设计中有时用到了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技术专栏