From 1a16c058cdf8ce9bfdad4853e518d521b29a87e6 Mon Sep 17 00:00:00 2001
From: jiangping <jp@doumee.com>
Date: 星期五, 25 八月 2023 13:52:30 +0800
Subject: [PATCH] 修复bug

---
 server/src/main/java/doumeemes/service/system/impl/WxLoginServiceImpl.java |   24 +++++++++++++++++++-----
 1 files changed, 19 insertions(+), 5 deletions(-)

diff --git a/server/src/main/java/doumeemes/service/system/impl/WxLoginServiceImpl.java b/server/src/main/java/doumeemes/service/system/impl/WxLoginServiceImpl.java
index c61c7a0..2c8fba5 100644
--- a/server/src/main/java/doumeemes/service/system/impl/WxLoginServiceImpl.java
+++ b/server/src/main/java/doumeemes/service/system/impl/WxLoginServiceImpl.java
@@ -104,6 +104,25 @@
 
     }
 
+
+    @Override
+    public WxLoginVO wxProgramLogin(String code, HttpServletRequest request) {
+        //TODO---------------浠诲悍
+        String appId = systemDictDataBiz.queryByCode(Constants.WX_CONFIG,Constants.APPID).getCode();
+        String appSecret = systemDictDataBiz.queryByCode(Constants.WX_CONFIG,Constants.APPSECRET).getCode();
+        String getTokenUrl = GET_ACCESS_TOKEN_URL.replace("CODE", code).replace("APPID", appId).replace("SECRET", appSecret);
+        JSONObject tokenJson = JSONObject.parseObject(HttpsUtil.get(getTokenUrl,true));
+        if(Objects.isNull(tokenJson.get("access_token"))){
+            throw new BusinessException(ResponseStatus.SERVER_ERROR.getCode(),tokenJson.getString("errmsg"));
+        }
+        String accessToken = tokenJson.getString("access_token");
+        String openId = tokenJson.getString("openid");
+        String getUserInfoUrl = GET_USER_INFO_URL.replace("ACCESS_TOKEN", accessToken).replace("OPENID", openId);
+        JSONObject userInfoJson = JSONObject.parseObject(HttpsUtil.get(getUserInfoUrl,true));
+
+        return  loginByUnionIdAndReturn(userInfoJson.getString("unionid"),openId,request);
+
+    }
     private WxLoginVO loginByUnionIdAndReturn(String unionid,String openId,HttpServletRequest request) {
         WxLoginVO wxLoginVO = new WxLoginVO();
         wxLoginVO.setOpenid(openId);
@@ -176,11 +195,6 @@
         }
     }
 
-    @Override
-    public WxLoginVO wxProgramLogin(String unionId,String openId, HttpServletRequest request) {
-        return  loginByUnionIdAndReturn(unionId,openId,request);
-
-    }
 
 
 

--
Gitblit v1.9.3