您好,登錄后才能下訂單哦!
這篇文章主要介紹了微信公眾平臺開發之微信開發集成類怎么用,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
這里不贅述,具體的可以參考我前面所寫的1、2章,個人認為還是比較全面的
不過本人人開發是基于 ThinkPHP 框架,如果使用了其它的方式,注意更改引用路徑,相信還是較為容易的,參考截圖如下:
當然,后期優化可以考慮去掉或自行設計,在這里個人覺得比較合理,也方便自己測試(公眾號在線接口調試工具)
而對應操作此表的代碼位于 Weixin.class 中的 getaccesstoken()方法,
如果不是采用的 ThinkPHP 框架,可針對此方法中的 sql 語句進行替換截取部分代碼可供參考
/** * 微信開發配置控制器 * Class WeixinController * @package M\Controller */ class WeixinController extends Controller { public function index() { import('Org.Wechat.Weixin'); //參數傳值 token、AppID、AppSecert $wechat = new \Weixin('zxxxi', 'wxxxxxxxxx89', 'efxxxxxxxxxxxxxxxxxxxxxxxb7'); if (!isset($_GET['echostr'])) { //TODO 調用響應消息函數 自動回復 $wechat->responseMsg(); } else { //實現網址接入,調用驗證消息函數 $wechat->valid(); } } }
微信公眾平臺近期發現規定需要在相應域名的根目錄下上傳文件,具體可從公眾號下載。
下面是本人摘抄并精簡的部分代碼,具體的業務邏輯需要自己相應進行補充或刪減
import('Org.Wechat.Weixin'); //參數傳值 token、AppID、AppSecert $wechat=new \Weixin('zxxxxi','wxxxxxxxxxxxxx9','efxxxxxxxxxxxxxxxxxxxxxxxxxxxx7'); //可理解為這是當下的鏈接地址 $url = "http://www.xxxxx.com".$_SERVER['REQUEST_URI']; //TODO 判斷 memcache是否有值,是否過期 (此處只是一個判斷舉例) if(!S(session('XXXNAME').'_NAMEID')){ if(!$_GET['code']){ $redirect_uri = $url; $urls=$wechat->getOauthRedirect($redirect_uri); header("Location:".$urls); die; } } $reT=$wechat->getOauthAccessToken(); //TODO 如果獲得 token值 if($reT){ $openid = $reT['openid']; $user_info = $wechat->getOauthUserinfo($reT['access_token'],$openid); //查詢數據庫是否存在 $userData = M('users') ->where("openid = '$openid'") ->Field('user_id,user_name,abnormal') ->find(); if ($userData['user_id']) { //執行操作 或者跳轉頁面 header("Location:???????"); }else{ //沒有帳號需要轉到用戶名填寫頁面來完成授權 $maxuid = M('users')->max('user_id'); $user['openid'] = $openid; $user['nickname'] = $user_info['nickname']; $user['sex'] = $user_info['sex']; $user['reg_time'] = time(); $user['user_img'] = $user_info['headimgurl']; //TODO 進行新用戶的添加 $addTag = add('users',$user); } }else{ //重新跳轉,或其他操作... }
$user_info = $wechat->getOauthUserinfo($reT['access_token'],$openid);
此處返回的$user_info 為授權用戶的詳細信息,可追蹤方法查看源代碼中 OAUTH_USERINFO_URL 的定義開發者文檔有介紹其意義,之前的兩篇文章里也做了簡單介紹
下面的方法個人設計面向對象時是在繼承的 Controller 構造函數中初始化調用的,大家可以按自己需求放置
/** * 配置微信分享功能 */ public function getWxShare(){ import('Org.Wechat.Weixin'); $wechat=new \Weixin('zxxxxi','wxxxxxxxxxxxx9','efxxxxxxxxxxxxxxxxxxb7'); $url = "http://www.xxxxxmi.com".$_SERVER['REQUEST_URI']; $res = $wechat->getJsSign($url); $res['wxurl'] = $url; $this->assign('wx',$res); }
多數就是 html 前臺文件,補充如下的 js 代碼,具體的數據可自己修改
<script src="http://res.wx.qq.com/open/js/jweixin-1.1.0.js" type="text/javascript"></script> <script> /** * Created by 百鬼夜行 on 2017/4/27. */ //通過config接口注入權限驗證配置 wx.config({ debug : false, appId : "{$wx.appid}", timestamp : "{$wx.timestamp}", nonceStr : "{$wx.noncestr}", url : "{$wx.url}", signature : "{$wx.signature}", jsApiList : ['onMenuShareTimeline', 'onMenuShareAppMessage', 'onMenuShareQQ', 'onMenuShareWeibo'] }); wx.ready(function(){ //朋友圈 wx.onMenuShareTimeline({ title : "真米如初:美好的東西 如期相遇 值得期待", // 分享標題 link : "{$wx.wxurl}", // 分享鏈接 desc : "關注飲食,品質生活。您的健康,是我們最好的堅持,有真米,生活才夠美!", //分享描述 imgUrl : "http://img.52zhenmi.com/Public/upload/20170426/149321008494428.jpg", // 分享圖標 }); //發送給好友 wx.onMenuShareAppMessage({ title : "真米如初:美好的東西 如期相遇 值得期待", // 分享標題 link : "{$wx.wxurl}", // 分享鏈接 desc : "關注飲食,品質生活。您的健康,是我們最好的堅持,有真米,生活才夠美!", //分享描述 imgUrl : "http://img.52zhenmi.com/Public/upload/20170426/149321008494428.jpg", // 分享圖標 }); //QQ好友 wx.onMenuShareQQ({ title : "真米如初:美好的東西 如期相遇 值得期待", // 分享標題 link : "{$wx.wxurl}", // 分享鏈接 desc : "關注飲食,品質生活。您的健康,是我們最好的堅持,有真米,生活才夠美!", //分享描述 imgUrl : "http://img.52zhenmi.com/Public/upload/20170426/149321008494428.jpg", // 分享圖標 }); //騰訊微博 wx.onMenuShareWeibo({ title : "真米如初:美好的東西 如期相遇 值得期待", // 分享標題 link : "{$wx.wxurl}", // 分享鏈接 desc : "關注飲食,品質生活。您的健康,是我們最好的堅持,有真米,生活才夠美!", //分享描述 imgUrl : "http://img.52zhenmi.com/Public/upload/20170426/149321008494428.jpg", // 分享圖標 }); }); </script>
(1).首先要保證開發配置信息的準確性
(2).有時會出現token令牌失效的情況,注意本地測試時很可能會影響線上,應該就是獲取新的令牌使得線上的數據庫中不對應,注意一下。
(3).分享頁面的操作,為了方便處理可能出現的失敗情況,可以先用調試模式將wx.config中的 debug值更改為true,待正確無誤后再改回來。針對具體的報錯信息需要查詢微信開發者文檔,相信每一個想走程序猿道路的人,都會強制習慣補坑填坑 ...
debug : true,
可用于簡單消息的發送,比如用戶購物完成后對公眾號管理員的消息提醒等.
所要發送信息的用戶關注了當前的公眾號
/** * 此方法不支持 圖片發送 注意文字的換行顯示 */ public function postMsg(){ import('Org.Wechat.Weixin'); $wechat=new \Weixin('zxxxxi','wxxxxxxxxxx9','efxxxxxxxxxxxxxxxxxxxxxxxxxb7'); $content = "微信公眾號發送:\n"; $content .= "人生如戲,我們以為可以改變自己的命運,卻沒想到我們的結局早已注定。\n無論怎么做都擺脫不了戲里既定的安排,可謂殊途同歸。"; $content .= "如此看來,我們的拼搏和掙扎就像小丑在跳舞,徒惹人發笑罷了。"; //TODO 微信用戶唯一標記-openID 前提是對方已經關注公眾號 $wxOpenID = "oIaCOxxxxxxxxxxxxxxxxxxxxFe0"; $wechat->postMaggerToUser($wxOpenID,$content); }
功能主要用于用戶操作公眾號時的觸發事件處理,比如關注時的消息發送、按鈕點擊的監聽等
其實來源于上面第一節對開發者模式的配置,而舉例代碼中 WeixinController 的 index()重要的就是那不到十行的代碼
監聽響應消息的函數為 Weixin.class 中的 responseMsg(),對于其中詳細的數據處理可根據不同的觸發事件路徑進行代碼的修改
根據用戶的輸入進行消息的自動回復,代碼實際開發中可根據獲得的文字進行項目數據庫中的文字匹配,此處簡單演示即可。
感謝你能夠認真閱讀完這篇文章,希望小編分享的“微信公眾平臺開發之微信開發集成類怎么用”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。