From 06f455915bb9d11caa8829942f9007809ee9ae3d Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期四, 28 十一月 2024 16:37:45 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/weChat/WeChatUtil.java |  389 +++++++++++++++++++++++++++----------------------------
 1 files changed, 193 insertions(+), 196 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 7cf2c31..31b295c 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,200 @@
-//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;
-//
+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.appid}")
-//    private String webAppId;
-//
+    private String webAppId;
+
 //    @Value("${wx.appSecret}")
-//    private String webAppSecret;
-//
-//
+    private String webAppSecret;
+
+
+    /**
+     * 小程序使用jscode获取openid
+     * @param jscode
+     * @return
+     */
+    public Map<String, Object> code2Session(String jscode) {
+        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;
+    }
+
+    
+
+
 //    /**
-//     * 小程序使用jscode获取openid
-//     * @param jscode
-//     * @return
+//     * 获取小程序二维码
+//     * @param page      跳转页 例如 pages/index/index
+//     * @param scene     参数 a=1&b=2
 //     */
-//    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;
+//    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;
 //    }
-//
-//
-//    /**
-//     * 获取微信小程序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