微信公眾號(hào)獲取openid實(shí)現(xiàn)

開(kāi)發(fā)一個(gè)只能在微信端打開(kāi)的h5,需要獲取用戶(hù)的openId作為標(biāo)識(shí),并能在微信分享的時(shí)候自定義文案。

微信獲取網(wǎng)頁(yè)授權(quán)有兩種方式:

1、以snsapi_base為scope發(fā)起的網(wǎng)頁(yè)授權(quán),是用來(lái)獲取進(jìn)入頁(yè)面的用戶(hù)的openid的,是靜默授權(quán)并自動(dòng)跳轉(zhuǎn)到回調(diào)頁(yè)的。用戶(hù)感知的就是直接進(jìn)入了回調(diào)頁(yè)(往往是業(yè)務(wù)頁(yè)面)

2、以snsapi_userinfo為scope發(fā)起的網(wǎng)頁(yè)授權(quán),是用來(lái)獲取用戶(hù)的基本信息的。但這種授權(quán)需要用戶(hù)手動(dòng)同意,并且由于用戶(hù)同意過(guò),所以無(wú)須關(guān)注,就可在授權(quán)后獲取該用戶(hù)的基本信息。

3、用戶(hù)管理類(lèi)接口中的“獲取用戶(hù)基本信息接口”,是在用戶(hù)和公眾號(hào)產(chǎn)生消息交互或關(guān)注后事件推送,才能根據(jù)用戶(hù)openid來(lái)獲取用戶(hù)基本信息。這個(gè)接口,包括其他微信接口,都是需要該用戶(hù)關(guān)注了公眾號(hào)后,才能調(diào)用成功的。

其實(shí)兩種方式實(shí)現(xiàn)都沒(méi)有太大的差別,整體思路應(yīng)該是一樣的。這里我們以snsapi_base為例

代碼實(shí)現(xiàn)如下:

代碼實(shí)現(xiàn)

用戶(hù)在微信中直接訪問(wèn)**/code接口,接口判斷session中是否存在openid,如果有的話,redirect到前端對(duì)應(yīng)的地址

如果session中不存在openid,判斷請(qǐng)求參數(shù)中是否有認(rèn)證要使用的code,如果沒(méi)有,redirect到微信獲取code的認(rèn)證接口,回調(diào)地址還是這個(gè)**/code

如果有code,用code獲取openid,將openid保存到session中,redirect到前端對(duì)應(yīng)的地址

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容