微信授權獲取使用者的openid
有了微信授權才能獲取openid,有了openid才能進行後面的操作,對於某個小程式或者公眾號,使用者的openid是唯一的
獲取openid的兩種方式
- 手工方式
- 利用第三方SDK
註冊使用內網穿透工具natapp
內網穿透工具就是一個對映,他能將二級域名與本地ip埠耗對應起來,即你訪問任何一個都ok,用於微信開發除錯很方便
去https://natapp.cn/ 購買隧道,推薦VIP_1型,然後註冊二級域名,注意要購買支援微信開發的域名,填寫到介面測試號的網頁授權獲取使用者基本資訊中,配置隧道的二級域名和埠號(8080)。到現在你大概花了十幾塊錢吧,不過沒關秀,知識是無價的,都是為了學習嘛。
下載程式,命令列執行natapp.exe -authtoken=xxx ,成功後顯示如下介面,你的每次請求也都會展示在介面上
第一步:進入官方文件,申請介面測試號
https://developers.weixin.qq.com/doc/offiaccount/Basic_Information/Requesting_an_API_Test_Account.html
-
appID是公眾號的唯一識別符號
-
appsecret是你的金鑰
掃描測試號二維碼–>找到網頁服務–>網頁賬號–>網頁授權獲取使用者基本資訊–>填寫你的二級域名
官方文件–>微信網頁開發–>網頁授權
複製提供的引導連結,寫上自己的appid和redirect_uri以及scope
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx6640a7f5b82ebd37&redirect_uri=http://coder-zrl.nat100.top/sell/weixin/auth&response_type=code&scope=snsapi_base&state=123#wechat_redirect
第二步:獲取使用者code
寫一個controller
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@Slf4j
@RestController
@RequestMapping("/weixin")
public class WeixinController {
@GetMapping("/auth")
public void auth(@RequestParam("code") String code) {
log.info("進入了auth方法");
log.info("【獲取code】code={}",code);
}
}
第三步:通過code獲取access_token
url的引數官方文件都有詳細說明
https://api.weixin.qq.com/sns/oauth2/access_token?appid=wx6640a7f5b82ebd37&secret=85cf924b23a717e12caf329150b988c9&code=CODE&grant_type=authorization_code
返回值是json資料,裡面包含openid,具體每個變數什麼意義官方文件也有說明
{
"access_token":"ACCESS_TOKEN",
"expires_in":7200,
"refresh_token":"REFRESH_TOKEN",
"openid":"OPENID",
"scope":"SCOPE"
}
使用Spring的模板進行url訪問,就是在上面的controller再加上下面的程式碼
我寫了一個WeixinDTO和上面的欄位一致,用來獲取openid
import com.example.sell.dto.WeixinDTO;
import com.google.gson.Gson;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
@Slf4j
@RestController
@RequestMapping("/weixin")
public class WeixinController {
@GetMapping("/auth")
public void auth(@RequestParam("code") String code) {
log.info("進入了auth方法");
log.info("【獲取code】code={}", code);
String url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=APPSECRET&code=" + code + "&grant_type=authorization_code";
//Spring提供了一個簡單便捷的模板類實現java程式碼訪問restful服務
//get是指呼叫get方法,object是我們要轉化成的型別
RestTemplate restTemplate = new RestTemplate();
String response = restTemplate.getForObject(url, String.class);
log.info("response={}",response);
Gson gson = new Gson();
WeixinDTO data = gson.fromJson(response,WeixinDTO.class);
log.info("openid={}",data.getOpenid());
}
}
相關文章
- 前端實現微信公眾號授權—獲取openid前端
- 微信小程式獲取openid,unionid微信小程式
- 微信網頁授權並獲取使用者資訊網頁
- 微信小程式授權登入獲取使用者資訊微信小程式
- 微信授權後獲取使用者頭像儲存到伺服器伺服器
- 微信小程式 獲取微信暱稱頭像 獲取openid 封裝請求post微信小程式封裝
- ThinkPHP5-微信小程式獲取使用者授權登入資訊PHP微信小程式
- vue獲取微博授權URLVue
- .NET微信網頁開發之網頁授權獲取使用者基本資訊網頁
- 微信裡的”授權“
- 企業微信-自建H5應用授權登入獲取使用者資訊H5
- 記一次微信網頁授權後獲取使用者資訊並重定向網頁
- 前端微信授權前端
- 微信開發之小程式獲取手機號授權登入
- 微信授權管理功能
- 微信授權(Net Mvc)MVC
- 微信授權登入
- 微信小程式——授權微信小程式
- 微信網頁授權網頁
- 一張圖清晰解釋微信三方平臺獲取授權流程
- 微信小程式的授權登入微信小程式
- 微信授權註冊或微信登陸 微信授權登陸 基於若依vue 實現Vue
- Java微信公眾號開發之使用攔截器獲取粉絲openIDJava
- PHP獲取小程式openid,10行程式碼快速獲取小程式openidPHP行程
- 關於微信小程式使用者拒絕授權後不再彈出授權視窗微信小程式
- vue 微信授權解決方案Vue
- 微信授權學習記錄
- 微信網頁靜默授權網頁
- 微信小程式授權過程微信小程式
- java 微信授權登入配置Java
- 微信小程式 獲取使用者資訊微信小程式
- Laravel 微信 Token 配置 與微信網頁授權操作Laravel網頁
- 微信網頁授權視訊教程網頁
- 微信 OAuth 授權域名支援兩個OAuth
- 微信小程式獲取使用者資訊方法微信小程式
- 微信小程式 getUserProfile 獲取使用者資訊微信小程式
- 小程式獲取使用者位置資訊後再次手動授權
- 支付寶小程式(後臺)---獲取授權和使用者資訊