protected $STATE_TYPE = [ //快递状态
0 => '运送中',
1 => '已揽件',
2 => '疑难',
3 => '已签收',
4 => '已退签',
5 => '派件中',
6 => '已退回',
10 => '待清关',
11 => '清关中',
12 => '已清关',
13 => '清关异常',
14 => '收件人拒签'
];
/**
* 快递单号查询
* @param $com string 快递公司编号
* @param $num string 快递单号
*/
public function seachKuaiDi($com,$num)
{
$post_data = [];
$post_data["customer"] = 'XXXXX'; //本公司公司编号
$key= 'XXXXX'; //key
$reglogis = $com;
$logistics = Config::get('logistics');
$com = strtolower($logistics['圆通速递']);
$post_data["param"] = '{"com":"'.$com.'","num":"'.$num.'"}';
$url='http://poll./poll/';
$post_data["sign"] = md5($post_data["param"].$key.$post_data["customer"]);
$post_data["sign"] = strtoupper($post_data["sign"]);
$o="";
foreach ($post_data as $k=>$v)
{
$o.= "$k=".urlencode($v)."&"; //默认UTF-8编码格式
}
$post_data=substr($o,0,-1);
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$result = curl_exec($ch);
curl_close($ch);
$data = str_replace("\"",'"',$result );
$data = json_decode($data,true);
//$data = json_decode(stripslashes(html_entity_decode($result)),true);
if($data['result'] === false){
return ['status'=>1, 'msg'=>$data['message']];
} else{
//state 0在途中、1已揽收、2疑难、3已签收、4退签、5同城派送中、6退回等状态
return ['status'=>0,'msg'=>$data['message'],'logistics'=>$reglogis,'state'=>$data['state'],'state_msg'=>
$this->STATE_TYPE[$data['state']]?:'未知状态','order'=>$data['nu'],'data'=>$data['data']];
}
}