diff --git a/jeecg-boot-module/jeecg-module-service/src/main/java/org/jeecg/modules/service/controller/WxController.java b/jeecg-boot-module/jeecg-module-service/src/main/java/org/jeecg/modules/service/controller/WxController.java index 2a3f732..56c4774 100644 --- a/jeecg-boot-module/jeecg-module-service/src/main/java/org/jeecg/modules/service/controller/WxController.java +++ b/jeecg-boot-module/jeecg-module-service/src/main/java/org/jeecg/modules/service/controller/WxController.java @@ -49,9 +49,9 @@ @Resource private RedisUtil redisUtil; - private final String WX_APP_ID = "wxe2603eb19313531b"; + private final String WX_APP_ID = "wx5b41ae4f83eaa771"; - private final String WX_APP_SECRET = "a3198fab736f30d7694ac7507046d546"; + private final String WX_APP_SECRET = "9bb04d4e054dc9cd2aec829f0a567800"; /** * 请求示例:wxCode:ynce, @@ -63,9 +63,6 @@ @PostMapping("/loginWxApplet") public Result login(@RequestBody UserLoginDTO dto) { log.info("微信用户登录"); - if (StringUtils.isEmpty(dto.getWxCode())){ - return Result.error("wxCode不能为空"); - } if (StringUtils.isEmpty(dto.getmCode())){ return Result.error("mCode不能为空"); } @@ -78,15 +75,17 @@ return Result.error("登录失败"); } UserLoginVO userLoginVO = new UserLoginVO(); - userLoginVO.setAuthUser(JSONObject.parseObject(JSON.toJSONString(authUser))); userLoginVO.setOpenid(authUser.getOpenId()); - SysUser sysUser = sysUserMapper.getUserByPhone((String) userLoginVO.getAuthUser().get("wxPhone")); + SysUser sysUser = sysUserMapper.getUserByPhone(authUser.getWxPhone()); if (sysUser == null){ userLoginVO.setIsCardMan(false); + authUser.setIsCardMan(false); }else { userLoginVO.setIsCardMan(true); + authUser.setIsCardMan(true); } + userLoginVO.setAuthUser(JSONObject.parseObject(JSON.toJSONString(authUser))); return Result.OK(userLoginVO); } @@ -96,7 +95,7 @@ String openId = getOpenId(dto.getJsCode()); AuthUser authUser = authUserMapper.getUserByOpenId(openId); if (authUser == null){ - String phone = getWxPhone(dto.getmCode(), dto.getWxCode()); + String phone = getWxPhone(dto.getmCode()); if (StringUtils.isBlank(phone)) { throw new JeecgBootException("没有获取到电话"); @@ -138,7 +137,7 @@ return (String) JSON.parseObject(result.getBody()).get("openid"); } - private String getWxPhone(String mCode, String wxCode) { + private String getWxPhone(String mCode) { // 请求地址 String url = "https://api.weixin.qq.com/wxa/business/getuserphonenumber"; @@ -150,7 +149,7 @@ JSONObject postParams = new JSONObject(); postParams.put("code", mCode); JSONObject getParams = new JSONObject(); - getParams.put("access_token", getWxAccessToken(wxCode)); + getParams.put("access_token", getWxAccessToken()); // 利用 RestUtil 请求该url ResponseEntity result = RestUtil.request(url, HttpMethod.POST, headers, getParams, postParams, String.class); @@ -158,8 +157,8 @@ System.out.println("返回结果:" + JSON.parseObject(result.getBody()).toJSONString()); } else { //accessToken失效,删除token,重新请求 - redisUtil.del("sys:wx:access_token" + ":" + wxCode); - getParams.put("access_token", getWxAccessToken(wxCode)); + redisUtil.del("sys:wx:access_token"); + getParams.put("access_token", getWxAccessToken()); result = RestUtil.request(url, HttpMethod.POST, headers, getParams, postParams, String.class); if (result != null && result.getBody() != null && JSON.parseObject(result.getBody()).get("phone_info") != null && JSON.parseObject(result.getBody()).getJSONObject("phone_info").get("phoneNumber") != null) { System.out.println("返回结果:" + JSON.parseObject(result.getBody()).toJSONString()); @@ -171,11 +170,7 @@ return JSON.parseObject(result.getBody()).getJSONObject("phone_info").get("phoneNumber").toString(); } - private String getWxAccessToken(String wxCode) { - //如缓存有则直接拿缓存 - if (redisUtil.hasKey("sys:wx:access_token" + ":" + wxCode)) { - return (String) redisUtil.get("sys:wx:access_token" + ":" + wxCode); - } + private String getWxAccessToken() { // 请求地址 String url = "https://api.weixin.qq.com/cgi-bin/token"; @@ -201,7 +196,7 @@ } String accessToken = result.getBody().get("access_token").toString(); if (StringUtils.isNotBlank(accessToken)) { - redisUtil.set("sys:wx:access_token" + ":" + wxCode, accessToken, 3600L); + redisUtil.set("sys:wx:access_token", accessToken, 3600L); return accessToken; } else { throw new JeecgBootException("查询失败");