微信公众平台之快递查询功能用法实例
程序员文章站
2022-03-14 14:09:26
本文实例讲述了微信公众平台之快递查询功能用法。分享给大家供大家参考。具体如下:
使用方法:
#查快递(或三个首字母ckd)#快递编号#快递单号
如(查询ems单号为1...
本文实例讲述了微信公众平台之快递查询功能用法。分享给大家供大家参考。具体如下:
使用方法:
#查快递(或三个首字母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.com"; $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['company']."\n"; $list_one = $row['id'].' '.$row['company']."\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['company']."\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,company from kuaidi where id = '.$id)->fetchall(); $code = $results[0]['code']; //获取英文代码 $com = $results[0]['company']; //获取公司名称 $numinfo = "快递:".$com."\n"."单号:".$num."\n"; $kd_url = "http://m.kuaidi100.com/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程序设计有所帮助。