当前位置:主页 > php教程 > php调用快递鸟接口方法

php调用快递鸟接口实例分析

发布:2019-06-05 15:41:50 69


给大家整理一篇php实例相关的编程文章,网友牛伟诚根据主题投稿了本篇教程内容,涉及到php、快递鸟、php调用快递鸟接口方法相关内容,已被929网友关注,内容中涉及的知识点可以在下方直接下载获取。

php调用快递鸟接口方法

博主最近需要做一个物流信息查询,就去网上搜索一个快递鸟的API接口,返回值是以JSON格式,只需要返回是转成数组就能轻松实现各种实例了。下图是快递鸟API示意接口,博主怕有些小白(没有嘲笑的意思,博主也是从小白走过来的)不太清楚流程。

php调用快递鸟接口实例代码

快递鸟流程图

参数可以看下快递鸟的官方说明:http://www.kdniao.com/api-track

由于是免费的,所以限制很多,比如每天最多只能查询3000次和需要实名认证。

博主这里贴出博主的代码:

<?php
//电商ID
defined('EBusinessID') or define('EBusinessID', '电商ID');
//电商加密私钥,快递鸟提供,注意保管,不要泄漏
defined('AppKey') or define('AppKey', '电商加密私钥');
//请求url
defined('ReqURL') or define('ReqURL', 'http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx');
//调用查询物流轨迹
//---------------------------------------------
$kgs = "STO";//快递公司简称,官方有文档
$number = "3335800028275";//快递单号//
$logisticResult = getOrderTracesByJson($kgs,$number);
$data = json_decode($logisticResult,true);
if($data['Success'] == true){//返回信息成功
$str = "";
for($i=0;$i<count($data['Traces']);$i++){
$str .= "时间:".$data['Traces'][$i]['AcceptTime']."<br/>地址:".$data['Traces'][$i]['AcceptStation']."<br/>";
}
echo "您查询的单号是:".$data['LogisticCode']."<br/>
物流信息:<br/>".$str."";
}
//---------------------------------------------
/**
 * Json方式 查询订单物流轨迹
 *$kgs string 快递公司
 *$number string 快递单号
 */
function getOrderTracesByJson($kgs,$number){
$requestData= "{'OrderCode':'','ShipperCode':'$kgs','LogisticCode':'$number'}";
$datas = array(
    'EBusinessID' => EBusinessID,
    'RequestType' => '1002',
    'RequestData' => urlencode($requestData) ,
    'DataType' => '2',
  );
  $datas['DataSign'] = encrypt($requestData, AppKey);
$result=sendPost(ReqURL, $datas);
//根据公司业务处理返回的信息......
return $result;
}
/**
 * post提交数据 
 * @param string $url 请求Url
 * @param array $datas 提交的数据 
 * @return url响应返回的html
 */
function sendPost($url, $datas) {
  $temps = array();
  foreach ($datas as $key => $value) {
    $temps[] = sprintf('%s=%s', $key, $value);
  }
  $post_data = implode('&', $temps);
  $url_info = parse_url($url);
if(empty($url_info['port']))
{
$url_info['port']=80;
}
  $httpheader = "POST " . $url_info['path'] . " HTTP/1.0\r\n";
  $httpheader.= "Host:" . $url_info['host'] . "\r\n";
  $httpheader.= "Content-Type:application/x-www-form-urlencoded\r\n";
  $httpheader.= "Content-Length:" . strlen($post_data) . "\r\n";
  $httpheader.= "Connection:close\r\n\r\n";
  $httpheader.= $post_data;
  $fd = fsockopen($url_info['host'], $url_info['port']);
  fwrite($fd, $httpheader);
  $gets = "";
$headerFlag = true;
while (!feof($fd)) {
if (($header = @fgets($fd)) && ($header == "\r\n" || $header == "\n")) {
break;
}
}
  while (!feof($fd)) {
$gets.= fread($fd, 128);
  }
  fclose($fd); 
  return $gets;
}
/**
 * 电商Sign签名生成
 * @param data 内容  
 * @param appkey Appkey
 * @return DataSign签名
 */
function encrypt($data, $appkey) {
  return urlencode(base64_encode(md5($data.$appkey)));
}
?>

效果图:

php调用快递鸟接口实例代码

php调用快递鸟接口示意图

快递公司编码:

 

