H5頁面靜默授權獲取微信openid

前幾天和業(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)址如下:

http://tool.chinaz.com/tools/urlencode.aspx

在微信瀏覽器里面輸入下面的url,appid、redirect_uri改成自己的,其他的都可以不用改。

靜默授權:scope=snsapi_base

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

非靜默授權:scope=snsapi_userinfo

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

一般在微信中是看不到url也沒辦法輸入url的,所以這里我是用微信開發(fā)者工具調試的。

輸入完靜默授權的url后,url自動跳轉成有code的,這個code只有5分鐘有效期。

二、獲得openid

同樣的,獲取openid也就是在微信瀏覽器中執(zhí)行一下下面這個url就可以了。appid,secret換成自己的,code用上面一步獲取的,其他的都不用改。

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

運行完后的結果就顯示在左邊這個圖里啦,你看,openid不就拿到了嗎。


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

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

相關閱讀更多精彩內容

友情鏈接更多精彩內容