zhaops %!s(int64=5) %!d(string=hai) anos
pai
achega
641b064796

+ 4 - 0
config-server/src/main/resources/shared/zzcx-service-dev.yml

@@ -98,3 +98,7 @@ mybatis-plus:
 io.github.lvyahui8.spring:
   base-packages: com.diagbot.aggregate
   thread-number: 12
+
+weixin:
+  appid: wxedd53be102996426
+  secret: c164e280950342f166a933dd7aa6daf7

+ 4 - 0
config-server/src/main/resources/shared/zzcx-service-local.yml

@@ -98,3 +98,7 @@ mybatis-plus:
 io.github.lvyahui8.spring:
   base-packages: com.diagbot.aggregate
   thread-number: 12
+
+weixin:
+  appid: wxedd53be102996426
+  secret: c164e280950342f166a933dd7aa6daf7

+ 4 - 0
config-server/src/main/resources/shared/zzcx-service-pre.yml

@@ -98,3 +98,7 @@ mybatis-plus:
 io.github.lvyahui8.spring:
   base-packages: com.diagbot.aggregate
   thread-number: 12
+
+weixin:
+  appid: wxe4e2b88ec9c578bd
+  secret: 16ae52c464d2a201c7ede0820dadb4a9

+ 4 - 0
config-server/src/main/resources/shared/zzcx-service-pro.yml

@@ -98,3 +98,7 @@ mybatis-plus:
 io.github.lvyahui8.spring:
   base-packages: com.diagbot.aggregate
   thread-number: 12
+
+weixin:
+  appid: wxe4e2b88ec9c578bd
+  secret: 16ae52c464d2a201c7ede0820dadb4a9

+ 4 - 0
config-server/src/main/resources/shared/zzcx-service-test.yml

@@ -98,3 +98,7 @@ mybatis-plus:
 io.github.lvyahui8.spring:
   base-packages: com.diagbot.aggregate
   thread-number: 12
+
+weixin:
+  appid: wxe4e2b88ec9c578bd
+  secret: 16ae52c464d2a201c7ede0820dadb4a9

+ 4 - 0
config-server/src/main/resources/shared/zzcxtzsl-service-tzsl.yml

@@ -98,3 +98,7 @@ mybatis-plus:
 io.github.lvyahui8.spring:
   base-packages: com.diagbot.aggregate
   thread-number: 12
+
+weixin:
+  appid: wxe4e2b88ec9c578bd
+  secret: 16ae52c464d2a201c7ede0820dadb4a9

+ 40 - 12
zzcx-service/src/main/java/com/diagbot/facade/WeixinFacade.java

@@ -3,6 +3,7 @@ package com.diagbot.facade;
 import com.alibaba.fastjson.JSON;
 import com.diagbot.dto.RespDTO;
 import com.diagbot.vo.WeixinVO;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
 
 import java.io.InputStream;
@@ -10,6 +11,7 @@ import java.net.HttpURLConnection;
 import java.net.URL;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
+import java.util.HashMap;
 import java.util.LinkedHashMap;
 import java.util.Map;
 import java.util.UUID;
@@ -22,18 +24,44 @@ import java.util.UUID;
 @Component
 public class WeixinFacade {
 
+    @Value("${weixin.appid}")
+    private String appid;
+
+    @Value("${weixin.secret}")
+    private String secret;
+
+    // 存储accessToken 和 ticket
+    public static Map<String, String> cacheMap = new HashMap<>();
+
     public Map getConfig(WeixinVO weixinVO) {
         Map<String, String> map = new LinkedHashMap<>();
-        String appid =  "wxedd53be102996426";
-        String secret = "c164e280950342f166a933dd7aa6daf7";
-        String url=weixinVO.getUrl();
-            try {
-               /* Map<String, Object> map2  = WxUtil.oppen_id(request, request.getSession());
-                String oppen_id = (String) map2.get("oppen_id");
-                String accessToken  = (String) map2.get("access_token");*/
-            String accessToken = getAccessToken(appid,secret);
+        String url= weixinVO.getUrl();
+        try {
+           /* Map<String, Object> map2  = WxUtil.oppen_id(request, request.getSession());
+            String oppen_id = (String) map2.get("oppen_id");
+            String accessToken  = (String) map2.get("access_token");*/
+
+           // 1.获取accessToken
+           String accessToken = "";
+           if (cacheMap.get("accessTokenExpire") == null
+                   || Long.parseLong(cacheMap.get("accessTokenExpire")) < System.currentTimeMillis()) {
+               accessToken = getAccessToken(appid, secret);
+               cacheMap.put("accessTokenExpire", String.valueOf(System.currentTimeMillis() + 7200 * 1000)); // 过期时间
+               cacheMap.put("accessToken", accessToken);
+           } else {
+               accessToken = cacheMap.get("accessToken");
+           }
+
             //2、获取Ticket
-            String jsapi_ticket = getTicket(accessToken);
+            String jsapi_ticket = "";
+            if (cacheMap.get("ticketExpire") == null
+                    || Long.parseLong(cacheMap.get("ticketExpire")) < System.currentTimeMillis()) {
+                jsapi_ticket = getTicket(accessToken);
+                cacheMap.put("ticketExpire", String.valueOf(System.currentTimeMillis() + 7200 * 1000)); // 过期时间
+                cacheMap.put("ticket", jsapi_ticket);
+            } else {
+                jsapi_ticket = cacheMap.get("ticket");
+            }
 
             //3、时间戳和随机字符串
             String noncestr = UUID.randomUUID().toString().replace("-", "").substring(0, 16);//随机字符串
@@ -99,9 +127,9 @@ public class WeixinFacade {
             is.read(jsonBytes);
             String message = new String(jsonBytes, "UTF-8");
             Map<String,String> map = JSON.parseObject(message, Map.class);
-            System.out.println(map);
+           // System.out.println(map);
             access_token = map.get("access_token");
-            System.out.println(access_token);
+            // System.out.println(access_token);
             //            is.close();
             //
         } catch (Exception e) {
@@ -131,7 +159,7 @@ public class WeixinFacade {
             String message = new String(jsonBytes, "UTF-8");
 
             Map<String,String> map = JSON.parseObject(message, Map.class);
-            System.out.println(map);
+            //System.out.println(map);
             ticket = map.get("ticket");
             //            JSONObject demoJson = JSONObject.fromObject(message);
             //            System.out.println("JSON字符串:"+demoJson);

+ 0 - 3
zzcx-service/src/main/java/com/diagbot/web/WexinController.java

@@ -39,9 +39,6 @@ public class WexinController {
     @GetMapping("/getConfig")
     public RespDTO<Map> getConfig(HttpServletRequest request) {
         WeixinVO weixinVO = new WeixinVO();
-//        System.out.println(request.getRequestURL().toString());
-//        System.out.println(request.getQueryString());
-//        System.out.println(request.getRequestURL().toString() + "?" + request.getQueryString());
         weixinVO.setUrl(request.getParameter("url"));
         Map<String, String> map = weixinFacade.getConfig(weixinVO);
         return RespDTO.onSuc(map);