微信公眾號開發入門篇--使用TP框架配置
阿新 • • 發佈:2019-02-09
恰逢適時,吾於慕課網習得微信公眾賬號開發教程,遂吾寫下此文,留作筆記。
首先我們要去申請一個微信測試號,這個比較簡單,直接開啟 微信公眾者平臺,如圖1所示:
圖 1 申請微信測試賬號
接著我們掃一掃登陸之後會看到如圖2所示的介面:
圖 2 微信測試號登陸之後的介面
show一下我的程式碼目錄結構,見圖3:
不難發現,這是一個標準的Tp框架目錄結構,我這裡是用的是tp3.2.3版本。接著給大家展示一下原始碼:這裡我就直接展示我的控制器方法了,希望可以給大家的開發帶來參考意義。
<?php namespace Home\Controller; use Think\Controller; class IndexController extends Controller { public function index() { $this->show('This is for Wechat','utf-8'); } //使用者首次配置開發環境 public function echoStr() { $signature = $_GET["signature"]; $timestamp = $_GET["timestamp"]; $nonce = $_GET["nonce"]; $echostr = $_GET['echostr']; $token = 'skye'; $tmpArr = array($token, $timestamp, $nonce); sort($tmpArr, SORT_STRING); $tmpStr = implode( $tmpArr ); $tmpStr = sha1( $tmpStr ); if( $tmpStr == $signature && $echostr) { echo $echostr; }else{ $this->reposeMsg(); } } //回覆訊息 public function reposeMsg() { //1.接受資料 $postArr = $GLOBALS['HTTP_RAW_POST_DATA']; //接受xml資料 //2.處理訊息型別,推送訊息 $postObj = simplexml_load_string( $postArr ); //將xml資料轉化為物件 if( strtolower( $postObj->MsgType ) == 'event') { //關注公眾號事件 if( strtolower( $postObj->Event ) == 'subscribe' ) { $toUser = $postObj->FromUserName; $fromUser = $postObj->ToUserName; $time = time(); $msgType = 'text'; $content = '你終於來啦,等你等的好辛苦啊!可嘗試輸入關鍵字:教程,Tel,wechat,1等000'; $template = "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[%s]]></MsgType> <Content><![CDATA[%s]]></Content> </xml>"; echo sprintf($template, $toUser, $fromUser, $time, $msgType, $content); } } //回覆文字資訊 if( strtolower( $postObj->MsgType ) == 'text' && trim($postObj->Content)=='wechat') { $toUser = $postObj->FromUserName; $fromUser = $postObj->ToUserName; $arr = array( array( 'title'=>'test', 'description'=>"just so so...", 'picUrl'=>'http://www.acting-man.com/blog/media/2014/11/secret-.jpg', 'url'=>'http://www.imooc.com', ), array( 'title'=>'hao123', 'description'=>"hao123 is very cool", 'picUrl'=>'https://www.baidu.com/img/bdlogo.png', 'url'=>'http://www.hao123.com', ), array( 'title'=>'qq', 'description'=>"qq is very cool", 'picUrl'=>'http://www.imooc.com/static/img/common/logo.png', 'url'=>'http://www.qq.com', ), ); $template = "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[%s]]></MsgType> <ArticleCount>".count($arr)."</ArticleCount> <Articles>"; foreach($arr as $k=>$v){ $template .="<item> <Title><![CDATA[".$v['title']."]]></Title> <Description><![CDATA[".$v['description']."]]></Description> <PicUrl><![CDATA[".$v['picUrl']."]]></PicUrl> <Url><![CDATA[".$v['url']."]]></Url> </item>"; } $template .="</Articles> </xml> "; echo sprintf($template, $toUser, $fromUser, time(), 'news'); //注意:進行多圖文傳送時,子圖文個數不能超過10個 }else{ switch( trim( $postObj->Content ) ) { case 1: $content = '你輸入了個數字1'; break; case Tel: $content = '12345678901'; break; case '教程': $content = "<a href='www.imooc.com'>慕課網</a>"; break; case '部落格': $content = "<a href='blog.abc.com'>測試微信</a>"; break; default: $content = '升級打造中...'; break; } $toUser = $postObj->FromUserName; $fromUser = $postObj->ToUserName; $time = time(); $msgType = 'text'; $template = "<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[%s]]></MsgType> <Content><![CDATA[%s]]></Content> </xml>"; echo sprintf($template, $toUser, $fromUser, $time, $msgType, $content); } } }
學習自:微信公眾號的開發