From c18ec3846c8483975de2224c1ecac9470e9b2804 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 16 八月 2023 19:21:36 +0800
Subject: [PATCH] 同步代码

---
 user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/util/weChat/WeChatUtil.java |   70 +++++++++++++++++++++++++++--------
 1 files changed, 54 insertions(+), 16 deletions(-)

diff --git a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/util/weChat/WeChatUtil.java b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/util/weChat/WeChatUtil.java
index c23f490..90e657d 100644
--- a/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/util/weChat/WeChatUtil.java
+++ b/user/guns-admin/src/main/java/com/supersavedriving/user/modular/system/util/weChat/WeChatUtil.java
@@ -65,22 +65,22 @@
             @Override
             public void run() {
                 try {
-                    Thread.sleep(30000);
-                    new Timer().schedule(new TimerTask() {
-                        @Override
-                        public void run() {
-                            try {
-                                String wxAppletsAccessToken = getWxAppletsAccessToken();
-                                if(ToolUtil.isEmpty(wxAppletsAccessToken)){
-                                    System.err.println("获取微信小程序access_token失败");
-                                    return;
-                                }
-                                redisUtil.setStrValue("wxAppletsAccessToken", wxAppletsAccessToken, 7000);
-                            }catch (Exception e){
-                                e.printStackTrace();
-                            }
-                        }
-                    }, 0, 7000000);
+//                    Thread.sleep(30000);
+//                    new Timer().schedule(new TimerTask() {
+//                        @Override
+//                        public void run() {
+//                            try {
+//                                String wxAppletsAccessToken = getWxAppletsAccessToken();
+//                                if(ToolUtil.isEmpty(wxAppletsAccessToken)){
+//                                    System.err.println("获取微信小程序access_token失败");
+//                                    return;
+//                                }
+//                                redisUtil.setStrValue("wxAppletsAccessToken", wxAppletsAccessToken, 7000);
+//                            }catch (Exception e){
+//                                e.printStackTrace();
+//                            }
+//                        }
+//                    }, 0, 6000000);
                 }catch (Exception e){
                     e.printStackTrace();
                 }
@@ -412,4 +412,42 @@
         String body1 = exchange.getBody();
         return body1;
     }
+
+
+
+
+    /**
+     * 获取小程序urllink码
+     * env_version 默认值"release"。要打开的小程序版本。正式版为 "release",体验版为"trial",开发版为"develop",仅在微信外打开时生效。
+     * @return
+     */
+    public String getUrlLink(String path, String query, String env_version) throws Exception{
+        String wxAppletsAccessToken = redisUtil.getValue("wxAppletsAccessToken");
+        String url = "https://api.weixin.qq.com/wxa/generate_urllink?access_token=" + wxAppletsAccessToken;
+        Map<String, Object> param = new HashMap<>();
+        param.put("path", path);
+        param.put("query", query);
+        param.put("is_expire", true);
+        param.put("expire_type", 0);
+        param.put("expire_time", System.currentTimeMillis() + 60 * 60 * 1000);
+        param.put("env_version", env_version);
+        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);
+        String body1 = exchange.getBody();
+        JSONObject jsonObject = JSON.parseObject(body1);
+        Integer errcode = jsonObject.getInteger("errcode");
+        if(null != errcode && 40001 == errcode){
+            wxAppletsAccessToken = getWxAppletsAccessToken();
+            if(ToolUtil.isEmpty(wxAppletsAccessToken)){
+                System.err.println("获取微信小程序access_token失败");
+                return "获取微信小程序access_token失败";
+            }
+            redisUtil.setStrValue("wxAppletsAccessToken", wxAppletsAccessToken, 7000);
+            return getUrlLink(path, query, env_version);
+        }
+        return body1;
+    }
 }

--
Gitblit v1.7.1