先來體驗一下微信公眾平臺二維碼授權(quán)功能 https://a86.cn/weixin3rd/index.jsp
一、目的
實現(xiàn)店鋪的微信公眾號能夠快速無誤且零配置的與天狗微信服務端進行綁定,節(jié)省運營人員的溝通成本敞嗡。
二、微信開放平臺開通流程
- 通過開發(fā)者資質(zhì)認證
- 創(chuàng)建第三方平臺(應用)
- 測試第三方平臺
- 申請全網(wǎng)發(fā)布
三航背、技術(shù)流程
公眾號一鍵登錄授權(quán)給第三方平臺方的技術(shù)流程
下面對授權(quán)流程進行詳細介紹:
1喉悴、用戶進入第三方平臺(天狗)微信管理系統(tǒng)
一般而言,用戶需要先進入第三方平臺方網(wǎng)站玖媚,如:http://store.51tiangou.com
2箕肃、第三方平臺(天狗)方獲取預授權(quán)碼
預授權(quán)碼是第三方平臺(天狗)方實現(xiàn)授權(quán)托管的必備信息,預授權(quán)碼可通過調(diào)用開放平臺接口獲取
3今魔、發(fā)布后修改和覆蓋現(xiàn)網(wǎng)
第三方平臺方可以在自己的網(wǎng)站首頁中放置微信公眾號登錄授權(quán)的入口勺像,引導公眾號運營者進入第三方平臺授權(quán)頁障贸。網(wǎng)址為:https://mp.weixin.qq.com/cgi-bin/componentloginpage?component_appid=xxxx&pre_auth_code=xxxxx&redirect_uri=xxxx
該網(wǎng)址中第三方平臺方需要提供第三方平臺方的appid、預授權(quán)碼pre_auth_code和回調(diào)URI
4吟宦、用戶確認并同意登錄授權(quán)給第三方平臺方
用戶進入第三方平臺授權(quán)頁后篮洁,需要確認并同意將自己的公眾號登錄授權(quán)給第三方平臺方,完成授權(quán)流程殃姓。
5袁波、授權(quán)后回調(diào)URI,得到授權(quán)碼和過期時間
授權(quán)流程完成后蜗侈,會進入回調(diào)URI篷牌,并在URL參數(shù)中返回授權(quán)碼和過期時間(redirect_url?auth_code=xxx&expires_in=600)
6、利用授權(quán)碼調(diào)用公眾號或小程序的相關(guān)API
在得到授權(quán)碼后踏幻,第三方平臺方可以使用授權(quán)碼換取授權(quán)公眾號或小程序的接口調(diào)用憑據(jù)(authorizer_access_token枷颊,也簡稱為令牌),再通過該接口調(diào)用憑據(jù)叫倍,按照公眾號開發(fā)者文檔或小程序開發(fā)文檔的說明偷卧,去調(diào)用公眾號或小程序相關(guān)API
四、開發(fā)點概述
- 微信開發(fā)平臺appid吆倦、appsecret听诸、token等配置信息等保存、獲取
- 微信心跳監(jiān)測component_verify_ticket的解析蚕泽、存儲
- 用戶授權(quán)成功后晌梨,公眾賬號信息的存儲,與店鋪的綁定
- 已授權(quán)公眾號授權(quán)碼须妻、accessToken仔蝌、refreshAccessToken的存儲,定時刷新
- 已授權(quán)公眾號事件和消息的處理
五荒吏、對現(xiàn)有系統(tǒng)流程的影響
- 微信公眾號需要進行賬號信息的補充完善敛惊,例如店鋪的綁定
- 第三方平臺(天狗)與公眾號間的數(shù)據(jù)交互全部需要進行加密處理
六、踩坑
- 需要將微信官方提供的aes.jar安裝到私服
- 每10分鐘微信會向注冊開發(fā)平臺時填寫的url發(fā)送一個verifyTicket(心跳監(jiān)測)绰更,想要解密該ticket不僅需要獲取微信傳過來的參數(shù)瞧挤,還需要將request再次解析為BufferedReader才能夠獲取到其中的xml數(shù)據(jù)。
- 需要替換掉jre/lib/security目錄里面的2個jar儡湾,否則無法進行正確解密微信數(shù)據(jù)
- 生成的授權(quán)二維碼必須在本網(wǎng)站內(nèi)才能夠正確的被掃描使用特恬,否則會報
- 授權(quán)后的公眾號信息一定好妥善保存,一旦丟失還需要進行重新授權(quán)
沒有全網(wǎng)發(fā)布的第三方平臺徐钠,需要添加公眾號ID(gh_xxxxx之類的)到測試帳號里才可以添加癌刽,否則需要申請全網(wǎng)發(fā)布,不然就會報上面圖中的錯誤