做公众号开发时需要获取到用户的openid做唯一标识,微信授权时通过前端调取微信授权接口获取code传给后端,后端拿到code后调取微信接口获取openid, appid和secret在公众号后台可以查看 /** * @param * @Description: 获取微信公众号用户登录信息 * @date */ @GetMapping("getInfoByCode") public JSONObject selectWxUser(String code) { JSONObject jsonWxUser = new JSONObject(); Map map = new HashMap<>(); String url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=appid+ "&secret=" + secret+ "&code=" + code + "&grant_type=authorization_code"; RestTemplate restTemplate = new RestTemplate(); String response = restTemplate.getForObject(url, String.class); JSONObject jsonObject = JSON.parseObject(response); String refresh_token = jsonObject.getString("refresh_token"); String accessTokenUrl = "https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=" + appid+ "&grant_type=refresh_token&refresh_token=" + refresh_token; String responseAccessTokenUrl = restTemplate.getForObject(accessTokenUrl, String.class); JSONObject jsonObjectAccessTokenUrl = JSON.parseObject(responseAccessTokenUrl); String openid = jsonObjectAccessTokenUrl.getString("openid"); if (StringUtils.isEmpty(openid)) { jsonWxUser.put("code", 201); jsonWxUser.put("data", "code已过期"); return jsonWxUser; } map.put("openid", openid); jsonWxUser.put("code", 200); jsonWxUser.put("data", map); return jsonWxUser; }
微信授权通过code获取openid
于 2023-07-15 17:22:43 首次发布