微信公眾平臺(tái)之快遞查詢功能用法實(shí)例
本文實(shí)例講述了微信公眾平臺(tái)之快遞查詢功能用法。分享給大家供大家參考。具體如下:
使用方法:
#查快遞(或三個(gè)首字母ckd)#快遞編號(hào)#快遞單號(hào)
如(查詢EMS單號(hào)為1034616494006的快遞):
#ckd#15#1034616494006
常用快遞編號(hào):<br />
15EMS,56申通,57順豐,77圓通,
80韻達(dá),87中通,85宅急送,62天天
1. class.base.php文件:
<?php /** * 微信公眾平臺(tái)基礎(chǔ)類 For Fshare * @author: Skiychan * @created: 2013.11.19 */ class Wechat{ // public $token = ''; /* public function __construct($token){ $this->token = $token; } */ //判斷是否來自微信服務(wù)器 /* 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)){ //當(dāng)輸入文字類型 if($msgType = "text"){ //$contentStr = $keyword.$fromUsername.$time; //$preg = "/^\#([\W\w]*?)\#([\W\w]*?)\#(.*)/"; //0為功能,1為選項(xiàng),2為余下的值 //$preg = "/\#([\w]+)/"; //0為功能,1為選項(xiàng),2為余下的值 $preg = "/\#([\w\d\x{4e00}-\x{9fa5}]+)/u"; //0為功能,1為選項(xiàng),2為余下的值 preg_match_all($preg,$keyword,$newdata); $fn_name = $newdata[1][0]; //獲取快遞的參數(shù) if(strtolower($fn_name)=="skiy"){ $me = "我是此公眾帳號(hào)的開發(fā)者,英文名Skiy。\n如果你對本功能有任何意見和建議,歡迎聯(lián)系我,\n我的QQ是1005043848\n微信是forskiy,郵箱:\ndeveloper@zzzzy.com"; $contentStr = $me; } //獲取快遞的參數(shù) 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; } //主機(jī)支持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"."單號(hào):".$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 = "查詢時(shí)間:\n".$get_kdinfo['updatetime']."\n\n"; //查詢時(shí)間 $kd_shipinfo = $get_kdinfo['data']; //快遞數(shù)據(jù)數(shù)組 $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.">沒有物流數(shù)據(jù)!"; } } $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 /** * * 微信公眾平臺(tái)消息接口 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程序設(shè)計(jì)有所幫助。
相關(guān)文章
ThinkPHP的RBAC(基于角色權(quán)限控制)深入解析
本篇文章是對ThinkPHP的RBAC(基于角色權(quán)限控制)進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06php curl優(yōu)化下載微信頭像的方法總結(jié)
這篇文章主要給大家介紹了關(guān)于php curl優(yōu)化下載微信頭像的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-09-09PHP的構(gòu)造方法,析構(gòu)方法和this關(guān)鍵字詳細(xì)介紹
這篇文章介紹了PHP的構(gòu)造方法,析構(gòu)方法和this關(guān)鍵字,有需要的朋友可以參考一下2013-10-10