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 +++++++++++++++++++-----
server/src/main/java/doumeemes/service/system/WxLoginService.java | 2 +-
server/src/main/java/doumeemes/api/system/SystemController.java | 4 ++--
3 files changed, 22 insertions(+), 8 deletions(-)
diff --git a/server/src/main/java/doumeemes/api/system/SystemController.java b/server/src/main/java/doumeemes/api/system/SystemController.java
index d500555..61dc7cb 100644
--- a/server/src/main/java/doumeemes/api/system/SystemController.java
+++ b/server/src/main/java/doumeemes/api/system/SystemController.java
@@ -78,8 +78,8 @@
@PreventRepeat(limit = 10, lockTime = 10000)
@ApiOperation("寰俊灏忕▼搴忕櫥褰�")
@GetMapping("/wxProgramLogin")
- public ApiResponse<WxLoginVO> wxProgramLogin (@RequestParam String unionId,@RequestParam String openId, HttpServletRequest request) {
- return ApiResponse.success(wxLoginService.wxProgramLogin(unionId,openId, request));
+ public ApiResponse<WxLoginVO> wxProgramLogin (@RequestParam String code, HttpServletRequest request) {
+ return ApiResponse.success(wxLoginService.wxProgramLogin(code, request));
}
@PreventRepeat(limit = 10, lockTime = 10000)
diff --git a/server/src/main/java/doumeemes/service/system/WxLoginService.java b/server/src/main/java/doumeemes/service/system/WxLoginService.java
index 6d01141..67c24aa 100644
--- a/server/src/main/java/doumeemes/service/system/WxLoginService.java
+++ b/server/src/main/java/doumeemes/service/system/WxLoginService.java
@@ -22,5 +22,5 @@
void wxLoginOut(WxLoginOutDTO wxLoginOutDTO);
- WxLoginVO wxProgramLogin(String unionId, String openId,HttpServletRequest request);
+ WxLoginVO wxProgramLogin(String code,HttpServletRequest request);
}
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