编码 名称
AJ 安捷快递
ANE 安能物流
AXD 安信达快递
BQXHM 北青小红帽
BFDF 百福东方
BTWL 百世快运
CCES CCES快递
CITY100 城市100
COE COE东方快递
CSCY 长沙创一
CDSTKY 成都善途速运
DBL 德邦
DSWL D速物流
DTWL 大田物流
EMS EMS
FAST 快捷速递
FEDEX FEDEX联邦(国内件)
FEDEX_GJ FEDEX联邦(国际件)
FKD 飞康达
GDEMS 广东邮政
GSD 共速达
GTO 国通快递
GTSD 高铁速递
HFWL 汇丰物流
HHTT 天天快递
HLWL 恒路物流
HOAU 天地华宇
hq568 华强物流
HTKY 百世快递
HXLWL 华夏龙物流
HYLSD 好来运快递
JGSD 京广速递
JIUYE 九曳供应链
JJKY 佳吉快运
JLDT 嘉里物流
JTKD 捷特快递
JXD 急先达
JYKD 晋越快递
JYM 加运美
JYWL 佳怡物流
KYWL 跨越物流
LB 龙邦快递
LHT 联昊通速递
MHKD 民航快递
MLWL 明亮物流
NEDA 能达速递
PADTF 平安达腾飞快递
QCKD 全晨快递
QFKD 全峰快递
QRT 全日通快递
RFD 如风达
SAD 赛澳递
SAWL 圣安物流
SBWL 盛邦物流
SDWL 上大物流
SF 顺丰快递
SFWL 盛丰物流
SHWL 盛辉物流
ST 速通物流
STO 申通快递
STWL 速腾快递
SURE 速尔快递
TSSTO 唐山申通
UAPEX 全一快递
UC 优速快递
WJWL 万家物流
WXWL 万象物流
XBWL 新邦物流
XFEX 信丰快递
XYT 希优特
XJ 新杰物流
YADEX 源安达快递
YCWL 远成物流
YD 韵达快递
YDH 义达国际物流
YFEX 越丰物流
YFHEX 原飞航物流
YFSD 亚风快递
YTKD 运通快递
YTO 圆通速递
YXKD 亿翔快递
YZPY 邮政平邮/小包
ZENY 增益快递
ZHQKD 汇强快递
ZJS 宅急送
ZTE 众通快递
ZTKY 中铁快运
ZTO 中通速递
ZTWL 中铁物流
ZYWL 中邮物流
AMAZON 亚马逊物流
SUBIDA 速必达物流
RFEX 瑞丰速递
QUICK 快客快递
CJKD 城际快递
CNPEX CNPEX中邮快递
HOTSCM 鸿桥供应链
HPTEX 海派通物流公司
AYCA 澳邮专线
PANEX 泛捷快递
PCA PCA Express
UEQ UEQ Express

 


参考资料

相关文章

  • 详细介绍Nginx下ThinkPHP5的配置方法

    发布:2020-01-23

    今天有个朋友询问tp5支持pathinfo的nginx配置怎么写的问题,所以想着自己总结分享下,下面这篇文章主要给大家介绍了关于在Nginx下ThinkPHP5的配置方法,需要的朋友可以参考借鉴,下面话不多说,


  • php中字符串和整数比较的方法总结

    发布:2019-07-29

    这篇文章主要介绍了php中字符串和整数比较的操作方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下


  • PHP唤起微信支付功能示例详解

    发布:2020-01-16

    这篇文章主要为大家详细介绍了PHP实现唤起微信支付功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下


  • PHP实现基于状态的责任链审批模式知识点总结

    发布:2019-11-09

    这篇文章主要介绍了PHP实现基于状态的责任链审批模式,结合实例形式详细分析了责任链审批模式的原理及相关php实现流程,需要的朋友可以参考下


  • PHP判断数组是一维、二维或多维的实例

    发布:2020-05-25

    这篇文章主要介绍了PHP实现判断数组是一维、二维或几维的方法,涉及php递归操作及数组相关判定技巧,需要的朋友可以参考下


  • PHP使用Pear进行安装和卸载包的实操方法

    发布:2019-11-07

    这篇文章主要介绍了PHP使用 Pear 进行安装和卸载包的方法,结合实例形式详细分析了php使用 Pear 安装及卸载扩展包的相关操作命令与使用技巧,需要的朋友可以参考下


  • php如何实现round robin权重轮循算法

    发布:2020-02-18

    这篇文章主要介绍了round robin权重轮循算法php实现代码,需要的朋友可以参考下


  • php给图片添加水印实例代码

    发布:2019-10-30

    这篇文章主要为大家分享了一段php图片添加水印例子,具有一定的参考价值,感兴趣的小伙伴们可以参考一下


网友讨论