Welcome 微信登录

首页 / 网页编程 / PHP / 微信公众平台之快递查询功能用法实例

本文实例讲述了微信公众平台之快递查询功能用法。分享给大家供大家参考。具体如下:
使用方法:
#查快递(或三个首字母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 = "/^#([Ww]*?)#([Ww]*?)#(.*)/"; //0为功能,1为选项,2为余下的值 //$preg = "/#([w]+)/"; //0为功能,1为选项,2为余下的值 $preg = "/#([wdx{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。
如果你对本功能有任何意见和建议,欢迎联系我,
我的QQ是1005043848
微信是forskiy,邮箱:
developer@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"]."
"; $list_one = $row["id"]." ".$row["company"]."
"; $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"]."

"; $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."
"."单号:".$num."
";$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 = "查询时间:
".$get_kdinfo["updatetime"]."

";//查询时间$kd_shipinfo = $get_kdinfo["data"]; //快递数据数组$kd_total = count($kd_shipinfo)-1;$ship = "";//物流倒序详情for($i = $kd_total;$i>=0;$i--){ $shipinfo = $kd_shipinfo[$i]["time"]."
".$kd_shipinfo[$i]["context"]."
"; $ship = $shipinfo.$ship;}//顺序物流详情/*foreach ($kd_shipinfo as $v){ $shipinfo = $v["time"]."
".$v["context"]."
"; $ship = $shipinfo.$ship;}*/$get_kdinfo = $numinfo.$last_t."【物流详情】
".$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程序设计有所帮助。