微信公眾平臺開發(fā)教程⑥ 微信開發(fā)集成類的使用圖文詳解_第1頁
微信公眾平臺開發(fā)教程⑥ 微信開發(fā)集成類的使用圖文詳解_第2頁
微信公眾平臺開發(fā)教程⑥ 微信開發(fā)集成類的使用圖文詳解_第3頁
微信公眾平臺開發(fā)教程⑥ 微信開發(fā)集成類的使用圖文詳解_第4頁
微信公眾平臺開發(fā)教程⑥ 微信開發(fā)集成類的使用圖文詳解_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第微信公眾平臺開發(fā)教程⑥微信開發(fā)集成類的使用圖文詳解本文實(shí)例講述了微信公眾平臺開發(fā)之微信開發(fā)集成類的使用。分享給大家供大家參考,具體如下:

這幾天又在接觸微信PHP方面的開發(fā),認(rèn)為之前寫的文章確實(shí)有些亂,剛好發(fā)現(xiàn)了一個(gè)不錯(cuò)的集成類(看原始代碼,出自“云知夢軍哥”,不算打廣告,只是尊重別人的開發(fā)成果,謝謝)里面涉及了非常全面的函數(shù),在此針對我自己的實(shí)際使用過程簡單的描述一下希望能給同道小白們一個(gè)誠懇的引導(dǎo)...

框架:ThinkPHP3.2.3

前期準(zhǔn)備:

①.微信公眾平臺的配置

這里不贅述,具體的可以參考我前面所寫的1、2章,個(gè)人認(rèn)為還是比較全面的

②.將文件Weixin.class.php放在對應(yīng)的library目錄中

不過本人人開發(fā)是基于ThinkPHP框架,如果使用了其它的方式,注意更改引用路徑,相信還是較為容易的,參考截圖如下:

③.對應(yīng)的數(shù)據(jù)庫中需要新建一個(gè)表

當(dāng)然,后期優(yōu)化可以考慮去掉或自行設(shè)計(jì),在這里個(gè)人覺得比較合理,也方便自己測試(公眾號在線接口調(diào)試工具)

④.此表是用來微信授權(quán)時(shí)自動存儲公眾號信息及其token獲取時(shí)間

而對應(yīng)操作此表的代碼位于Weixin.class中的getaccesstoken()方法,

如果不是采用的ThinkPHP框架,可針對此方法中的sql語句進(jìn)行替換截取部分代碼可供參考

一.開發(fā)者模式配置

①.參考配置截圖

②.注意匹配對應(yīng)目錄以及令牌

*微信開發(fā)配置控制器

*ClassWeixinController

*@packageM\Controller

classWeixinControllerextendsController

publicfunctionindex()

import('Org.Wechat.Weixin');

//參數(shù)傳值token、AppID、AppSecert

$wechat=new\Weixin('zxxxi','wxxxxxxxxx89','efxxxxxxxxxxxxxxxxxxxxxxxb7');

if(!isset($_GET['echostr'])){

//TODO調(diào)用響應(yīng)消息函數(shù)自動回復(fù)

$wechat-responseMsg();

}else{

//實(shí)現(xiàn)網(wǎng)址接入,調(diào)用驗(yàn)證消息函數(shù)

$wechat-valid();

}

③.必要文件上傳

微信公眾平臺近期發(fā)現(xiàn)規(guī)定需要在相應(yīng)域名的根目錄下上傳文件,具體可從公眾號下載。

二.請求授權(quán)登錄,獲取微信用戶信息

①.代碼參考

下面是本人摘抄并精簡的部分代碼,具體的業(yè)務(wù)邏輯需要自己相應(yīng)進(jìn)行補(bǔ)充或刪減

import('Org.Wechat.Weixin');

//參數(shù)傳值token、AppID、AppSecert

$wechat=new\Weixin('zxxxxi','wxxxxxxxxxxxxx9','efxxxxxxxxxxxxxxxxxxxxxxxxxxxx7');

//可理解為這是當(dāng)下的鏈接地址

$url="".$_SERVER['REQUEST_URI'];

//TODO判斷memcache是否有值,是否過期(此處只是一個(gè)判斷舉例)

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);

//查詢數(shù)據(jù)庫是否存在

$userData=M('users')

-where("openid='$openid'")

-Field('user_id,user_name,abnormal')

-find();

if($userData['user_id']){

//執(zhí)行操作或者跳轉(zhuǎn)頁面

header("Location:???????");

}else{

//沒有帳號需要轉(zhuǎn)到用戶名填寫頁面來完成授權(quán)

$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進(jìn)行新用戶的添加

$addTag=add('users',$user);

}else{

//重新跳轉(zhuǎn),或其他操作...

}

②.手機(jī)微信端登錄對應(yīng)鏈接的結(jié)果

③.補(bǔ)充說明

$user_info=$wechat-getOauthUserinfo($reT['access_token'],$openid);

此處返回的$user_info為授權(quán)用戶的詳細(xì)信息,可追蹤方法查看源代碼中OAUTH_USERINFO_URL的定義開發(fā)者文檔有介紹其意義,之前的兩篇文章里也做了簡單介紹

三、微信端分享功能

①.配置微信分享相應(yīng)數(shù)據(jù)

下面的方法個(gè)人設(shè)計(jì)面向?qū)ο髸r(shí)是在繼承的Controller構(gòu)造函數(shù)中初始化調(diào)用的,大家可以按自己需求放置

*配置微信分享功能

