From 86f2f7e0023bfc56b2c20f2c594dc6a935a41a9d Mon Sep 17 00:00:00 2001 From: luodangjia <luodangjia> Date: 星期一, 25 十一月 2024 11:41:27 +0800 Subject: [PATCH] 11.25 --- ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/weChat/WeChatUtil.java | 396 ++++++++++++++++++++++++++++---------------------------- 1 files changed, 198 insertions(+), 198 deletions(-) diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/weChat/WeChatUtil.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/weChat/WeChatUtil.java index 7322624..7cf2c31 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/weChat/WeChatUtil.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/weChat/WeChatUtil.java @@ -1,203 +1,203 @@ -package com.ruoyi.account.util.weChat; - -import cn.hutool.http.HttpRequest; -import cn.hutool.http.HttpResponse; -import cn.hutool.http.HttpUtil; -import com.alibaba.fastjson.JSON; -import com.alibaba.fastjson.JSONObject; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Component; -import java.util.HashMap; -import java.util.Map; - -/** - * 微信工具类 - */ -@Slf4j -@Component -public class WeChatUtil { - - @Value("${wx.appletsAppid}") - private String wxAppletsAppid; - - @Value("${wx.appletsAppSecret}") - private String wxAppletsAppSecret; - - @Value("{wx.officialAccountAppSecret}") - private String officialAccountAppSecret; - - @Value("${wx.appid}") - private String webAppId; - - @Value("${wx.appSecret}") - private String webAppSecret; - - - /** - * 小程序使用jscode获取openid - * @param jscode - * @return - */ - public Map<String, Object> code2Session(String jscode) throws Exception{ - String url = "https://api.weixin.qq.com/sns/jscode2session?appid=" + wxAppletsAppid + "&secret=" + wxAppletsAppSecret - + "&js_code=" + jscode + "&grant_type=authorization_code"; - HttpRequest get = HttpUtil.createGet(url); - HttpResponse response = get.execute(); - int status = response.getStatus(); - if(200 != status){ - throw new RuntimeException(response.body()); - } - JSONObject jsonObject = JSON.parseObject(response.body()); - int errcode = jsonObject.getIntValue("errcode"); - Map<String, Object> map = new HashMap<>(); - map.put("errcode", errcode); - if(errcode == 0){//成功 - map.put("openid", jsonObject.getString("openid")); - map.put("sessionKey", jsonObject.getString("session_key")); - map.put("unionid", jsonObject.getString("unionid")); - return map; - } - if(errcode == -1){//系统繁忙,此时请开发者稍候再试 - map.put("msg", jsonObject.getString("errmsg")); - return map; - } - if(errcode == 40029){//code 无效 - map.put("msg", jsonObject.getString("errmsg")); - return map; - } - if(errcode == 45011){//频率限制,每个用户每分钟100次 - map.put("msg", jsonObject.getString("errmsg")); - return map; - } - return null; - } - - - /** - * 获取微信小程序token - * @return - */ - public String getWxAppletsAccessToken() throws Exception{ - String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + wxAppletsAppid + "&secret=" + wxAppletsAppSecret; - HttpRequest get = HttpUtil.createGet(url); - HttpResponse response = get.execute(); - if(response.getStatus() != 200){ - return ""; - } - JSONObject jsonObject = JSON.parseObject(response.body()); - return jsonObject.getString("access_token"); - } - - - /** - * 网站应用登录 - * @param code - * @return - */ - public Map<String, String> webAccessToken(String code) throws Exception{ - String url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" + webAppId + "&secret=" + webAppSecret + "&code=" + code + "&grant_type=authorization_code"; - HttpRequest get = HttpUtil.createGet(url); - HttpResponse response = get.execute(); - if(response.getStatus() != 200){ - return null; - } - JSONObject jsonObject = JSON.parseObject(response.body()); - int errcode = jsonObject.getIntValue("errcode"); - Map<String, String> map = new HashMap<>(); - if(errcode == 0){//成功 - map.put("access_token", jsonObject.getString("access_token")); - map.put("openid", jsonObject.getString("openid")); - map.put("refresh_token", jsonObject.getString("refresh_token")); - map.put("unionid", jsonObject.getString("unionid")); - return map; - } - if(errcode == -1){//系统繁忙,此时请开发者稍候再试 - map.put("msg", jsonObject.getString("errmsg")); - return map; - } - if(errcode == 40029){//code 无效 - map.put("msg", jsonObject.getString("errmsg")); - return map; - } - if(errcode == 45011){//频率限制,每个用户每分钟100次 - map.put("msg", jsonObject.getString("errmsg")); - return map; - } - return map; - } - - - /** - * 获取微信个人信息 - * @param access_token - * @param openid - * @return - */ - public Map<String, Object> getUserInfo(String access_token, String openid) throws Exception{ - String url = "https://api.weixin.qq.com/sns/userinfo?access_token=" + access_token + "&openid=" + openid; - HttpRequest get = HttpUtil.createGet(url); - HttpResponse response = get.execute(); - if(response.getStatus() != 200){ - return null; - } - JSONObject jsonObject = JSON.parseObject(response.body()); - int errcode = jsonObject.getIntValue("errcode"); - Map<String, Object> map = new HashMap<>(); - if(errcode == 0){//成功 - map.put("nickname", jsonObject.getString("nickname")); - map.put("openid", jsonObject.getString("openid")); - map.put("sex", jsonObject.getString("sex")); - map.put("headimgurl", jsonObject.getString("headimgurl")); - return map; - } - if(errcode == -1){//系统繁忙,此时请开发者稍候再试 - map.put("msg", jsonObject.getString("errmsg")); - return map; - } - if(errcode == 40029){//code 无效 - map.put("msg", jsonObject.getString("errmsg")); - return map; - } - if(errcode == 45011){//频率限制,每个用户每分钟100次 - map.put("msg", jsonObject.getString("errmsg")); - return map; - } - return map; - } - - - - +//package com.ruoyi.account.util.weChat; +// +//import cn.hutool.http.HttpRequest; +//import cn.hutool.http.HttpResponse; +//import cn.hutool.http.HttpUtil; +//import com.alibaba.fastjson.JSON; +//import com.alibaba.fastjson.JSONObject; +//import lombok.extern.slf4j.Slf4j; +//import org.springframework.beans.factory.annotation.Value; +//import org.springframework.stereotype.Component; +//import java.util.HashMap; +//import java.util.Map; +// +///** +// * 微信工具类 +// */ +//@Slf4j +//@Component +//public class WeChatUtil { +// +// @Value("${wx.appletsAppid}") +// private String wxAppletsAppid; +// +// @Value("${wx.appletsAppSecret}") +// private String wxAppletsAppSecret; +// +// @Value("{wx.officialAccountAppSecret}") +// private String officialAccountAppSecret; +// +// @Value("${wx.appid}") +// private String webAppId; +// +// @Value("${wx.appSecret}") +// private String webAppSecret; +// +// // /** -// * 获取小程序二维码 -// * @param page 跳转页 例如 pages/index/index -// * @param scene 参数 a=1&b=2 +// * 小程序使用jscode获取openid +// * @param jscode +// * @return // */ -// public InputStream getwxacodeunlimit(String page, String scene){ -// try { -// String token = getWxAppletsAccessToken(); -// if(StringUtils.isEmpty(token)){ -// System.err.println("获取接口调用凭证失败"); -// } -// String url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + token; -// Map<String, Object> param = new HashMap<>(); -// param.put("scene", scene); -// param.put("page", page); -// HttpHeaders httpHeaders = new HttpHeaders(); -// MediaType type=MediaType.parseMediaType("application/json;charset=UTF-8"); -// httpHeaders.setContentType(type); -// HttpEntity<Map<String, Object>> requestEntity = new HttpEntity<>(param, httpHeaders); -// ResponseEntity<String> exchange = restTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class, new Object[0]); -// String body1 = exchange.getBody(); -//// System.err.println(body1); -// ResponseEntity<byte[]> entity = restTemplate.exchange(url, HttpMethod.POST, requestEntity, byte[].class, new Object[0]); -// byte[] body = entity.getBody(); -//// System.err.println(Base64.encodeBase64String(body)); -// return new ByteArrayInputStream(body); -// }catch (Exception e){ -// e.printStackTrace(); +// public Map<String, Object> code2Session(String jscode) throws Exception{ +// String url = "https://api.weixin.qq.com/sns/jscode2session?appid=" + wxAppletsAppid + "&secret=" + wxAppletsAppSecret +// + "&js_code=" + jscode + "&grant_type=authorization_code"; +// HttpRequest get = HttpUtil.createGet(url); +// HttpResponse response = get.execute(); +// int status = response.getStatus(); +// if(200 != status){ +// throw new RuntimeException(response.body()); +// } +// JSONObject jsonObject = JSON.parseObject(response.body()); +// int errcode = jsonObject.getIntValue("errcode"); +// Map<String, Object> map = new HashMap<>(); +// map.put("errcode", errcode); +// if(errcode == 0){//成功 +// map.put("openid", jsonObject.getString("openid")); +// map.put("sessionKey", jsonObject.getString("session_key")); +// map.put("unionid", jsonObject.getString("unionid")); +// return map; +// } +// if(errcode == -1){//系统繁忙,此时请开发者稍候再试 +// map.put("msg", jsonObject.getString("errmsg")); +// return map; +// } +// if(errcode == 40029){//code 无效 +// map.put("msg", jsonObject.getString("errmsg")); +// return map; +// } +// if(errcode == 45011){//频率限制,每个用户每分钟100次 +// map.put("msg", jsonObject.getString("errmsg")); +// return map; // } // return null; // } -} +// +// +// /** +// * 获取微信小程序token +// * @return +// */ +// public String getWxAppletsAccessToken() throws Exception{ +// String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + wxAppletsAppid + "&secret=" + wxAppletsAppSecret; +// HttpRequest get = HttpUtil.createGet(url); +// HttpResponse response = get.execute(); +// if(response.getStatus() != 200){ +// return ""; +// } +// JSONObject jsonObject = JSON.parseObject(response.body()); +// return jsonObject.getString("access_token"); +// } +// +// +// /** +// * 网站应用登录 +// * @param code +// * @return +// */ +// public Map<String, String> webAccessToken(String code) throws Exception{ +// String url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" + webAppId + "&secret=" + webAppSecret + "&code=" + code + "&grant_type=authorization_code"; +// HttpRequest get = HttpUtil.createGet(url); +// HttpResponse response = get.execute(); +// if(response.getStatus() != 200){ +// return null; +// } +// JSONObject jsonObject = JSON.parseObject(response.body()); +// int errcode = jsonObject.getIntValue("errcode"); +// Map<String, String> map = new HashMap<>(); +// if(errcode == 0){//成功 +// map.put("access_token", jsonObject.getString("access_token")); +// map.put("openid", jsonObject.getString("openid")); +// map.put("refresh_token", jsonObject.getString("refresh_token")); +// map.put("unionid", jsonObject.getString("unionid")); +// return map; +// } +// if(errcode == -1){//系统繁忙,此时请开发者稍候再试 +// map.put("msg", jsonObject.getString("errmsg")); +// return map; +// } +// if(errcode == 40029){//code 无效 +// map.put("msg", jsonObject.getString("errmsg")); +// return map; +// } +// if(errcode == 45011){//频率限制,每个用户每分钟100次 +// map.put("msg", jsonObject.getString("errmsg")); +// return map; +// } +// return map; +// } +// +// +// /** +// * 获取微信个人信息 +// * @param access_token +// * @param openid +// * @return +// */ +// public Map<String, Object> getUserInfo(String access_token, String openid) throws Exception{ +// String url = "https://api.weixin.qq.com/sns/userinfo?access_token=" + access_token + "&openid=" + openid; +// HttpRequest get = HttpUtil.createGet(url); +// HttpResponse response = get.execute(); +// if(response.getStatus() != 200){ +// return null; +// } +// JSONObject jsonObject = JSON.parseObject(response.body()); +// int errcode = jsonObject.getIntValue("errcode"); +// Map<String, Object> map = new HashMap<>(); +// if(errcode == 0){//成功 +// map.put("nickname", jsonObject.getString("nickname")); +// map.put("openid", jsonObject.getString("openid")); +// map.put("sex", jsonObject.getString("sex")); +// map.put("headimgurl", jsonObject.getString("headimgurl")); +// return map; +// } +// if(errcode == -1){//系统繁忙,此时请开发者稍候再试 +// map.put("msg", jsonObject.getString("errmsg")); +// return map; +// } +// if(errcode == 40029){//code 无效 +// map.put("msg", jsonObject.getString("errmsg")); +// return map; +// } +// if(errcode == 45011){//频率限制,每个用户每分钟100次 +// map.put("msg", jsonObject.getString("errmsg")); +// return map; +// } +// return map; +// } +// +// +// +// +//// /** +//// * 获取小程序二维码 +//// * @param page 跳转页 例如 pages/index/index +//// * @param scene 参数 a=1&b=2 +//// */ +//// public InputStream getwxacodeunlimit(String page, String scene){ +//// try { +//// String token = getWxAppletsAccessToken(); +//// if(StringUtils.isEmpty(token)){ +//// System.err.println("获取接口调用凭证失败"); +//// } +//// String url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + token; +//// Map<String, Object> param = new HashMap<>(); +//// param.put("scene", scene); +//// param.put("page", page); +//// HttpHeaders httpHeaders = new HttpHeaders(); +//// MediaType type=MediaType.parseMediaType("application/json;charset=UTF-8"); +//// httpHeaders.setContentType(type); +//// HttpEntity<Map<String, Object>> requestEntity = new HttpEntity<>(param, httpHeaders); +//// ResponseEntity<String> exchange = restTemplate.exchange(url, HttpMethod.POST, requestEntity, String.class, new Object[0]); +//// String body1 = exchange.getBody(); +////// System.err.println(body1); +//// ResponseEntity<byte[]> entity = restTemplate.exchange(url, HttpMethod.POST, requestEntity, byte[].class, new Object[0]); +//// byte[] body = entity.getBody(); +////// System.err.println(Base64.encodeBase64String(body)); +//// return new ByteArrayInputStream(body); +//// }catch (Exception e){ +//// e.printStackTrace(); +//// } +//// return null; +//// } +//} -- Gitblit v1.7.1