From 2ed8aad0f1707a167d544d9238ce00d8b5aca4f3 Mon Sep 17 00:00:00 2001
From: zxc <954985706@qq.com>
Date: Tue, 7 Jul 2020 14:55:04 +0800
Subject: [PATCH] =?UTF-8?q?=E5=BE=AE=E4=BF=A1=E7=AC=AC=E4=B8=89=E6=96=B9?=
=?UTF-8?q?=E5=B9=B3=E5=8F=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
epmet-gateway/pom.xml | 2 +-
.../epmet/constant/ThirdPlatformConstant.java | 17 +++
.../form/ComponentVerifyTicketFormDTO.java | 35 +++++
.../form/WeChatPlatformAuthCodeFormDTO.java | 25 +++
.../epmet-third-platform-server/pom.xml | 12 +-
.../com/epmet/constant/ModuleConstant.java | 24 ++-
.../ComponentVerifyTicketController.java | 44 ++++--
.../main/java/com/epmet/redis/RedisThird.java | 45 ++++++
.../service/ComponentVerifyTicketService.java | 46 ++++++
.../epmet/service/DbyWechatExtService.java | 24 ---
.../ComponentVerifyTicketServiceImpl.java | 144 ++++++++++++++++++
.../service/impl/DbyWechatExtServiceImpl.java | 59 -------
.../src/main/resources/bootstrap.yml | 17 +--
13 files changed, 381 insertions(+), 113 deletions(-)
create mode 100644 epmet-module/epmet-third-platform/epmet-third-platform-client/src/main/java/com/epmet/dto/form/ComponentVerifyTicketFormDTO.java
create mode 100644 epmet-module/epmet-third-platform/epmet-third-platform-client/src/main/java/com/epmet/dto/form/WeChatPlatformAuthCodeFormDTO.java
create mode 100644 epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/redis/RedisThird.java
create mode 100644 epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/service/ComponentVerifyTicketService.java
delete mode 100644 epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/service/DbyWechatExtService.java
create mode 100644 epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/service/impl/ComponentVerifyTicketServiceImpl.java
delete mode 100644 epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/service/impl/DbyWechatExtServiceImpl.java
diff --git a/epmet-gateway/pom.xml b/epmet-gateway/pom.xml
index 387ded533e..eec27085ba 100644
--- a/epmet-gateway/pom.xml
+++ b/epmet-gateway/pom.xml
@@ -187,7 +187,7 @@
- http://localhost:8109
+ http://localhost:8110
diff --git a/epmet-module/epmet-third-platform/epmet-third-platform-client/src/main/java/com/epmet/constant/ThirdPlatformConstant.java b/epmet-module/epmet-third-platform/epmet-third-platform-client/src/main/java/com/epmet/constant/ThirdPlatformConstant.java
index 09f8af7681..e047538a40 100644
--- a/epmet-module/epmet-third-platform/epmet-third-platform-client/src/main/java/com/epmet/constant/ThirdPlatformConstant.java
+++ b/epmet-module/epmet-third-platform/epmet-third-platform-client/src/main/java/com/epmet/constant/ThirdPlatformConstant.java
@@ -26,4 +26,21 @@ public interface ThirdPlatformConstant {
*/
String PLATFORM_COMPONENT_TOKEN = "****************";
+ /**
+ *
+ */
+ String API_COMPONENT_TOKEN_URl = "**************";
+
+ /**
+ *
+ */
+ String API_CREATE_PREAUTHCODE_URL = "***************";
+
+ /**
+ *
+ */
+ String API_QUERY_AUTH_URL = "**********";
+
+
+
}
diff --git a/epmet-module/epmet-third-platform/epmet-third-platform-client/src/main/java/com/epmet/dto/form/ComponentVerifyTicketFormDTO.java b/epmet-module/epmet-third-platform/epmet-third-platform-client/src/main/java/com/epmet/dto/form/ComponentVerifyTicketFormDTO.java
new file mode 100644
index 0000000000..6093755bea
--- /dev/null
+++ b/epmet-module/epmet-third-platform/epmet-third-platform-client/src/main/java/com/epmet/dto/form/ComponentVerifyTicketFormDTO.java
@@ -0,0 +1,35 @@
+package com.epmet.dto.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Author zxc
+ * @CreateTime 2020/7/7 11:12
+ */
+@Data
+public class ComponentVerifyTicketFormDTO implements Serializable {
+
+ private static final long serialVersionUID = -6547893374373422628L;
+
+ /**
+ * 第三方平台 appid
+ */
+ private String appId;
+
+ /**
+ * 时间戳,单位:s
+ */
+ private Integer CreateTime;
+
+ /**
+ * 固定为:"component_verify_ticket"
+ */
+ private String InfoType = "component_verify_ticket";
+
+ /**
+ * Ticket 内容
+ */
+ private String componentVerifyTicket;
+}
diff --git a/epmet-module/epmet-third-platform/epmet-third-platform-client/src/main/java/com/epmet/dto/form/WeChatPlatformAuthCodeFormDTO.java b/epmet-module/epmet-third-platform/epmet-third-platform-client/src/main/java/com/epmet/dto/form/WeChatPlatformAuthCodeFormDTO.java
new file mode 100644
index 0000000000..1cd006b004
--- /dev/null
+++ b/epmet-module/epmet-third-platform/epmet-third-platform-client/src/main/java/com/epmet/dto/form/WeChatPlatformAuthCodeFormDTO.java
@@ -0,0 +1,25 @@
+package com.epmet.dto.form;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Author zxc
+ * @CreateTime 2020/7/7 10:28
+ */
+@Data
+public class WeChatPlatformAuthCodeFormDTO implements Serializable {
+
+ private static final long serialVersionUID = -9047434066325122697L;
+
+ /**
+ * 预授权码
+ */
+ private String authCode;
+
+ /**
+ * 有效期,单位:秒
+ */
+ private Integer expiresIn;
+}
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 ecda6c12df..2ca9cbae36 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
@@ -93,6 +93,14 @@
+
+
+ com.squareup.okhttp3
+ okhttp
+ 4.3.1
+
+
+
org.springframework.boot
spring-boot-starter-test
@@ -148,7 +156,7 @@
true
- 8109
+ 8110
dev
@@ -180,7 +188,7 @@
true
-->
- 8109
+ 8110
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 79582996cf..4e220ae7d7 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
@@ -6,19 +6,29 @@ package com.epmet.constant;
*/
public interface ModuleConstant {
- String START_RECEIVE = "==============================开始授权事件接收URL=================================";
-
String TICKET_KEY = "ComponentVerifyTicket";
String TICKET_UNDERLINE_KEY = "component_verify_ticket";
+ String SUCCESS = "success";
+
+ String COMPONENT_APPID = "component_appid";
+
+ String COMPONENT_APPSECRET = "component_appsecret";
+
+ String COMPONENT_ACCESS_TOKEN = "component_access_token";
+
+ String PRE_AUTH_CODE = "pre_auth_code";
+
+ String AUTHORIZATION_CODE = "authorization_code";
+
String AUTH_TICKET = "====================授权票据【ComponentVerifyTicket】:【%s】====================";
String ERROR_TICKET = "微信开放平台,第三方平台获取【验证票据】失败";
String END_TICKET = "==============================结束授权事件接收URL=================================";
- String SUCCESS = "success";
+ String START_RECEIVE = "==============================开始授权事件接收URL=================================";
String URL_TICKET = "授权事件接收URL,验证票据";
@@ -26,4 +36,12 @@ public interface ModuleConstant {
String ERROR_URL_TICKET = "第三方平台授权事件接收URL,验证票据异常";
+ String SUCCESS_ACCESS_TOKEN = "====================结束执行定时任务获取令牌【component_access_token】====================";
+
+ String FAILURE_ACCESS_TOKEN = "微信开放平台,第三方平台获取【令牌】失败";
+
+ String TICKET_REDIS_KEY = "epmet:wechartthird:componentverifyticket";
+
+
+
}
diff --git a/epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/controller/ComponentVerifyTicketController.java b/epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/controller/ComponentVerifyTicketController.java
index 290e7a1489..3de7de9d66 100644
--- a/epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/controller/ComponentVerifyTicketController.java
+++ b/epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/controller/ComponentVerifyTicketController.java
@@ -1,15 +1,16 @@
package com.epmet.controller;
+import com.epmet.commons.tools.annotation.LoginUser;
+import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.form.ThirdPlatformEventFormDTO;
+import com.epmet.dto.form.WeChatPlatformAuthCodeFormDTO;
import com.epmet.dto.result.ResultBean;
-import com.epmet.service.DbyWechatExtService;
-import com.epmet.constant.ModuleConstant;
+import com.epmet.service.ComponentVerifyTicketService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
@@ -23,16 +24,37 @@ import org.springframework.web.bind.annotation.RestController;
public class ComponentVerifyTicketController {
@Autowired
- private DbyWechatExtService dbyWechatExtService;
+ private ComponentVerifyTicketService componentVerifyTicketService;
@PostMapping(value = "/event")
- public Result wechatPlatformEvent(@RequestBody ThirdPlatformEventFormDTO formDTO) {
+ public Result weChatPlatformEvent(@RequestBody ThirdPlatformEventFormDTO formDTO) {
ValidatorUtils.validateEntity(formDTO, ThirdPlatformEventFormDTO.ThirdPlatForm.class);
- ResultBean resultBean = new ResultBean();
- log.info(ModuleConstant.URL_TICKET);
- resultBean.setData(dbyWechatExtService.parseRequest(formDTO));
- log.info(ModuleConstant.SUCCESS_TICKET);
- return new Result().ok(resultBean);
+ componentVerifyTicketService.parseRequest(formDTO);
+ return new Result();
+ }
+
+ @PostMapping("ticketjob")
+ public Result ticketJob() {
+ componentVerifyTicketService.ticketJob();
+ return new Result();
+ }
+
+ @PostMapping("preauthcode")
+ public Result preAuthCode(){
+ componentVerifyTicketService.preAuthCode();
+ return new Result();
+ }
+
+ /**
+ * @Description
+ * @param formDTO
+ * @author zxc
+ */
+ @PostMapping(value = "/authcode")
+ public Result weChatPlatformAuthCode(@RequestBody WeChatPlatformAuthCodeFormDTO formDTO) {
+ ValidatorUtils.validateEntity(formDTO);
+ componentVerifyTicketService.weChatPlatformAuthCode(formDTO);
+ return new Result();
}
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
new file mode 100644
index 0000000000..9ba6820911
--- /dev/null
+++ b/epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/redis/RedisThird.java
@@ -0,0 +1,45 @@
+package com.epmet.redis;
+
+import com.epmet.commons.tools.redis.RedisUtils;
+import com.epmet.constant.ModuleConstant;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.RedisTemplate;
+import org.springframework.stereotype.Component;
+
+import java.util.concurrent.TimeUnit;
+
+/**
+ * @Author zxc
+ * @CreateTime 2020/7/7 9:33
+ */
+@Slf4j
+@Component
+public class RedisThird {
+
+ @Autowired
+ private RedisUtils redisUtils;
+ @Autowired
+ private RedisTemplate redisTemplate;
+
+ public void setComponentAccessToken (String accessToken){
+ redisTemplate.opsForValue().set(ModuleConstant.COMPONENT_ACCESS_TOKEN, accessToken, 60 * 60 * 2, TimeUnit.SECONDS);
+ }
+
+ public String getComponentAccessToken(String key){
+ return redisTemplate.opsForValue().get(key).toString();
+ }
+
+ public String getComponentVerifyTicket(String key){
+ return redisTemplate.opsForValue().get(key).toString();
+ }
+
+ public void setComponentVerifyTicket(String verifyTicket){
+ redisTemplate.opsForValue().set(ModuleConstant.TICKET_REDIS_KEY+ModuleConstant.TICKET_UNDERLINE_KEY, verifyTicket, 60 * 10, TimeUnit.SECONDS);
+ }
+
+ public void setPreAuthCode(String authCode){
+ redisTemplate.opsForValue().set(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/ComponentVerifyTicketService.java b/epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/service/ComponentVerifyTicketService.java
new file mode 100644
index 0000000000..b1bbb6fb4d
--- /dev/null
+++ b/epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/service/ComponentVerifyTicketService.java
@@ -0,0 +1,46 @@
+package com.epmet.service;
+
+import com.epmet.commons.tools.security.dto.TokenDto;
+import com.epmet.dto.form.ThirdPlatformEventFormDTO;
+import com.epmet.dto.form.WeChatPlatformAuthCodeFormDTO;
+import com.epmet.dto.result.ResultBean;
+import org.springframework.web.bind.annotation.RequestBody;
+
+/**
+ * @Author zxc
+ * @CreateTime 2020/7/6 11:19
+ */
+public interface ComponentVerifyTicketService {
+
+ /**
+ * 获得授权事件的票据
+ *
+ * @param timestamp 时间戳
+ * @param nonce 随机数
+ * @param msgSignature 消息体签名
+ * @param postData 消息体
+ * @return 如果获得只需要返回 SUCCESS
+ * @Author zxc
+ */
+ void parseRequest(ThirdPlatformEventFormDTO formDTO);
+
+ /**
+ * @Description 定时获取 ticket
+ * @author zxc
+ */
+ void ticketJob();
+
+ /**
+ * @Description 每个预授权码有效期为 10 分钟。需要先获取令牌才能调用 获取预授权码
+ * @author zxc
+ */
+ void preAuthCode();
+
+ /**
+ * @Description
+ * @param formDTO
+ * @author zxc
+ */
+ void weChatPlatformAuthCode(WeChatPlatformAuthCodeFormDTO formDTO);
+
+}
diff --git a/epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/service/DbyWechatExtService.java b/epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/service/DbyWechatExtService.java
deleted file mode 100644
index d8cdef3e1c..0000000000
--- a/epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/service/DbyWechatExtService.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package com.epmet.service;
-
-import com.epmet.dto.form.ThirdPlatformEventFormDTO;
-
-/**
- * @Author zxc
- * @CreateTime 2020/7/6 9:12
- */
-public interface DbyWechatExtService {
-
- /**
- * 获得授权事件的票据
- *
- * @param timestamp 时间戳
- * @param nonce 随机数
- * @param msgSignature 消息体签名
- * @param postData 消息体
- * @return 如果获得只需要返回 SUCCESS
- * @Author zxc
- */
- String parseRequest(ThirdPlatformEventFormDTO formDTO);
-
-
-}
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
new file mode 100644
index 0000000000..62ef4bef35
--- /dev/null
+++ b/epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/service/impl/ComponentVerifyTicketServiceImpl.java
@@ -0,0 +1,144 @@
+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.WXBizMsgCrypt;
+import com.epmet.util.WXXmlToMapUtil;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections4.MapUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import static com.epmet.constant.ThirdPlatformConstant.*;
+
+/**
+ * @Author zxc
+ * @CreateTime 2020/7/6 11:21
+ */
+@Slf4j
+@Service
+public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketService {
+
+ @Autowired
+ private RedisThird redisThird;
+
+ /**
+ * @Description 获得授权事件的票据
+ * @param formDTO
+ * @author zxc
+ */
+ @Override
+ public void parseRequest(ThirdPlatformEventFormDTO formDTO) {
+ String msgSignature = formDTO.getMsgSignature();
+ String nonce = formDTO.getNonce();
+ String postData = formDTO.getPostData();
+ String timeStamp = formDTO.getTimeStamp();
+ log.info(ModuleConstant.START_RECEIVE);
+ try {
+ //这个类是微信官网提供的解密类,需要用到消息校验Token 消息加密Key和服务平台appid
+ WXBizMsgCrypt pc = new WXBizMsgCrypt(ThirdPlatformConstant.PLATFORM_COMPONENT_TOKEN, ThirdPlatformConstant.PLATFORM_AES_KEY, ThirdPlatformConstant.PLATFORM_APP_ID);
+ String xml = pc.decryptMsg(msgSignature, timeStamp, nonce, postData);
+ // 将xml转为map
+ Map result = WXXmlToMapUtil.xmlToMap(xml);
+ String componentVerifyTicket = MapUtils.getString(result,ModuleConstant.TICKET_KEY);
+ if (StringUtils.isNotEmpty(componentVerifyTicket)) {
+ // 存储平台授权票据,保存ticket
+ redisThird.setComponentVerifyTicket(componentVerifyTicket);
+ } else {
+ throw new RuntimeException(ModuleConstant.ERROR_TICKET);
+ }
+ } catch (AesException e) {
+ e.printStackTrace();
+ }
+ log.info(ModuleConstant.END_TICKET);
+ }
+
+ /**
+ * @Description 定时获取票据
+ * @param
+ * @author zxc
+ */
+ @Override
+ public void ticketJob() {
+ log.info("====================开始执行定时任务获取令牌【component_access_token】====================");
+ Map reMap;
+ try {
+ // 核心定时器,每一个小时执行一次
+ String componentVerifyTicket = redisThird.getComponentVerifyTicket(ModuleConstant.TICKET_UNDERLINE_KEY);
+ JSONObject jsonObject = new JSONObject();
+ 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);
+ HashMap hashMap = JSON.parseObject(post, HashMap.class);
+ String componentAccessToken = hashMap.get(ModuleConstant.COMPONENT_ACCESS_TOKEN);
+ if (StringUtils.isNotEmpty(componentAccessToken)) {
+ redisThird.setComponentAccessToken(componentAccessToken);
+ } else {
+ throw new RuntimeException(ModuleConstant.FAILURE_ACCESS_TOKEN);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ log.info(ModuleConstant.SUCCESS_ACCESS_TOKEN);
+ }
+
+ /**
+ * @Description 定时获取预授权码
+ * @param
+ * @author zxc
+ */
+ @Override
+ 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;
+ 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("微信开放平台,第三方平台获取【预授权码】失败");
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ log.info("====================结束执行定时任务获取预授权码【pre_auth_code】====================");
+ }
+
+ @Override
+ public void weChatPlatformAuthCode(WeChatPlatformAuthCodeFormDTO formDTO) {
+ String authCode = formDTO.getAuthCode();
+ Integer expiresIn = formDTO.getExpiresIn();
+ // 获取令牌【component_access_token】
+ String accessToken = redisThird.getComponentAccessToken(ModuleConstant.COMPONENT_ACCESS_TOKEN);
+ // 使用授权码获取授权信息
+ 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));
+ // 重定向地址
+// response.sendRedirect("/wechat/authcode");
+ }
+}
diff --git a/epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/service/impl/DbyWechatExtServiceImpl.java b/epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/service/impl/DbyWechatExtServiceImpl.java
deleted file mode 100644
index 3a6b4c17dc..0000000000
--- a/epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/service/impl/DbyWechatExtServiceImpl.java
+++ /dev/null
@@ -1,59 +0,0 @@
-package com.epmet.service.impl;
-
-import com.epmet.constant.ThirdPlatformConstant;
-import com.epmet.dto.form.ThirdPlatformEventFormDTO;
-import com.epmet.exception.AesException;
-import com.epmet.service.DbyWechatExtService;
-import com.epmet.constant.ModuleConstant;
-import com.epmet.util.WXBizMsgCrypt;
-import com.epmet.util.WXXmlToMapUtil;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.commons.collections4.MapUtils;
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.redis.core.RedisTemplate;
-import org.springframework.stereotype.Service;
-
-import java.util.Map;
-import java.util.concurrent.TimeUnit;
-
-/**
- * @Author zxc
- * @CreateTime 2020/7/6 9:13
- */
-@Slf4j
-@Service
-public class DbyWechatExtServiceImpl implements DbyWechatExtService {
-
- @Autowired
- private RedisTemplate redisTemplate;
-
- @Override
- public String parseRequest(ThirdPlatformEventFormDTO formDTO) {
- String msgSignature = formDTO.getMsgSignature();
- String nonce = formDTO.getNonce();
- String postData = formDTO.getPostData();
- String timeStamp = formDTO.getTimeStamp();
- log.info(ModuleConstant.START_RECEIVE);
- try {
- //这个类是微信官网提供的解密类,需要用到消息校验Token 消息加密Key和服务平台appid
- WXBizMsgCrypt pc = new WXBizMsgCrypt(ThirdPlatformConstant.PLATFORM_COMPONENT_TOKEN, ThirdPlatformConstant.PLATFORM_AES_KEY, ThirdPlatformConstant.PLATFORM_APP_ID);
- String xml = pc.decryptMsg(msgSignature, timeStamp, nonce, postData);
- // 将xml转为map
- Map result = WXXmlToMapUtil.xmlToMap(xml);
- String componentVerifyTicket = MapUtils.getString(result,ModuleConstant.TICKET_KEY);
- if (StringUtils.isNotEmpty(componentVerifyTicket)) {
- // 存储平台授权票据,保存ticket
- redisTemplate.opsForValue().set(ModuleConstant.TICKET_UNDERLINE_KEY, componentVerifyTicket, 60 * 10, TimeUnit.SECONDS);
- String verifyTicket = redisTemplate.opsForValue().get(ModuleConstant.TICKET_UNDERLINE_KEY).toString();
- log.info(String.format(ModuleConstant.AUTH_TICKET,verifyTicket));
- } else {
- throw new RuntimeException(ModuleConstant.ERROR_TICKET);
- }
- } catch (AesException e) {
- e.printStackTrace();
- }
- log.info(ModuleConstant.END_TICKET);
- return ModuleConstant.SUCCESS;
- }
-}
diff --git a/epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/resources/bootstrap.yml b/epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/resources/bootstrap.yml
index 6c385f79f8..5e2f47ba4a 100644
--- a/epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/resources/bootstrap.yml
+++ b/epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/resources/bootstrap.yml
@@ -8,7 +8,7 @@ spring:
allow-bean-definition-overriding: true
application:
name: epmet-third-platform-server
- # dev|test|prod
+ # dev|test|prod
profiles:
active: dev
jackson:
@@ -31,9 +31,7 @@ spring:
nacos:
discovery:
server-addr: @nacos.server-addr@
- #nacosռIDĬpublic
namespace: @nacos.discovery.namespace@
- #Լעᵽעĵĵַ
register-enabled: @nacos.register-enabled@
ip: @nacos.ip@
config:
@@ -42,7 +40,6 @@ spring:
namespace: @nacos.config.namespace@
group: @nacos.config.group@
file-extension: yaml
- # Ǩƹflyway
flyway:
enabled: @spring.flyway.enabled@
locations: classpath:db/migration
@@ -62,19 +59,14 @@ management:
mybatis-plus:
mapper-locations: classpath:/mapper/**/*.xml
- #ʵɨ裬packageöŻ߷ֺŷָ
typeAliasesPackage: com.epmet.entity
global-config:
- #ݿ
db-config:
- # AUTO:"ݿID", INPUT:"ûID", ID_WORKER:"ȫΨһID (ΨһID)", UUID:"ȫΨһID UUID";
id-type: ID_WORKER
- #ֶβ IGNORED:"ж",NOT_NULL:" NULL ж"),NOT_EMPTY:"ǿж"
field-strategy: NOT_NULL
- #շ»ת
column-underline: true
banner: false
- #ԭ
+
configuration:
map-underscore-to-camel-case: true
cache-enabled: false
@@ -97,13 +89,12 @@ hystrix:
execution:
isolation:
thread:
- timeoutInMilliseconds: 60000 #ȱʡΪ1000
+ timeoutInMilliseconds: 60000
ribbon:
ReadTimeout: 300000
ConnectTimeout: 300000
-#pageHelperҳ
pagehelper:
helper-dialect: mysql
- reasonable: false #ҳãҳΪ-1ԶתΪСҳ1
\ No newline at end of file
+ reasonable: false
\ No newline at end of file