根据单号和快递公司查询快递情况
快递100申请是免费的,查询小快递公司和不常用的快递公司是不支持json和xml格式的,只支持HtmlAPI,坑的要死,如果要支持json 要转企业版才可以,所以有朋友推荐快递网的接口不错,还免费,分享一下
申请网址:
API:
PHP Code复制内容到剪贴板
- //==================================================================
- //功能: 通过快递公司和单号从 快递网 获取物流信息
- //参数:
- // expressCompany 要查询的快递公司代码,不支持中文
- // expressNo 要查询的快递单号,请勿带特殊符号,不支持中文(大小写不敏感)
- //==================================================================
- public function expressQuery($post){
- global $dbtbpre;
- //转换参数形式
- foreach ($post as $kp=>$p) {
- $$kp = $p;
- };
- $key = '自己申请'; //身份授权key
- $com = $expressCompany; //快递公司
- $nu = $expressNo; //要查询的快递单号,请勿带特殊符号,不支持中文(大小写不敏感)
- $show = $show?$show:'0'; //返回类型:0:返回json字符串,1:返回xml对象,如果不填,默认返回json字符串。
- $muti = $muti?$muti:'0'; //返回信息数量:0:返回多行完整的信息,1:只返回一行信息, 不填默认返回多行。
- $order = $order?$order:'desc'; //排序:desc:按时间由新到旧排列,asc:按时间由旧到新排列。不填默认由新到旧排列(大小写不敏感)
- $data = $this->post("http://api.kuaidi.com/openapi.html?id=".$key."&com=".$com."&nu=".$nu."&show=".$show."&muti=".$muti."&order=".$order);
- if($data){
- return Message(200,'success','',$data);
- }else{
- return Message(400,'error','查询失败','');
- }
- }
- //CURL请求
- function post($url, $params = '', $timeout = 5){//curl
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
- curl_setopt($ch,CURLOPT_POST,true);
- curl_setopt($ch,CURLOPT_POSTFIELDS,$params);
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch, CURLOPT_HEADER, 0);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
- curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
- curl_setopt($ch, CURLOPT_HTTPHEADER, array('Accept: application/json','Content-Type: application/json'));
- $restRe = curl_exec($ch);
- $status = curl_getinfo($ch,CURLINFO_HTTP_CODE);
- curl_close($ch);
- return $restRe;
- }