publicfunctiongetWxShare(){

import('Org.Wechat.Weixin');

$wechat=new\Weixin('zxxxxi','wxxxxxxxxxxxx9','efxxxxxxxxxxxxxxxxxxb7');

$url="".$_SERVER['REQUEST_URI'];

$res=$wechat-getJsSign($url);

$res['wxurl']=$url;

$this-assign('wx',$res);

}

②.前臺頁面的配置信息

多數(shù)就是html前臺文件,補(bǔ)充如下的js代碼,具體的數(shù)據(jù)可自己修改

scriptsrc="/open/js/jweixin-1.1.0.js"type="text/javascript"/script

script

*Createdby百鬼夜行on2017/4/27.

//通過config接口注入權(quán)限驗(yàn)證配置

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:"真米如初:美好的東西如期相遇值得期待",//分享標(biāo)題

link:"{$wx.wxurl}",//分享鏈接

desc:"關(guān)注飲食,品質(zhì)生活。您的健康,是我們最好的堅(jiān)持,有真米,生活才夠美!",//分享描述

imgUrl:"/Public/upload/20170426/149321008494428.jpg",//分享圖標(biāo)

//發(fā)送給好友

wx.onMenuShareAppMessage({

title:"真米如初:美好的東西如期相遇值得期待",//分享標(biāo)題

link:"{$wx.wxurl}",//分享鏈接

desc:"關(guān)注飲食,品質(zhì)生活。您的健康,是我們最好的堅(jiān)持,有真米,生活才夠美!",//分享描述

imgUrl:"/Public/upload/20170426/149321008494428.jpg",//分享圖標(biāo)

//QQ好友

wx.onMenuShareQQ({

title:"真米如初:美好的東西如期相遇值得期待",//分享標(biāo)題

link:"{$wx.wxurl}",//分享鏈接

desc:"關(guān)注飲食,品質(zhì)生活。您的健康,是我們最好的堅(jiān)持,有真米,生活才夠美!",//分享描述

imgUrl:"/Public/upload/20170426/149321008494428.jpg",//分享圖標(biāo)

//騰訊微博

wx.onMenuShareWeibo({

title:"真米如初:美好的東西如期相遇值得期待",//分享標(biāo)題

link:"{$wx.wxurl}",//分享鏈接

desc:"關(guān)注飲食,品質(zhì)生活。您的健康,是我們最好的堅(jiān)持,有真米,生活才夠美!",//分享描述

imgUrl:"/Public/upload/20170426/149321008494428.jpg",//分享圖標(biāo)

/script

③.最終實(shí)現(xiàn)的效果如下

補(bǔ)充提醒:

(1).首先要保證開發(fā)配置信息的準(zhǔn)確性

(2).有時(shí)會出現(xiàn)token令牌失效的情況,注意本地測試時(shí)很可能會影響線上,應(yīng)該就是獲取新的令牌使得線上的數(shù)據(jù)庫中不對應(yīng),注意一下。

(3).分享頁面的操作,為了方便處理可能出現(xiàn)的失敗情況,可以先用調(diào)試模式將wx.config中的debug值更改為true,待正確無誤后再改回來。針對具體的報(bào)錯(cuò)信息需要查詢微信開發(fā)者文檔,相信每一個(gè)想走程序猿道路的人,都會強(qiáng)制習(xí)慣補(bǔ)坑填坑...

debug:true,

四、公眾號發(fā)送消息

可用于簡單消息的發(fā)送,比如用戶購物完成后對公眾號管理員的消息提醒等.

①.前提

所要發(fā)送信息的用戶關(guān)注了當(dāng)前的公眾號

②.代碼舉例

*此方法不支持圖片發(fā)送注意文字的換行顯示

publicfunctionpostMsg(){

import('Org.Wechat.Weixin');

$wechat=new\Weixin('zxxxxi','wxxxxxxxxxx9','efxxxxxxxxxxxxxxxxxxxxxxxxxb7');

$content="微信公眾號發(fā)送:\n";

$content.="人生如戲,我們以為可以改變自己的命運(yùn),卻沒想到我們的結(jié)局早已注定。\n無論怎么做都擺脫不了戲里既定的安排,可謂殊途同歸。";

$content.="如此看來,我們的拼搏和掙扎就像小丑在跳舞,徒惹人發(fā)笑罷了。";

//TODO微信用戶唯一標(biāo)記-openID前提是對方已經(jīng)關(guān)注公眾號

$wxOpenID="oIaCOxxxxxxxxxxxxxxxxxxxxFe0";

$wechat-postMaggerToUser($wxOpenID,$content);

}

③.實(shí)現(xiàn)效果

五、公眾號自動回復(fù)

功能主要用于用戶操作公眾號時(shí)的觸發(fā)事件處理,比如關(guān)注時(shí)的消息發(fā)送、按鈕點(diǎn)擊的監(jiān)聽等

①.主要的配置

其實(shí)來源于上面第一節(jié)對開發(fā)者模式的配置,而舉例代碼中WeixinController的index()重要的就是那不到十行的代碼

②.監(jiān)聽響應(yīng)消息的函數(shù)

監(jiān)聽響應(yīng)消息的函數(shù)為Weixin.class中的responseMsg(),對于其中詳細(xì)的數(shù)據(jù)處理可根據(jù)不同的觸發(fā)事件路徑進(jìn)行代碼的修改

③.舉例:關(guān)注公眾號后的消息發(fā)送

④.舉例:

根據(jù)用戶的輸入進(jìn)行消息的自動回復(fù),代碼實(shí)際開發(fā)中可根據(jù)獲得的文字進(jìn)行項(xiàng)目數(shù)據(jù)庫中的文字匹配,此處簡單演示即可。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論