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

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

快递鸟流程图

参数可以看下快递鸟的官方说明: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调用快递鸟接口示意图

快递公司编码:

编码 名称
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
(0)

相关推荐

  • PHP开发实现快递查询功能详解

    背景:不久前,设计实现了京东api的功能,发现如果换了其它快递再重新设计,岂不是会浪费太多的时间,所以选个第三方提供的快递API是最为合理的,下面给出快递鸟和快递100的设计实现. 一.快递鸟 I.快递鸟api实现物流即时查询 1.首先要有一个快递鸟账号,根据对方的要求,完善用户申请. 2.根据自己的需求,开通服务 3.进入"我的API接口",根据"接口"中的开发文档了解设计需求,下载官方demo,编辑为适合自己的代码. II."即时查询"代码实

  • PHP实现手机归属地查询API接口实现代码

    复制代码 代码如下: <?php header("Content-Type:text/html;charset=utf-8″); if (isset($_GET['number'])) { $url = 'http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx/getMobileCodeInfo'; $number = $_GET['number']; $ch = curl_init(); curl_setopt($ch,

  • php版淘宝网查询商品接口代码示例

    本文来给大家介绍一个php版淘宝网查询商品接口代码的例子,下面要改成你的信息的在代码后面都有说明了,同时sdk包我们也要官方下载. 下载SDK后直接引用包,并创建如下的类,并运行之,即完成了调用接口(taobao.user.seller.get)的过程(调用接口说明可见下载的SDK)说明:    TopClient为调用SDK的实例化类    UserSellerGetRequest为API的请求参数封装类 注:该接口是在沙箱环境下调用,获取的数据,也是沙箱中数据.若要获取线上环境,请填写自己创

  • PHP调用全国天气预报数据接口查询天气示例

    本文实例讲述了PHP调用全国天气预报数据接口查询天气.分享给大家供大家参考,具体如下: 基于PHP的聚合数据全国天气预报API服务请求的代码样例 本代码示例是基于PHP的聚合数据全国天气预报API服务请求的代码样例,使用前你需要: ①:通过https://www.juhe.cn/docs/api/id/39 申请一个天气预报API的appkey 样例代码包含了获取支持城市列表.根据城市获取天气预报.根据IP地址请求天气预报.根据GPS坐标请求天气.城市3小时天气预报的实现.示例代码主要是解析一些

  • php微信公众号开发之快递查询

    本文实例为大家分享了php微信公众号开发之快递查询的具体代码,供大家参考,具体内容如下 快递查询 数组用法 foreach 查询接口是:爱快递:https://www.aikuaidi.cn/api/ 核心代码如下: $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $fromUsername = $postObj->FromUserName; $toUsername = $postOb

  • 免费手机号码归属地API查询接口和PHP使用实例分享

    免费手机号码归属地API查询接口和PHP使用实例分享 最近在做全国性的行业分类信息网站,需要用到手机号归属地显示功能,于是就穿梭于各大权威站点之间偷来了API的接口地址. 分享出来,大家可以用到就拿去呵. 一.淘宝网API 复制代码 代码如下: API地址: http://tcc.taobao.com/cc/json/mobile_tel_segment.htm?tel=15850781443 参数: tel:手机号码 返回:JSON 二.拍拍API 复制代码 代码如下: API地址: http

  • php利用新浪接口查询ip获取地理位置示例

    复制代码 代码如下: <?php function getIPLoc_sina($queryIP){    $url = 'http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip='.$queryIP;    $ch = curl_init($url);     curl_setopt($ch,CURLOPT_ENCODING ,'utf8');     curl_setopt($ch, CURLOPT_TIMEOU

  • PHP查询快递信息的方法

    本文实例讲述了PHP查询快递信息的方法.分享给大家供大家参考.具体如下: 这里使用快递100物流查询 官方文档中只能返回html的接口 也可以返回json php代码如下: 复制代码 代码如下: /**  * @desc 获取快递信息  * @param string $code 快递编码  * @param string $invoice 快递单号  * @return mixed $result(       'status','info','state','data'    )  */ f

  • PHP手机号码归属地查询代码(API接口/mysql)

    首先我们介绍使用自己的数据库查询多个手机号码,那还是建议你拥有一个自己的的手机号码数据库.正常情况下,只是满足一般查询的话,你不需要去购买专业版的手机号码数据库,增加无谓成本.我免费为你提供一个ACCESS数据库,包含17万多条数据,常用的130-139.150-159以及180-189开头手机号码段都在其中,你可以借助数据库工具轻松地将它转换成MYSQL或其它版本数据库 最新手机号码数据库下载地址:http://xiazai.jb51.net/201209/yuanma/phone-numbe

  • php快递单号查询接口使用示例

    通过本接口可以查询圆通快递.申通快递.ems快递.韵达快递等快递单号查询信息,无需其他额外开发,非常方便首先到www.aikuaidi.cn上注册个账号,使用key! 复制代码 代码如下: <?php/** * 查询物流信息 */define('IN_ECS', true); require(dirname(__FILE__) . '/includes/init.php'); if ($id = intval($_REQUEST['id'])) {    $sql_select = 'SELEC

随机推荐