宝哥软件园

PHP开发实现快速查询功能

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

背景:前不久设计实现了JD.COM api的功能,发现如果重新设计其他快递系统会浪费太多时间,所以选择第三方提供的快递API是最合理的。下面给出了快鸟和快运100的设计和实现。

一.快递鸟

I.快递鸟api实现物流即时查询

1.首先你要有一个快鸟账号,根据对方的要求完善用户申请。

2.根据自己的需求开放服务

3.进入“我的API接口”,根据“接口”中的开发文档了解设计需求,下载官方演示,编辑成适合自己的代码。

II.“即时查询”代码实现

1.修改官方演示代码,我在这里分离了一个快递类来提高适用性

2.介绍类文件,实例化并测试它们

(注:引用该api时,明确除了进货物流订单号参数外,还需要“快递公司代码”,可以下载存储在自己设计平台的数据库中。发现excel表中没有京东物流,但使用“JD”可以找到,估计是表更新不够及时)

3.输出效应

二.快递100设计实现

1.实例化操作类,测试代码

include _ once ' express . PHP ';$运单代码=' VA33016759650$ Express=new Express();$ RES=$ express-express info($运单代码);$ trace=$ RES[' data '];var _ dump($ trace);(注意:这里只需要传一个快递号,比之前的快递鸟api更智能)

2.测试得到的数据

3.界面简单设计效果如下,仅做参考

4.补充参考代码,匹配显示常用物流公司(2017-1-19)

显然,需要根据获取的物流信息中的“com”对应快递100提供的代码,然后发现只有word文档,如果有excel表格,方便录入数据库。

更新后的Express.class.php代码如下:

?PHP/* * * Express.class.php快递查询类v1.0 * * @版权所有百鬼夜行* @最后修改2017-01-19 */class Express {//根据快递单号查询物流信息函数公共函数表达式信息($ order){ header(' Content-type : text/html;charset=utf-8 ');$ result=$ this-get order($ order);$ express=$ this-TraceExpress();foreach($ express as $ key=$ value){ if($ result[' com ']==$ key){ $ result[' comName ']=$ value;打破;}else{ $result['comName']='暂无匹配;} }返回$ result} //快递100物流公司公共函数trace express(){ $ express=array(' aae '=' aae全球专递,'安杰'='安捷快递,'安心快洗'='安信达快递,' biaojikuaidi'='彪记快递,'大田五六'='大田物流,'德邦五六'='德邦物流,' ems'='ems快递,'国通快第'='国通快递,'汇通快地'='汇通快运,' jixianda '='急先达,'快捷苏迪'='快捷速递,'全风快地'='全峰快递,' rufengda'='如风达,'申通'='申通,'顺丰'='顺丰,'田甜'='天天快递,'新丰五六'='信丰物流,'一榜五六'='一邦速递,'童渊'='圆通速递,'大云'='韵达快运,'翟纪松'='宅急送,'中通'='中通速递,' jd'='京东快递' );退回$ express} /* *网页内容获取方法*/私有函数获取内容($ URL){ if(function _ exists(' file _ get _ contents '){ $ file _ contents=file _ get _ contents($ URL);} else { $ ch=curl _ init();$超时=5;curl_setopt($ch,CURLOPT_URL,$ URL);curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$ time out);$ file _ contents=curl _ exec($ ch);curl _ close($ ch);}返回$ file _ contents} /* *获取对应名称和对应传值的方法*/private function express name($ order){ $ name=JSON _ decode($ this-getcontent(' http://www。奎迪100。com/自动号码/自动?num={$order} '),true);$ result=$ name[0][' ComCode '];if(empty($ result)){ return false;} else { return $ result} } /* *返回$数据数组快递数组查询失败返回false * @param $order快递的单号* $data['ischeck']==1已经签收* $data['data']快递实时查询的状态数组*/公共函数get order($ order){ $ keywords=$ this-express name($ order);if(!$ keywords){ return false;} else { $ result=$ this-get content(' http://www。奎迪100。com/query?type={ $ keywords } postid={ $ order } ');$data=json_decode($result,true);返回$数据;} }}附录源代码

更多关于服务器端编程语言(专业超文本预处理器的缩写)相关内容感兴趣的读者可查看本站专题: 《php curl用法总结》 、 《PHP网络编程技巧总结》 、 《PHP数组(Array)操作技巧大全》 、 《php字符串(string)用法总结》 、 《PHP数据结构与算法教程》 及《PHP中json格式数据操作技巧汇总》

希望本文所述对大家服务器端编程语言(专业超文本预处理器的缩写)程序设计有所帮助。

更多资讯
游戏推荐
更多+