微信通過網(wǎng)頁授權(quán)可以在網(wǎng)頁內(nèi)獲取微信用戶信息,進而在網(wǎng)頁內(nèi)實現(xiàn)相關(guān)的業(yè)務(wù)邏輯。
微信網(wǎng)頁授權(quán)的scope有兩種,一、base 只能獲取openId信息,二、userInfo 獲取的信息較多。
同意授權(quán)頁面鏈接最終會是如下形式:
`https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx520c15f417810387&redirect_uri=https%3A%2F%2Fchong.qq.com%2Fphp%2Findex.php%3Fd%3D%26c%3DwxAdapter%26m%3DmobileDeal%26showwxpaytitle%3D1%26vb2ctag%3D4_2030_5_1194_60&response_type=code&scope=snsapi_base&state=123#wechat_redirect`
或者
`https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxf0e81c3bee622d60&redirect_uri=http%3A%2F%2Fnba.bluewebgame.com%2Foauth_response.php&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect`
業(yè)務(wù)場景
進入頁面——判斷該用戶是否激活——激活顯示后續(xù)頁面——未激活顯示激活頁面
我的思路是通過頁面授權(quán),頁面獲取openId信息,通過url后面拼接的code獲取openId信息,然后根據(jù)openId查詢數(shù)據(jù)庫獲取用戶激活情況返回給前端頁面。
但是直接通過網(wǎng)頁授權(quán)會出現(xiàn)一個問題,code用過一次時候就會失效,如果用戶在微信內(nèi)刷新網(wǎng)頁就會出現(xiàn)問題。
因此,我的解決思路是微信授權(quán)頁面不是直接指向靜態(tài)頁面,而是指向RESTFUL服務(wù)后臺,控制器處理后獲取用戶的相關(guān)信息將參數(shù)通過加密合成一個參數(shù)拼接在靜態(tài)頁面的url后,然后重定向到靜態(tài)頁面,如此頁面直接獲取用戶的信息,用戶在微信內(nèi)刷新網(wǎng)頁也不會有影響。