91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

微信公眾號中如何獲取用戶信息的實現方法

發布時間:2021-01-25 13:36:33 來源:億速云 閱讀:1403 作者:小新 欄目:移動開發

這篇文章主要介紹了微信公眾號中如何獲取用戶信息的實現方法,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

獲取用戶信息步驟如下:

1 第一步:用戶同意授權,獲取code
2 第二步:通過code換取網頁授權access_token
3 第三步:刷新access_token(如果需要)
4 第四步:拉取用戶信息(需scope為 snsapi_userinfo)

1 獲取code

在確保微信公眾賬號擁有授權作用域(scope參數)的權限的前提下(服務號獲得高級接口后,默認擁有scope參數中的snsapi_base和snsapi_userinfo),引導關注者打開如下頁面:

https://open.weixin.qq.com/connect/oauth3/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

若提示“該鏈接無法訪問”,請檢查參數是否填寫錯誤,是否擁有scope參數對應的授權作用域權限。

尤其注意:由于授權操作安全等級較高,所以在發起授權請求時,微信會對授權鏈接做正則強匹配校驗,如果鏈接的參數順序不對,授權頁面將無法正常訪問

其中:

AppID - 公眾號的唯一標識
REDIRECT_URI - 跳轉url
SCOPE - 值為snsapi_base(不彈出授權頁面,直接跳轉,只能獲取用戶openid) 或snsapi_userinfo (彈 出授權頁面,可通過openid拿到昵稱、性別、所在地。并且,即使在未關注的情況下,只要用戶授權,也能獲取其信息)
STATE - 開發者可以自定義填寫a-zA-Z0-9的參數值

2 通過code換取網頁授權access_token

如果用戶同意授權,頁面將跳轉至 redirect_uri/?code=CODE&state=STATE。
state就是上面的STATE參數原樣傳過來的

實現代碼:  

<code class="hljs php">$code = I('get.code');
if (empty($code)) {
   //todo 非微信訪問
   exit('</code>');
 }else{ //授權后操作 }

在這里我們就可以得到code用作后續的獲取access_token。

獲取code后,請求以下鏈接獲取access_token:

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

appid - 公眾號的唯一標識
secret - 密鑰
code - 上述所返回的code
grant_type - 值為authorization_code

實現代碼:

<code class="hljs bash">$url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' . C('wechat.AppID') . '&secret=' . C('wechat.AppSecret');
$str = file_get_contents($url);
$str = json_decode($str, true);
$access_token = $str['access_token'];</code>

這里access_token可以做緩存處理,避免造成頻繁獲取
實現代碼,以TP框架為例:

<code class="hljs php">$access_token = S('access_token');
if (empty($access_token)) {
  $url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' . C('wechat.AppID') . '&secret=' . C('wechat.AppSecret');
  $str = file_get_contents($url);
  $str = json_decode($str, true);
  $access_token = $str['access_token'];
  S('access_token', $access_token, 3600);
}</code>

在獲取access_token后,也會一并返回openid(用戶唯一標識),微信官方文檔的解釋是:用戶唯一標識,請注意,在未關注公眾號時,用戶訪問公眾號的網頁,也會產生一個用戶和公眾號唯一的OpenID

openid是唯一標識微信用戶的,如果用戶不是第一次登陸,可以在得到openid后查詢數據庫是否有綁定此openid的用戶,之后就無需重新獲取用戶數據,直接獲取的數據庫user_id設置session,直接登陸訪問

3 第三步忽略,只在需要的時間重新獲取access_token而已

4 拉取用戶信息(需scope為 snsapi_userinfo)

在數據庫無此微信號用戶的綁定下,就相當于用戶首次訪問登陸,則通過第四步來獲取用戶信息(在用戶授權情況下,網頁授權作用域為snsapi_userinfo,則此時開發者可以通過access_token和openid拉取用戶信息了),然后后臺創建user并綁定此微

信用戶(通過openid)

請求方法

http:GET(請使用https協議) https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

access_token - 上述所獲取的access_token
openid - 公眾號唯一標識

實現代碼:

<code class="hljs php">$access_token = S('access_token');
if (empty($access_token)) {
  $url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' . C('wechat.AppID') . '&secret=' . C('wechat.AppSecret');
  $str = file_get_contents($url);
  $str = json_decode($str, true);
  $access_token = $str['access_token'];
  S('access_token', $access_token, 3600);
}</code>

感謝你能夠認真閱讀完這篇文章,希望小編分享的“微信公眾號中如何獲取用戶信息的實現方法”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

郁南县| 芦山县| 安泽县| 海南省| 阳信县| 铜山县| 徐汇区| 松潘县| 桂平市| 固阳县| 汝城县| 中西区| 石城县| 克东县| 洪雅县| 南雄市| 湘阴县| 嵩明县| 五原县| 昌图县| 安义县| 浦东新区| 西贡区| 上思县| 崇仁县| 沙坪坝区| 兴业县| 奉节县| 锡林郭勒盟| 商丘市| 抚远县| 赫章县| 西林县| 神木县| 吉林省| 镇雄县| 宣武区| 昌宁县| 司法| 翁牛特旗| 应城市|