diff --git a/jsowell-admin/src/main/java/com/jsowell/service/AgentDevService.java b/jsowell-admin/src/main/java/com/jsowell/service/AgentDevService.java index c4e245f1e..c5279c0ab 100644 --- a/jsowell-admin/src/main/java/com/jsowell/service/AgentDevService.java +++ b/jsowell-admin/src/main/java/com/jsowell/service/AgentDevService.java @@ -131,7 +131,7 @@ public class AgentDevService { /** * 小程序/公众号授权事件 - * + * https://developers.weixin.qq.com/doc/oplatform/Third-party_Platforms/2.0/api/Before_Develop/authorize_event.html * @param map */ private void authorizedInform(Map map) { @@ -148,19 +148,19 @@ public class AgentDevService { // 用户授权码 redisKey String authCodeRedisKey = CacheConstants.COMPONENT_AUTHORIZATION_CODE + authorizerAppid; // 用户预授权码 redisKey 过期时间 1800 秒 - String preAuthCodeRedisKey = CacheConstants.COMPONENT_PRE_AUTHORIZATION_CODE + authorizerAppid; + // String preAuthCodeRedisKey = CacheConstants.COMPONENT_PRE_AUTHORIZATION_CODE + authorizerAppid; // 如果此用户之前有缓存,需把原来的删除 if (StringUtils.isNotBlank(authCodeRedisKey)) { redisCache.deleteObject(authCodeRedisKey); } - if (StringUtils.isNotBlank(preAuthCodeRedisKey)) { - redisCache.deleteObject(preAuthCodeRedisKey); - } + // if (StringUtils.isNotBlank(preAuthCodeRedisKey)) { + // redisCache.deleteObject(preAuthCodeRedisKey); + // } // 获取授权码 String authorizationCode = MapUtils.getString(map, "AuthorizationCode"); // 预授权码 - String preAuthCode = MapUtils.getString(map, "PreAuthCode"); + // String preAuthCode = MapUtils.getString(map, "PreAuthCode"); // 过期时间 (授权码用) int expiredTime = (Integer) MapUtils.getObject(map, "AuthorizationCodeExpiredTime"); @@ -170,7 +170,7 @@ public class AgentDevService { } redisCache.setCacheObject(authCodeRedisKey, authorizationCode, expiredTime, TimeUnit.SECONDS); - redisCache.setCacheObject(preAuthCodeRedisKey, preAuthCode, 60 * 30, TimeUnit.SECONDS); + // redisCache.setCacheObject(preAuthCodeRedisKey, preAuthCode, 60 * 30, TimeUnit.SECONDS); logger.info("微信开放平台,第三方平台小程序/公众号授权事件 success"); } @@ -365,6 +365,12 @@ public class AgentDevService { * @return */ public String getPreAuthorizerCode() { + String redisKey = CacheConstants.PLATFORM_PRE_AUTH_CODE + PLATFORM_APP_ID; + // 先查缓存 + String preAuthCode = redisCache.getCacheObject(redisKey); + if (StringUtils.isNotBlank(preAuthCode)) { + return preAuthCode; + } // 获取平台令牌 GetComponentTokenDTO dto = GetComponentTokenDTO.builder() .appId(PLATFORM_APP_ID) @@ -382,11 +388,14 @@ public class AgentDevService { logger.info("微信第三方平台 获取预授权码请求 params:{}, result:{}", JSONObject.toJSONString(jsonObject), result); // 将返回结果转成json对象 JSONObject resultJson = JSONObject.parseObject(result); - String preAuthCode = resultJson.getString("pre_auth_code"); + preAuthCode = resultJson.getString("pre_auth_code"); if (StringUtils.isBlank(preAuthCode)) { logger.error("微信第三方平台 获取预授权码为空"); return null; } + // 存入缓存 有效期 1800 秒 + redisCache.setCacheObject(redisKey, preAuthCode, 60 * 30, TimeUnit.SECONDS); + return preAuthCode; } diff --git a/jsowell-common/src/main/java/com/jsowell/common/constant/CacheConstants.java b/jsowell-common/src/main/java/com/jsowell/common/constant/CacheConstants.java index 69fb33112..d68b6f249 100644 --- a/jsowell-common/src/main/java/com/jsowell/common/constant/CacheConstants.java +++ b/jsowell-common/src/main/java/com/jsowell/common/constant/CacheConstants.java @@ -118,7 +118,12 @@ public class CacheConstants { /** * 微信第三方平台 用户预授权码 */ - public static final String COMPONENT_PRE_AUTHORIZATION_CODE = "component_pre_authorization_code:"; + // public static final String COMPONENT_PRE_AUTHORIZATION_CODE = "component_pre_authorization_code:"; + + /** + * 微信第三方平台 用户预授权码 + */ + public static final String PLATFORM_PRE_AUTH_CODE = "platform_pre_auth_code:"; /** * 微信第三方平台 token