微信開發,由于語言換成了node,原來的微信開發環境都得重來,順便記錄一下步驟。
前提:
需要在微信公眾號上進行一系列的配置,這些可以參考微信教程,這里不再描述。
1、初始化
程序加載,初始化注冊應用憑證信息。我這里直接獲取了一次接口access_token,存放起來(access_token3小時過期,所以需要一個過期存放機制。)
2、網頁基礎授權
微信網頁授權流程圖如下:
微信授權流程.jpg
我的網頁授權的基礎實現圖如下:
微信授權具體實現1.jpg
這樣用過濾器或者說是路由攔截的方式實現了網頁授權
3、改造網頁基礎授權
由于項目需求以及靈活性考慮,對實現進行簡單改造。
改造后的基礎實現圖如下:
微信授權具體實現2.jpg
這樣流程就變成了:
a、判斷是否已經授權(openid存在判斷)。
b、調用自己系統的公共授權頁面(帶上當前頁面地址)。公共授權頁面地址(功能:獲取請求參數.授權頁面jumpurl;拼接jumpurl到公共回調地址BaseCallback上;調用請求微信授權接口)。
c、BaseCallback監聽微信回調請求,根據code,appid,appsecret獲取accesstoken,openid,成功后,存儲openid,帶上openid做參數跳到jumpurl。這樣多走自己的服務器的好處是授權可以外接給別人用。
4、jssdk調用jsapi_ticket
以前沒注意了jsapi_ticket跟accesstoken一樣有獲取限制,導致請求爆掉的分享有bug的問題,好尷尬。
微信jssdk調用憑證(3小時過期,需要一個過期重取機制)。根據access_token獲取。保存機制可以與accesstoken一致。