博主最近需要做一个物流信息查询,就去网上搜索一个快递鸟的API接口,返回值是以JSON格式,只需要返回是转成数组就能轻松实现各种实例了。下图是快递鸟API示意接口,博主怕有些小白(没有嘲笑的意思,博主也是从小白走过来的)不太清楚流程。
快递鸟流程图
参数可以看下快递鸟的官方说明:
由于是免费的,所以限制很多,比如每天最多只能查询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
您可能感兴趣的文章: