diff --git a/yshop-app/src/main/java/co/yixiang/modules/services/AuthService.java b/yshop-app/src/main/java/co/yixiang/modules/services/AuthService.java index 50244e93..08070aa3 100644 --- a/yshop-app/src/main/java/co/yixiang/modules/services/AuthService.java +++ b/yshop-app/src/main/java/co/yixiang/modules/services/AuthService.java @@ -97,6 +97,7 @@ public class AuthService { } WxMaService wxMaService = WxMaConfiguration.getWxMaService(); WxMaJscode2SessionResult session = wxMaService.getUserService().getSessionInfo(code); + WxMaUserInfo wxMpUser = wxMaService.getUserService() .getUserInfo(session.getSessionKey(), encryptedData, iv); String openid = wxMpUser.getOpenId(); @@ -157,6 +158,7 @@ public class AuthService { userService.updateById(yxUser); } userService.setSpread(spread, returnUser.getUid()); + redisUtils.set(ShopConstants.YSHOP_MINI_SESSION_KET + yxUser.getUid(), session.getSessionKey()); return returnUser; } catch (WxErrorException e) { e.printStackTrace(); diff --git a/yshop-app/src/main/java/co/yixiang/modules/wechat/rest/controller/WxMaUserController.java b/yshop-app/src/main/java/co/yixiang/modules/wechat/rest/controller/WxMaUserController.java index c0d893ac..0d0adc00 100644 --- a/yshop-app/src/main/java/co/yixiang/modules/wechat/rest/controller/WxMaUserController.java +++ b/yshop-app/src/main/java/co/yixiang/modules/wechat/rest/controller/WxMaUserController.java @@ -14,6 +14,7 @@ import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo; import cn.hutool.core.util.StrUtil; import co.yixiang.api.ApiResult; import co.yixiang.api.YshopException; +import co.yixiang.constant.ShopConstants; import co.yixiang.logging.aop.log.AppLog; import co.yixiang.common.bean.LocalUser; import co.yixiang.common.interceptor.AuthCheck; @@ -22,7 +23,9 @@ import co.yixiang.modules.user.service.YxUserService; import co.yixiang.modules.wechat.rest.param.BindPhoneParam; import co.yixiang.modules.wechat.rest.param.WxPhoneParam; import co.yixiang.modules.mp.config.WxMaConfiguration; +import co.yixiang.utils.RedisUtil; import co.yixiang.utils.RedisUtils; +import co.yixiang.utils.SecurityUtils; import co.yixiang.utils.ShopKeyUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -94,17 +97,13 @@ public class WxMaUserController { WxMaService wxMaService = WxMaConfiguration.getWxMaService(); String phone = ""; try { - WxMaJscode2SessionResult session = wxMaService.getUserService() - .getSessionInfo(param.getCode()); - - // 解密 - WxMaPhoneNumberInfo phoneNoInfo = wxMaService.getUserService() - .getPhoneNoInfo(session.getSessionKey(), param.getEncryptedData(), param.getIv()); - + String sessionKey = RedisUtil.get(ShopConstants.YSHOP_MINI_SESSION_KET+ user.getUid()).toString(); + WxMaPhoneNumberInfo phoneNoInfo = wxMaService.getUserService() + .getPhoneNoInfo(sessionKey, param.getEncryptedData(), param.getIv()); phone = phoneNoInfo.getPhoneNumber(); user.setPhone(phone); userService.updateById(user); - } catch (WxErrorException e) { + } catch (Exception e) { e.printStackTrace(); throw new YshopException("绑定失败"); } diff --git a/yshop-common/src/main/java/co/yixiang/constant/ShopConstants.java b/yshop-common/src/main/java/co/yixiang/constant/ShopConstants.java index fde29bd8..9da21228 100644 --- a/yshop-common/src/main/java/co/yixiang/constant/ShopConstants.java +++ b/yshop-common/src/main/java/co/yixiang/constant/ShopConstants.java @@ -173,5 +173,5 @@ public interface ShopConstants { String DEFAULT_UNI_H5_URL = "https://h5.yixiang.co"; - + String YSHOP_MINI_SESSION_KET = "yshop:session_key:"; }