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

作者:琅枫 时间:2023-11-17 13:48:49 

博主最近需要做一个物流信息查询,就去网上搜索一个快递鸟的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百世快运
CCESCCES快递
CITY100城市100
COECOE东方快递
CSCY长沙创一
CDSTKY成都善途速运
DBL德邦
DSWLD速物流
DTWL大田物流
EMSEMS
FAST快捷速递
FEDEXFEDEX联邦(国内件)
FEDEX_GJFEDEX联邦(国际件)
FKD飞康达
GDEMS广东邮政
GSD共速达
GTO国通快递
GTSD高铁速递
HFWL汇丰物流
HHTT天天快递
HLWL恒路物流
HOAU天地华宇
hq568华强物流
HTKY百世快递
HXLWL华夏龙物流
HY * 好来运快递
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城际快递
CNPEXCNPEX中邮快递
HOTSCM鸿桥供应链
HPTEX海派通物流公司
AYCA澳邮专线
PANEX泛捷快递
PCAPCA Express
UEQUEQ Express

来源:http://www.phpfeng.cn/learn/php/203.html

标签:php,快递鸟
0
投稿

猜你喜欢

  • ASP实现防止网站被采集代码

    2011-03-25 10:40:00
  • Go语言结构体定义和使用方法

    2024-01-31 03:19:45
  • 收集前端面试题之url、href、src

    2024-06-05 09:12:30
  • 对Python 文件夹遍历和文件查找的实例讲解

    2021-11-05 22:29:25
  • Go语言使用Gob传输数据

    2023-08-06 05:12:28
  • Python Flask框架实现简单加法工具过程解析

    2021-08-17 20:36:11
  • Python 中的 else详解

    2021-12-15 09:42:18
  • SQL中distinct 和 row_number() over() 的区别及用法

    2024-01-12 20:16:35
  • Python while、for、生成器、列表推导等语句的执行效率测试

    2021-03-05 02:17:54
  • Tag的自定义类

    2010-03-18 15:53:00
  • Golang中switch语句和select语句的用法教程

    2023-09-02 09:09:06
  • python 求1-100之间的奇数或者偶数之和的实例

    2021-05-28 19:48:58
  • js 仿Photoshop鼠标滚轮控制输入框取值(修正兼容Chrome)

    2010-02-05 12:27:00
  • python标准库OS模块详解

    2022-08-21 21:47:06
  • Python操作RabbitMQ服务器实现消息队列的路由功能

    2022-06-21 00:50:39
  • SQL Server中字符串函数的用法详解

    2024-01-14 05:42:56
  • AJAX无刷新验证用户名是否存在

    2007-08-10 10:07:00
  • golang 中strings包的Replace的使用说明

    2024-02-09 16:02:04
  • 详解Go中Map类型和Slice类型的传递

    2024-04-23 09:47:03
  • 一篇文章带你了解python字典基础

    2021-05-02 23:08:23
  • asp之家 网络编程 m.aspxhome.com