微信公众平台之快递查询功能用法实例
网络编程 2021-07-05 09:09www.168986.cn编程入门
这篇文章主要介绍了微信公众平台之快递查询功能用法,实例分析了微信公众平台实现快递查询的相关技巧与具体用法,非常具有实用价值,需要的朋友可以参考下
本文实例讲述了微信公众平台之快递查询功能用法。分享给大家供大家参考。具体如下
使用方法
#查快递(或三个首字母ckd)#快递编号#快递单号
如(查询EMS单号为1034616494006的快递)
#ckd#15#1034616494006
常用快递编号<br />
15EMS,56申通,57顺丰,77圆通,
80韵达,87中通,85宅急送,62天天
1. class.base.php文件
<?php / 微信公众平台基础类 For Fshare @author: Skiychan @created: 2013.11.19 / class Wechat{ // public $token = ''; / public function __construct($token){ $this->token = $token; } / //判断是否来自微信服务器 / public function valid(){ $echoStr = $_GET["echostr"]; if($this->checkSignature()){ echo $echoStr; exit; } } / public function responseMsg(){ $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; if (!empty($postStr)){ $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $fromUsername = $postObj->FromUserName; $toUsername = $postObj->ToUserName; $keyword = trim($postObj->Content); $time = time(); $textTpl = "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[%s]]></MsgType> <Content><![CDATA[%s]]></Content> <FuncFlag>0</FuncFlag> </xml>"; if(!empty($keyword)){ //当输入文字类型 if($msgType = "text"){ //$contentStr = $keyword.$fromUsername.$time; //$preg = "/^\#([\W\w]?)\#([\W\w]?)\#(.)/"; //0为功能,1为选项,2为余下的值 //$preg = "/\#([\w]+)/"; //0为功能,1为选项,2为余下的值 $preg = "/\#([\w\d\x{4e00}-\x{9fa5}]+)/u"; //0为功能,1为选项,2为余下的值 preg_match_all($preg,$keyword,$newdata); $fn_name = $newdata[1][0]; //获取快递的参数 if(strtolower($fn_name)=="skiy"){ $me = "我是此公众帐号的开发者,英文名Skiy。\n如果你对本功能有任何意见和建议,欢迎联系我,\n我的QQ是1005043848\n微信是forskiy,邮箱\ndeveloper@zzzzy."; $contentStr = $me; } //获取快递的参数 if($fn_name=="快递"||strtolower($fn_name)=="kuaidi"){ $kdlist = ''; //启用PDO连接sqlite的方式 $db = new PDO("sqlite:somedata/data.dat"); $results = $db->query('SELECT FROM kuaidi')->fetchAll(); foreach ($results as $key=>$row) { //var_dump($row); //$list_one = $row['id']." ".$row['code']." ".$row['pany']."\n"; $list_one = $row['id'].' '.$row['pany']."\n"; $kdlist = $kdlist.$list_one; } //主机支持sqlite3的方式 / $db = new SQLite3("somedata/data.dat"); $results = $db->query('SELECT FROM kuaidi'); while ($row = $results->fetchArray()) { //var_dump($row); $list_one = $row['id']." ".$row['code']." ".$row['pany']."\n\r"; $kdlist = $kdlist.$list_one; } / $contentStr = $kdlist; } if($fn_name=="查快递"||strtolower($fn_name)=="ckd"){ $id = $newdata[1][1]; $num = $newdata[1][2]; $db = new PDO("sqlite:somedata/data.dat"); $results = $db->query('SELECT code,pany FROM kuaidi WHERE id = '.$id)->fetchAll(); $code = $results[0]['code']; //获取英文代码 $ = $results[0]['pany']; //获取公司名称 $numinfo = "快递:".$."\n"."单号:".$num."\n"; $kd_url = "http://m.kuaidi100./query?type=".$code."&postid=".$num; $json_getdata = file_get_contents($kd_url); $get_kdinfo = json_decode($json_getdata); //object $get_kdinfo = json_decode($json_getdata,true); //array $last_t = "查询时间:\n".$get_kdinfo['updatetime']."\n\n"; //查询时间 $kd_shipinfo = $get_kdinfo['data']; //快递数据数组 $kd_total = count($kd_shipinfo)-1; $ship = ''; //物流倒序详情 for($i = $kd_total;$i>=0;$i--){ $shipinfo = $kd_shipinfo[$i]['time']."\n".$kd_shipinfo[$i]['context']."\n"; $ship = $shipinfo.$ship; } //顺序物流详情 /foreach ($kd_shipinfo as $v){ $shipinfo = $v['time']."\n".$v['context']."\n"; $ship = $shipinfo.$ship; } / $get_kdinfo = $numinfo.$last_t."【物流详情】\n".$ship; if($ship){ $contentStr = $get_kdinfo; }else{ $contentStr = $numinfo.">没有物流数据!"; } } $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr); echo $resultStr; }else{ echo "Input something..."; } } }else { echo "You have no enter something..."; exit; } } //判断签名,返回bool private function checkSignature(){ $signature = $_GET["signature"]; $timestamp = $_GET["timestamp"]; $nonce = $_GET["nonce"]; $token = TOKEN; $tmpArr = array($token, $timestamp, $nonce); sort($tmpArr); $tmpStr = implode( $tmpArr ); $tmpStr = sha1( $tmpStr ); if( $tmpStr == $signature ){ return true; }else{ return false; } } }
2. index.php文件
<?php / 微信公众平台消息接口 For Fshare(分享资讯) @author: Skiychan (Wechat:forskiy) @created:2013.11.19 / include_once 'class.base.php'; define('TOKEN', 'skiychan'); $wx = new Wechat(); //$wx->valid(); $wx->responseMsg();
希望本文所述对大家的php程序设计有所帮助。
上一篇:PHP数组操作——获取数组最后一个值的方法
下一篇:php生成rss类用法实例
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程