日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

微信公众平台开发--微信网页授权

發布時間:2025/5/22 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 微信公众平台开发--微信网页授权 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在微信公眾號開發中實現微信用戶自動登陸第三方的功能:

條件:

  1.公眾號必須為微信認證服務號;

  2.在公眾號接口權限->網頁賬號 網頁授權獲取用戶基本信息 修改需要OAuth2.0鑒權的域名;


?

關于網頁授權的兩種scope的區別說明

  以snsapi_base為scope發起的網頁授權,靜默授權,不彈出授權頁面,只能獲取微信用戶的openid。

  以snsapi_userinfo為scope發起的網頁授權,彈出授權頁面,可通過openid拿到昵稱、性別、所在地。并且,即使在未關注的情況下,只要用戶授權,也能獲取其信息

  用戶管理類接口中的“獲取用戶基本信息接口”,是在用戶和公眾號產生消息交互或關注后事件推送后,才能根據用戶OpenID來獲取用戶基本信息。包括其他微信接口,都是需要該用戶(即openid)關注了公眾號后,才能調用成功的。

?

關于網頁授權access_token和普通access_token的區別           

  在用戶同意授權后獲取的access_token是針對于用戶的,可以說是微信用戶給第三方網站的授權碼一樣。

  而普通access_token則類似于公眾平臺給于第三方網站調用接口的憑借。


?

根據官網的步驟:

第一步 獲取code:

  需要第三方網站進行重定向到包裝后的授權地址 如下

$url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=".WxPayConfig::APPID."&redirect_uri=".$redirect_uri."&response_type=code&scope=snsapi_userinfo&state=success#wechat_redirect"header("Location:".$url);

appid? 為微信公眾平臺提供的

redirect_ur?? 是用戶同意授權后進入的頁面

scope ?為上面所提的兩種scope 若是需要微信用戶的其他資料需要snsapi_userinfo類型(不管用戶是否關注公眾號都可以獲得資料,可以用來第三方平臺的用戶資料保留和填充)? 若只是希望得到openid則可以使用snsapi_base類型

state? 其他攜帶的參數

第二步 將利用第一步獲取的code換取該用戶授權的access_token:

$code = $_GET['code']; $url="https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code"; //通過get發送 $token_data = file_get_contents($token_url); $token_arr = json_decode($token_data,true);

appid ? 為微信公眾平臺提供的APPID

secret? 為微信公眾平臺提供的APPSECRET

code? 第一步獲取的code

獲取到的參數 進行json_decode轉化成數組 返回的數據如下

    access_token?? ? 網頁授權接口調用憑證,注意:此access_token與基礎支持的access_token不同
    expires_in?? ?????? access_token接口調用憑證超時時間,單位(秒)
    refresh_token??? 用戶刷新access_token
    openid?? ? ? ? ? ?? 用戶唯一標識,請注意,在未關注公眾號時,用戶訪問公眾號的網頁,也會產生一個用戶和公眾號唯一的OpenID
    scope?? ??????????? 用戶授權的作用域,使用逗號(,)分隔

?

第四步:拉取用戶信息(需scope為 snsapi_userinfo)

$url = "https://api.weixin.qq.com/sns/userinfo?access_token=".$access_token."&openid=".$openid."&lang=zh_CN"; $resdata = file_get_contents($url); $data = json_decode($resdata,true);

此處于第二步做法一致?

    access_token? 第二步獲取的access_token

    openid?第二步獲取的openid

獲取到的參數 進行json_decode轉化成數組 返回的數據如下

    openid?? ?用戶的唯一標識
    nickname?? ?用戶昵稱
    sex?? ?用戶的性別,值為1時是男性,值為2時是女性,值為0時是未知
    province?? ?用戶個人資料填寫的省份
    city?? ?普通用戶個人資料填寫的城市
    country?? ?國家,如中國為CN
    headimgurl?? ?用戶頭像,最后一個數值代表正方形頭像大小(有0、46、64、96、132數值可選,0代表640*640正方形頭像),用戶沒有頭像時該項為空。若用戶更換頭像,原有頭像URL將失效。
    privilege?? ?用戶特權信息,json 數組,如微信沃卡用戶為(chinaunicom)
    unionid?? ?只有在用戶將公眾號綁定到微信開放平臺帳號后,才會出現該字段。

到此便可以獲得了授權的用戶的資料了 至于該用戶是否已關注該微信公眾平臺 需要用戶管理類接口中的“獲取用戶基本信息接口” 去獲得。

官網還提供了 刷新access_token的接口 和 檢查access_token是否有效的接口,其調用方法與第二三步一致。

?

轉載于:https://www.cnblogs.com/LzayCat/p/5495596.html

總結

以上是生活随笔為你收集整理的微信公众平台开发--微信网页授权的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。