先來體驗一下微信公眾平臺二維碼授權功能 https://a86.cn/weixin3rd/index.jsp
一、目的
實現店鋪的微信公眾號能夠快速無誤且零配置的與天狗微信服務端進行綁定,節省運營人員的溝通成本。
二、微信開放平臺開通流程
- 通過開發者資質認證
- 創建第三方平臺(應用)
- 測試第三方平臺
- 申請全網發布
三、技術流程
公眾號一鍵登錄授權給第三方平臺方的技術流程
下面對授權流程進行詳細介紹:
1、用戶進入第三方平臺(天狗)微信管理系統
一般而言,用戶需要先進入第三方平臺方網站,如:http://store.51tiangou.com
2、第三方平臺(天狗)方獲取預授權碼
預授權碼是第三方平臺(天狗)方實現授權托管的必備信息,預授權碼可通過調用開放平臺接口獲取
3、發布后修改和覆蓋現網
第三方平臺方可以在自己的網站首頁中放置微信公眾號登錄授權的入口,引導公眾號運營者進入第三方平臺授權頁。網址為:https://mp.weixin.qq.com/cgi-bin/componentloginpage?component_appid=xxxx&pre_auth_code=xxxxx&redirect_uri=xxxx
該網址中第三方平臺方需要提供第三方平臺方的appid、預授權碼pre_auth_code和回調URI
4、用戶確認并同意登錄授權給第三方平臺方
用戶進入第三方平臺授權頁后,需要確認并同意將自己的公眾號登錄授權給第三方平臺方,完成授權流程。
5、授權后回調URI,得到授權碼和過期時間
授權流程完成后,會進入回調URI,并在URL參數中返回授權碼和過期時間(redirect_url?auth_code=xxx&expires_in=600)
6、利用授權碼調用公眾號或小程序的相關API
在得到授權碼后,第三方平臺方可以使用授權碼換取授權公眾號或小程序的接口調用憑據(authorizer_access_token,也簡稱為令牌),再通過該接口調用憑據,按照公眾號開發者文檔或小程序開發文檔的說明,去調用公眾號或小程序相關API
四、開發點概述
- 微信開發平臺appid、appsecret、token等配置信息等保存、獲取
- 微信心跳監測component_verify_ticket的解析、存儲
- 用戶授權成功后,公眾賬號信息的存儲,與店鋪的綁定
- 已授權公眾號授權碼、accessToken、refreshAccessToken的存儲,定時刷新
- 已授權公眾號事件和消息的處理
五、對現有系統流程的影響
- 微信公眾號需要進行賬號信息的補充完善,例如店鋪的綁定
- 第三方平臺(天狗)與公眾號間的數據交互全部需要進行加密處理
六、踩坑
- 需要將微信官方提供的aes.jar安裝到私服
- 每10分鐘微信會向注冊開發平臺時填寫的url發送一個verifyTicket(心跳監測),想要解密該ticket不僅需要獲取微信傳過來的參數,還需要將request再次解析為BufferedReader才能夠獲取到其中的xml數據。
- 需要替換掉jre/lib/security目錄里面的2個jar,否則無法進行正確解密微信數據
- 生成的授權二維碼必須在本網站內才能夠正確的被掃描使用,否則會報
- 授權后的公眾號信息一定好妥善保存,一旦丟失還需要進行重新授權
沒有全網發布的第三方平臺,需要添加公眾號ID(gh_xxxxx之類的)到測試帳號里才可以添加,否則需要申請全網發布,不然就會報上面圖中的錯誤