微信開發學習日記(八):7步看懂weiphp外掛機制,核心目標是響應微信請求
又經過了幾個小時的梳理、回顧,截至目前,終於對weiphp這個框架的機制搞明白了些。想要完全明白,自然還需要大把的時間。
第1步:
配置微信公眾號,http://weiphp.jiutianniao.com/ ... .html
從上面這個配置可以看出,微信請求唄weiphp的入口檔案index.php接收了,可能會被/home/weixin/index/這個action響應。
第2步:
index.php入口檔案,校驗了是否是微信請求。
/**
* 微信接入驗證
* 在入口進行驗證而不是放到框架裡驗證,主要是解決驗證URL超時的問題
*/
if (! empty ( $_GET ['echostr'] ) && ! empty ( $_GET ["signature"] ) && ! empty ( $_GET ["nonce"] )) {
}
第3步:
入口已經驗證過了,即不是“第一次” ,請求會被分發到home模組的WeixinController的index這個方法。
第4步:
在index方法中, 首先獲得的就是token、openid、粉絲等資訊。
最關鍵的處理是,回覆資料。
// 回覆資料
$this->reply ( $data, $weixin );
第5步:
在reply函式中, 就是尋找合適的外掛進行訊息響應。
涉及到的問題有,安裝了哪些外掛、哪些啟用了、哪些有許可權。
準備了可用外掛之後, 根據訊息的型別,事件、地理位置、訂閱,尋找合適的外掛,比如如果有location事件,外掛就執行對應的回撥方法。
還有的情況是,訊息。
根據關鍵字,回覆訊息。
這個時候,問題就變成了 外掛定位問題。
a.通過外掛標識名、外掛名或者自定義關鍵詞來定位處理的外掛
b.通過精準關鍵詞來定位處理的外掛 token=0是外掛安裝時初始化的模糊關鍵詞,所有公眾號都可以用
c.通過模糊關鍵詞來定位處理的外掛
d.最終也無法定位到外掛,終止操作
疑問:通過程式碼,發現location等事件,有很多外掛都會處理這個事件。而訊息,只會找到一個外掛。是這麼個情況麼?
第6步:
外掛的weixinmodel。
/**
* Vote模型
*/
class WeixinAddonModel extends WeixinModel {
function reply($dataArr, $keywordArr = array()) {
}
微信外掛,基本都會有個WeixinModel類,如果有必要,會響應微信的請求。
第7步:
URL響應問題。
這個地方一直有疑惑,如果所謂的外掛機制,就是根據使用者傳送到關鍵詞,讓不同的類-外掛去響應,這也太沒有“含金量” 了吧。難道微信的核心玩法就是這個東東麼?
class VoteController extends AddonsController {
}
每個外掛,可能會有Controller,響應URL請求。比如,後臺管理和前臺管理(不會直接和微信進行互動) ,會有一些管理方法,設定資訊之類的。
另外,有些在weixinModel的reply 方法中,可能包含了外掛內部定義的url,這個感覺才真的很有價值。
總結:weiphp這個微信框架,簡要總結起來就4點。
1.weiphp基於Thinkphp和Onethink。疑問的是,weiphp有沒有對Thinkphp和Onethink的核心程式碼有改動。如果有改動的話,更多的應該是對Onethink改動。
2.weiphp的核心入口,就是index.php和/home/weixin/index方法,驗證和響應微信請求。
3. 外掛機制,感覺就是根據關鍵字找外掛,讓外掛響應請求。
4.後臺管理系統、使用者端的前端管理、外掛機制,都是為了微信框架的核心目標“響應微信請求”。
這才是最最關鍵的地方呀。
武漢九天鳥-武漢領先的移動網際網路系統開發商
九天鳥問答-http://ask.jiutianniao.com
九天鳥部落格-http://blog.jiutianniao.com
九天鳥官網-建設中,敬請期待
2015年4月17日
第1步:
配置微信公眾號,http://weiphp.jiutianniao.com/ ... .html
從上面這個配置可以看出,微信請求唄weiphp的入口檔案index.php接收了,可能會被/home/weixin/index/這個action響應。
第2步:
index.php入口檔案,校驗了是否是微信請求。
/**
* 微信接入驗證
* 在入口進行驗證而不是放到框架裡驗證,主要是解決驗證URL超時的問題
*/
if (! empty ( $_GET ['echostr'] ) && ! empty ( $_GET ["signature"] ) && ! empty ( $_GET ["nonce"] )) {
}
第3步:
入口已經驗證過了,即不是“第一次” ,請求會被分發到home模組的WeixinController的index這個方法。
第4步:
在index方法中, 首先獲得的就是token、openid、粉絲等資訊。
最關鍵的處理是,回覆資料。
// 回覆資料
$this->reply ( $data, $weixin );
第5步:
在reply函式中, 就是尋找合適的外掛進行訊息響應。
涉及到的問題有,安裝了哪些外掛、哪些啟用了、哪些有許可權。
準備了可用外掛之後, 根據訊息的型別,事件、地理位置、訂閱,尋找合適的外掛,比如如果有location事件,外掛就執行對應的回撥方法。
還有的情況是,訊息。
根據關鍵字,回覆訊息。
這個時候,問題就變成了 外掛定位問題。
a.通過外掛標識名、外掛名或者自定義關鍵詞來定位處理的外掛
b.通過精準關鍵詞來定位處理的外掛 token=0是外掛安裝時初始化的模糊關鍵詞,所有公眾號都可以用
c.通過模糊關鍵詞來定位處理的外掛
d.最終也無法定位到外掛,終止操作
疑問:通過程式碼,發現location等事件,有很多外掛都會處理這個事件。而訊息,只會找到一個外掛。是這麼個情況麼?
第6步:
外掛的weixinmodel。
/**
* Vote模型
*/
class WeixinAddonModel extends WeixinModel {
function reply($dataArr, $keywordArr = array()) {
}
微信外掛,基本都會有個WeixinModel類,如果有必要,會響應微信的請求。
第7步:
URL響應問題。
這個地方一直有疑惑,如果所謂的外掛機制,就是根據使用者傳送到關鍵詞,讓不同的類-外掛去響應,這也太沒有“含金量” 了吧。難道微信的核心玩法就是這個東東麼?
class VoteController extends AddonsController {
}
每個外掛,可能會有Controller,響應URL請求。比如,後臺管理和前臺管理(不會直接和微信進行互動) ,會有一些管理方法,設定資訊之類的。
另外,有些在weixinModel的reply 方法中,可能包含了外掛內部定義的url,這個感覺才真的很有價值。
總結:weiphp這個微信框架,簡要總結起來就4點。
1.weiphp基於Thinkphp和Onethink。疑問的是,weiphp有沒有對Thinkphp和Onethink的核心程式碼有改動。如果有改動的話,更多的應該是對Onethink改動。
2.weiphp的核心入口,就是index.php和/home/weixin/index方法,驗證和響應微信請求。
3. 外掛機制,感覺就是根據關鍵字找外掛,讓外掛響應請求。
4.後臺管理系統、使用者端的前端管理、外掛機制,都是為了微信框架的核心目標“響應微信請求”。
這才是最最關鍵的地方呀。
武漢九天鳥-武漢領先的移動網際網路系統開發商
九天鳥問答-http://ask.jiutianniao.com
九天鳥部落格-http://blog.jiutianniao.com
九天鳥官網-建設中,敬請期待
2015年4月17日
相關文章
- 微信開發學習日記(七):開源微商城wemall
- 微信小程式-發起請求微信小程式
- Flutter 外掛開發:以微信SDK為例Flutter
- 微信小程式開發學習筆記[4]微信小程式筆記
- 微信小程式開發學習筆記[2]微信小程式筆記
- 微信小程式開發學習筆記[3]微信小程式筆記
- Apache 記錄請求響應時間日誌Apache
- 微信小程式開發記錄02_執行機制微信小程式
- MyBatis(八):MyBatis外掛機制詳解MyBatis
- 微信登入外掛
- 微信小程式外掛微信小程式
- 微信小程式學習:雲開發微信小程式
- 微信小程式開放外掛功能,無需重複開發!微信小程式
- IDEA外掛開發學習Idea
- 手把手教你開發微信小程式中的外掛微信小程式
- OctoberCMS 外掛 微信管理
- 微信開發系列之十 - 在SAP C4C接收微信傳送過來的服務請求回應
- 「jQuery外掛開發日記」(二)高階外掛理念 – [翻譯]jQuery
- 微信團隊分享:微信後臺在海量併發請求下是如何做到不崩潰的
- webpack-外掛機制雜記Web
- [外掛擴充套件]微信外掛Wechat1.0套件
- 如何使用外掛化機制優雅的封裝你的請求hook封裝Hook
- 深度解析Spring AI:請求與響應機制的核心邏輯SpringAI
- 微信小程式學習筆記微信小程式筆記
- 微信授權學習記錄
- 微信開發(八)自動回覆和多客服開發
- 微信開發 微信支付
- 爬蟲學習日記(八)爬蟲
- 微信小程式 request請求封裝微信小程式封裝
- [外掛擴充套件]微信二維碼展示外掛套件
- 微信小程式解除 10 個請求併發限制了?!微信小程式
- ThinkPHP 請求與響應PHP
- HTTP 請求與響應HTTP
- Http請求與響應HTTP
- WebxFrameworkFilter 請求響應流程WebFrameworkFilter
- Django請求響應物件Django物件
- 微信小程式開發系列五:微信小程式中如何響應使用者輸入事件微信小程式事件
- javascript實現的微信分享外掛JavaScript