【PHP】快递100API查询快递接口

时间:2025-01-25 18:47:46
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']]; } }