diff --git a/epmet-module/epmet-third-platform/epmet-third-platform-server/pom.xml b/epmet-module/epmet-third-platform/epmet-third-platform-server/pom.xml index 2ca9cbae36..aa7bc1f05f 100644 --- a/epmet-module/epmet-third-platform/epmet-third-platform-server/pom.xml +++ b/epmet-module/epmet-third-platform/epmet-third-platform-server/pom.xml @@ -100,7 +100,6 @@ 4.3.1 - org.springframework.boot spring-boot-starter-test diff --git a/epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/constant/ModuleConstant.java b/epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/constant/ModuleConstant.java index 4e220ae7d7..8758c9a05a 100644 --- a/epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/constant/ModuleConstant.java +++ b/epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/constant/ModuleConstant.java @@ -42,6 +42,10 @@ public interface ModuleConstant { String TICKET_REDIS_KEY = "epmet:wechartthird:componentverifyticket"; + String PRE_AUTH_CODE_REDIS_KEY = "epmet:wechartthird:preauthcode"; + + String ACCESS_TOKEN_REDIS_KEY = "epmet:wechartthird:preauthcode"; + } diff --git a/epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/redis/RedisThird.java b/epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/redis/RedisThird.java index 9ba6820911..678d86f1d0 100644 --- a/epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/redis/RedisThird.java +++ b/epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/redis/RedisThird.java @@ -17,29 +17,52 @@ import java.util.concurrent.TimeUnit; @Component public class RedisThird { - @Autowired - private RedisUtils redisUtils; @Autowired private RedisTemplate redisTemplate; + /** + * @Description 缓存 component_access_token 有效期:2H + * @param accessToken + * @author zxc + */ public void setComponentAccessToken (String accessToken){ - redisTemplate.opsForValue().set(ModuleConstant.COMPONENT_ACCESS_TOKEN, accessToken, 60 * 60 * 2, TimeUnit.SECONDS); + redisTemplate.opsForValue().set(ModuleConstant.ACCESS_TOKEN_REDIS_KEY+ModuleConstant.COMPONENT_ACCESS_TOKEN, accessToken, 60 * 60 * 2, TimeUnit.SECONDS); } + /** + * @Description 获取 component_access_token + * @param key + * @author zxc + */ public String getComponentAccessToken(String key){ - return redisTemplate.opsForValue().get(key).toString(); + return redisTemplate.opsForValue().get(ModuleConstant.ACCESS_TOKEN_REDIS_KEY+key).toString(); } + /** + * @Description 获取 component_verify_ticket + * @param key + * @author zxc + */ public String getComponentVerifyTicket(String key){ - return redisTemplate.opsForValue().get(key).toString(); + return redisTemplate.opsForValue().get(ModuleConstant.TICKET_REDIS_KEY+ModuleConstant.TICKET_REDIS_KEY+key).toString(); } + /** + * @Description 缓存 component_verify_ticket 有效期:10min + * @param verifyTicket + * @author zxc + */ public void setComponentVerifyTicket(String verifyTicket){ redisTemplate.opsForValue().set(ModuleConstant.TICKET_REDIS_KEY+ModuleConstant.TICKET_UNDERLINE_KEY, verifyTicket, 60 * 10, TimeUnit.SECONDS); } + /** + * @Description 缓存 pre_auth_code 有效期:10min + * @param authCode + * @author zxc + */ public void setPreAuthCode(String authCode){ - redisTemplate.opsForValue().set(ModuleConstant.PRE_AUTH_CODE, authCode, 60 * 10, TimeUnit.SECONDS); + redisTemplate.opsForValue().set(ModuleConstant.PRE_AUTH_CODE_REDIS_KEY+ModuleConstant.PRE_AUTH_CODE, authCode, 60 * 10, TimeUnit.SECONDS); } } diff --git a/epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/service/impl/ComponentVerifyTicketServiceImpl.java b/epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/service/impl/ComponentVerifyTicketServiceImpl.java index 782fabfac7..7637c4af1c 100644 --- a/epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/service/impl/ComponentVerifyTicketServiceImpl.java +++ b/epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/service/impl/ComponentVerifyTicketServiceImpl.java @@ -2,14 +2,13 @@ package com.epmet.service.impl; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; -import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.constant.ModuleConstant; import com.epmet.constant.ThirdPlatformConstant; -import com.epmet.dto.form.ThirdPlatformEventFormDTO; import com.epmet.dto.form.WeChatPlatformAuthCodeFormDTO; import com.epmet.exception.AesException; import com.epmet.redis.RedisThird; import com.epmet.service.ComponentVerifyTicketService; +import com.epmet.util.OkHttpHelper; import com.epmet.util.WXBizMsgCrypt; import com.epmet.util.WXXmlToMapUtil; import lombok.extern.slf4j.Slf4j; @@ -18,6 +17,7 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.io.IOException; import java.util.HashMap; import java.util.Map; @@ -33,6 +33,8 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe @Autowired private RedisThird redisThird; + @Autowired + private OkHttpHelper okHttpHelper; /** * @Description 获得授权事件的票据 @@ -77,9 +79,8 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe jsonObject.put(ModuleConstant.COMPONENT_APPID, PLATFORM_APP_ID); jsonObject.put(ModuleConstant.COMPONENT_APPSECRET, PLATFORM_APP_SECRET); jsonObject.put(ModuleConstant.TICKET_UNDERLINE_KEY, componentVerifyTicket); -// String post = OkHttpHelper.post(API_COMPONENT_TOKEN_URl, JSON.toJSONString(jsonObject)); - String post = null; - log.info("====================返回post结果:" + post); + // todo OkHttpHelper 无法引入 + String post = okHttpHelper.post(API_COMPONENT_TOKEN_URl, JSON.toJSONString(jsonObject)); HashMap hashMap = JSON.parseObject(post, HashMap.class); String componentAccessToken = hashMap.get(ModuleConstant.COMPONENT_ACCESS_TOKEN); if (StringUtils.isNotEmpty(componentAccessToken)) { @@ -102,18 +103,15 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe public void preAuthCode() { log.info("====================开始执行定时任务获取预授权码【pre_auth_code】===================="); try { -// String accessToken = redisTemplate.opsForValue().get(ModuleConstant.COMPONENT_ACCESS_TOKEN).toString(); String accessToken = redisThird.getComponentAccessToken(ModuleConstant.COMPONENT_ACCESS_TOKEN); JSONObject jsonObject = new JSONObject(); jsonObject.put(ModuleConstant.COMPONENT_APPID, PLATFORM_APP_ID); -// String post = OkHttpHelper.post(API_CREATE_PREAUTHCODE_URL + accessToken, JSON.toJSONString(jsonObject)); - String post = null; + String post = okHttpHelper.post(API_CREATE_PREAUTHCODE_URL + accessToken, JSON.toJSONString(jsonObject)); log.info("====================返回post结果:" + post); HashMap hashMap = JSON.parseObject(post, HashMap.class); String authCode = hashMap.get("pre_auth_code"); if (StringUtils.isNotEmpty(authCode)) { redisThird.setPreAuthCode(authCode); -// redisTemplate.opsForValue().set("pre_auth_code", authCode, 60 * 10, TimeUnit.SECONDS); } else { throw new RuntimeException("微信开放平台,第三方平台获取【预授权码】失败"); } @@ -133,7 +131,11 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe JSONObject jsonObject = new JSONObject(); jsonObject.put(ModuleConstant.COMPONENT_APPID, PLATFORM_APP_ID); jsonObject.put(ModuleConstant.AUTHORIZATION_CODE, authCode); -// String post = OkHttpHelper.post(API_QUERY_AUTH_URL + accessToken, JSON.toJSONString(jsonObject)); + try { + String post = okHttpHelper.post(API_QUERY_AUTH_URL + accessToken, JSON.toJSONString(jsonObject)); + } catch (IOException e) { + e.printStackTrace(); + } // 重定向地址 // response.sendRedirect("/wechat/authcode"); } diff --git a/epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/util/OkHttpHelper.java b/epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/util/OkHttpHelper.java new file mode 100644 index 0000000000..0c11244db8 --- /dev/null +++ b/epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/util/OkHttpHelper.java @@ -0,0 +1,30 @@ +package com.epmet.util; + +import okhttp3.*; +import org.springframework.stereotype.Component; + +import java.io.IOException; + +/** + * @Author zxc + * @CreateTime 2020/7/7 17:39 + */ +@Component +public class OkHttpHelper { + + public static final MediaType JSON = MediaType.get("application/json; charset=utf-8"); + + OkHttpClient client = new OkHttpClient(); + + public String post(String url, String json) throws IOException { + RequestBody body = RequestBody.create(JSON, json); + Request request = new Request.Builder() + .url(url) + .post(body) + .build(); + try (Response response = client.newCall(request).execute()) { + return response.body().string(); + } + } + +}