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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

微信公众号开发获取openid

發布時間:2023/12/9 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 微信公众号开发获取openid 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

公眾號開發獲取openid

微信開放文檔鏈接: 微信公眾號獲取openid官方文檔

一、openid是什么?

微信用戶訪問微信內部的小程序/公眾號產生的用戶唯一標識。

請注意,在未關注公眾號時,用戶訪問公眾號的網頁,也會產生一個用戶和公眾號唯一的OpenID

二、獲取步驟

1.用戶同意授權,獲取code

在確保微信公眾賬號擁有授權作用域(scope參數)的權限的前提下(服務號獲得高級接口后,默認擁有 scope 參數中的snsapi_base和snsapi_userinfo),引導關注者打開如下頁面:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

用戶同意授權后
如果用戶同意授權,頁面將跳轉至 redirect_uri/?code=CODE&state=STATE。
code說明:
code作為換取access_token的票據,每次用戶授權帶上的 code 將不一樣,code只能使用一次,5分鐘未被使用自動過期。

2.根據code獲取openid

獲取 code 后,以GET方式請求以下鏈接獲取openid以及access_token:

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

返回的參數如下

{"access_token":"ACCESS_TOKEN", // 網頁授權接口調用憑證,注意:此access_token與基礎支持的access_token不同"expires_in":7200, // access_token接口調用憑證超時時間,單位(秒)"refresh_token":"REFRESH_TOKEN", // 用戶刷新access_token"openid":"OPENID", // 用戶唯一標識"scope":"SCOPE" // 用戶授權的作用域,使用逗號(,)分隔 }

注意:這里通過 code 換取的是一個特殊的網頁授權access_token,與基礎支持中的access_token(調用其他接口)不同。

獲取openid

代碼如下(示例):

/** * 公眾號獲取openid的方法 * code: 微信網頁授權獲取到的code */ public Map<String, String> getOpenid(String code) {Map<String, String> map = new HashMap<>();map.put("openid", "");try {CloseableHttpClient httpclient = HttpClients.createDefault();ObjectMapper objectMapper = new ObjectMapper();String url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" + properties.getAppId() + "&secret=" + properties.getAppSecret() + "&code=" + code + "&grant_type=authorization_code";HttpGet get = new HttpGet(url);CloseableHttpResponse response = httpclient.execute(get);String result = EntityUtils.toString(response.getEntity(), "utf-8");JsonNode json = objectMapper.readTree(result);if (!json.has("errcode")) {String openid = json.get("openid").getTextValue();String accessToken = json.get("access_token").getTextValue();map.put("openid", openid);map.put("access_token", accessToken);//TODO 這里只獲取這兩個參數,需要獲取其他返回參數自行添加return map;}} catch (Exception e) {log.info("獲取openid異常");e.printStackTrace();}return map;}

總結

以上就是公眾號獲取openid的步驟,通過openid可以調取微信支付及發送公眾號模板消息等等,是用戶在公眾號的唯一用戶標識,筆者建議在獲取到openid的同時就把它保存至用戶表,以便于后續方便使用,并且openid幾乎不會有變化。

總結

以上是生活随笔為你收集整理的微信公众号开发获取openid的全部內容,希望文章能夠幫你解決所遇到的問題。

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