宝哥软件园

PHP利用第三方即时获取物流动态示例的详细解释

编辑:宝哥软件园 来源:互联网 时间:2021-09-05

最近做的项目中有一个要求,物流信息要用物流号立即查询。从网上知道关于物流的第三方API还是很多的,但是我选择的是快递鸟,这是一个免费的第三方接口。该API集成了全球400多个物流快递接口,而且是免费的,永远没有限制。该接口与快递公司多渠道沟通,可用率超过99.9%。推送速度是定制的,以确保接入系统的稳定性。

使用过程

要登录http://www.kdniao.com/,网站,您必须先注册。注册后,用户管理后台有一个API应用选项。注意申请API前需要实名认证,认证后可以申请API。它的API接口还是很丰富的。

这里写图片描述

因为使用即时查询,所以申请了即时查询的api。

api使用流程图

这里写图片描述

从流程图可以看出,

用户只需提供快递员编号和快递公司

通过api获取物流状态并返回结果

我们获得结果并实时显示出来。

API参数

这里写图片描述

这里写图片描述

这些都是官方的API参数,不过我们可以看看官方的演示来了解一下。官方演示也很容易理解。我们可以重新包装。

封装应用编程接口

使用API需要三个固定参数

1.商家id

2.应用编程接口密钥

3.请求网址

商家id和API密钥可以在我的快鸟网站管理首页看到,请求网址为

http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx,这可以在界面文档中看到。

主要方法

/** * @param $ShipperCode快递公司编号* @param $order_sn运单编号*/公共函数getmessage ($ shippercode,$ order _ sn) {$ requestdata=' { '订单代码' : ' ',' ShipperCode': ' '。$ShipperCode。'后勤代码' : ' '。$order_sn。'}';$ data=array(' ebusy id '=self :3360 ebusinesid,' requesttype'=' 1002 ',//接口指令1002,fixed ' request data '=URL encode($ request data),' datatype'=' 2 ',//数据返回格式2 JSON)//encrypt $ request data $ data[' data sign ']=$ this-encrypt($ request data,self :3360 appkey);$ result=$ this-send post(self : req URL,$ datas);返回$ result}在这个主方法中,传入了两个参数,一个是快递公司号,另一个是物流订单号。

这里写图片描述

我们还需要加密$requestData,这是加密方法。

/* * encrypt */函数encrypt ($ data,$ appkey){ return urlencode(base64 _ encode(MD5($ data。$ appkey)));}加密后直接通过ReqURL访问,返回的数据就是物流信息。

这里写图片描述

源代码

?php/** *使用快递鸟美国石油学会(美国石油协会)进行查询*用户:管理员*日期: 2017/4/22 0022 *时间: 09:09 */类蒯迪控制器{ const e businessid=1285564const AppKey=' 264 ff 9e 0-2f 4c-48 D5-877 f-1e 0670400d 18 ';const req URl=' http://API。kdniao。抄送/电子商务/电子商务订单处理。aspx ';/** * @param $ShipperCode快递公司编号* @param $order_sn运单号*/public函数getMessage($ShipperCode,$ order _ sn){ $ request data=' { ' order code ' : ' ',' ShipperCode': ' ' .$托运人代码.'后勤代码' : ' '。$order_sn .}';$ datas=数组(' ebusinesid '=self : ebusinesid,' RequestType'='1002 ',//接口指令1002,固定请求数据'=URL encode($ request data),' DataType'='2 ',//数据返回格式2 JSON);//把$requestData进行加密处理$ datas[' DataSign ']=$ this-encrypt($ request data,self : appkey);$ result=$ this-发送帖子(self : req URL,$ datas);返回$ result} /** *帖子提交数据* @param字符串$url请求Url * @param数组$ datas提交的数据* @返回全球资源定位器(Uniform Resource Locator)响应返回的html */函数sendPost($url,$ datas){ $ temps=array();foreach($ data as $key=$ value){ $ temps[]=sprint f(' % s=% s ',$ key,$ value);} $post_data=内爆(',$ temps);$ URL _ info=parse _ URL($ URL);如果(空($ URL _ info['端口']){ $ URL _ info['端口']=80;} $ httpheader=' POST ' .$url_info['路径']。HTTP/1.0 r n ';$ httpheader .='Host: ' .$url_info['主机']. r n ';$ httpheader .=' Content-type : APPLication/x-www-form-URL编码 r n ';$ httpheader .='内容-长度: '。strlen($post_data). r n ';$ httpheader .='连接:关闭 r n r n ';$ httpheader .=$ post _ data $ FD=fsockopen($ URL _ info[' host '],$ URL _ info[' port ']);fwrite($fd,$ HTT pader);$ gets=$ headerFlag=truewhile(!feof($ FD)){ if(($ header=@ fgets($ FD))($ header==' r n ' | $ header==' n '){ break;} } while(!feof($ FD)){ $ get .=fread(128美元);} fc lost($ FD);return $ get }/* *进行加密*/函数encrypt($data,$ appkey){ return urlencode(base64 _ encode(MD5($ data .$ appkey)));}}$model=new蒯迪控制器();$res=$model - getMessage('ZTO ',' 12345678 ');回声“pre”;var _ dump($ RES);以上所述是小编给大家介绍的服务器端编程语言(专业超文本预处理器的缩写)使用第三方即时获取物流动态,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!

更多资讯
游戏推荐
更多+