From fb6eee80334ae23a2eca8c37baeef05e86c919ed Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期二, 10 十二月 2024 17:09:00 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/weChat/WeChatUtil.java |   88 ++++++++++++++++++++++++++++---------------
 1 files changed, 57 insertions(+), 31 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 34adfb8..caa7cce 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,5 +1,7 @@
 package com.ruoyi.account.util.weChat;
 
+import cn.hutool.core.io.FileUtil;
+import cn.hutool.http.Header;
 import cn.hutool.http.HttpRequest;
 import cn.hutool.http.HttpResponse;
 import cn.hutool.http.HttpUtil;
@@ -7,10 +9,20 @@
 import com.alibaba.fastjson.JSONObject;
 import com.ruoyi.common.redis.service.RedisService;
 import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.codec.binary.Base64;
+import org.apache.http.HttpHeaders;
 import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.MediaType;
+import org.springframework.http.ResponseEntity;
 import org.springframework.stereotype.Component;
+import org.springframework.util.StringUtils;
 
 import javax.annotation.Resource;
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.InputStream;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.concurrent.TimeUnit;
@@ -186,35 +198,49 @@
     
 
 
-//    /**
-//     * 获取小程序二维码
-//     * @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;
-//    }
+    /**
+     * 获取小程序二维码
+     * @param page      跳转页 例如 pages/index/index
+     * @param scene     参数 a=1&b=2
+     */
+    public InputStream getwxacodeunlimit(String page, String scene, EnvVersion env_version){
+        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);
+            param.put("env_version", env_version.getVersion());
+    
+            HttpRequest post = HttpUtil.createPost(url);
+            post.header(Header.CONTENT_TYPE, "application/json;charset=UTF-8");
+            post.body(JSON.toJSONString(param));
+            HttpResponse execute = post.execute();
+            byte[] bytes = execute.bodyBytes();
+            String body1 = execute.body();
+            System.err.println(body1);
+            System.err.println(Base64.encodeBase64String(bytes));
+            return new ByteArrayInputStream(bytes);
+        }catch (Exception e){
+            e.printStackTrace();
+        }
+        return null;
+    }
+    
+    
+    /**
+     * 获取微信小程序二维码
+     * @param page
+     * @param scene
+     * @param filePath
+     * @return
+     */
+    public String getwxacodeunlimit(String page, String scene, EnvVersion env_version, String filePath){
+        InputStream getwxacodeunlimit = getwxacodeunlimit(page, scene, env_version);
+        File file = FileUtil.writeFromStream(getwxacodeunlimit, new File(filePath));
+        return file.getPath();
+    }
 }

--
Gitblit v1.7.1