前幾天和業(yè)務談需求的時候提到了要在微信公眾號里面做一個申請頁面A。當時我對微信的了解還不是很多,只知道公眾號上原來已經(jīng)做了一個其他功能的頁面B,B頁面可以獲取到客戶微信的openid。
當時我們業(yè)務同事說只有B頁面可以拿到openid,其他的頁面都拿不到,所以這個正在談的A頁面入口要做在已有頁面B上,然后通過B獲取openid之后再傳給A。我當時因為不懂也只能聽他說,畢竟那個同事說的好像很確定的樣子。
事后我仔細想了想,頁面B也就是個普通的html呀,憑什么就B頁面能獲取客戶的openid呢?肯定有方法的!于是我就上網(wǎng)搜了一下,最后成功獲取了自己的openid,下面介紹下方法吧。
首先,你要有個微信公眾號,并且要獲得這個接口的權限

點修改之后,在功能設置的“網(wǎng)頁授權域名”處添加可以獲取微信openid的域名,也就是你自己公眾號里面需要獲取openid網(wǎng)頁的域名。
做完上面這些之后,其實已經(jīng)可以實現(xiàn)我們想要的效果了,這里因為我不是要做一個完整的功能,我只是想試驗下html的頁面怎么獲取openid,所以過程比較簡陋。
這里是微信官方的網(wǎng)頁授權方法:
https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842
其實看起來微信的說明有那么一大段,但核心的內容也就那么一點點,總結下來就是:先拿到code,再用code去換取網(wǎng)頁授權access_token。
一、獲得code:
因為重定向的url要urlEncode,所以這里我用另一個網(wǎng)站把我要訪問的url轉換了一下,網(wǎng)址如下:
在微信瀏覽器里面輸入下面的url,appid、redirect_uri改成自己的,其他的都可以不用改。
靜默授權:scope=snsapi_base
非靜默授權:scope=snsapi_userinfo
一般在微信中是看不到url也沒辦法輸入url的,所以這里我是用微信開發(fā)者工具調試的。
輸入完靜默授權的url后,url自動跳轉成有code的,這個code只有5分鐘有效期。

二、獲得openid
同樣的,獲取openid也就是在微信瀏覽器中執(zhí)行一下下面這個url就可以了。appid,secret換成自己的,code用上面一步獲取的,其他的都不用改。
運行完后的結果就顯示在左邊這個圖里啦,你看,openid不就拿到了嗎。

我沒嘗試非靜默授權的,不過我想應該也差不多吧。這里也不是一套完整的方案告訴大家怎么把這個部署到前端和后端自動獲取openid。我只是想分享一下我試驗的經(jīng)歷。