Browse Source

微信第三方平台

master
zxc 5 years ago
parent
commit
fe63708456
  1. 2
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/ServiceConstant.java
  2. 8
      epmet-gateway/pom.xml
  3. 8
      epmet-gateway/src/main/resources/bootstrap.yml
  4. 12
      epmet-module/epmet-third/epmet-third-client/pom.xml
  5. 0
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/ComponentVerifyTicketFormDTO.java
  6. 0
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/ThirdPlatformEventFormDTO.java
  7. 0
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/WeChatPlatformAuthCodeFormDTO.java
  8. 0
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/ResultBean.java
  9. 6
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/EpmetThirdFeignClient.java
  10. 4
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/fallback/EpmetThirdFeignClientFallback.java
  11. 0
      epmet-module/epmet-third/epmet-third-server/.gitignore
  12. 8
      epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml
  13. 8
      epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-test.yml
  14. 8
      epmet-module/epmet-third/epmet-third-server/pom.xml
  15. 4
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/EpmetThirdApplication.java
  16. 0
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/aspect/RequestLogAspect.java
  17. 2
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/config/ModuleConfigImpl.java
  18. 8
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/constant/ModuleConstant.java
  19. 8
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/constant/ThirdPlatformConstant.java
  20. 46
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/ComponentVerifyTicketController.java
  21. 0
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/exception/AesException.java
  22. 21
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/redis/RedisThird.java
  23. 19
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/ComponentVerifyTicketService.java
  24. 33
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/ComponentVerifyTicketServiceImpl.java
  25. 0
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/util/OkHttpHelper.java
  26. 0
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/util/PKCS7EncoderUtil.java
  27. 0
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/util/WXBizMsgCrypt.java
  28. 0
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/util/WXXmlToMapUtil.java
  29. 4
      epmet-module/epmet-third/epmet-third-server/src/main/resources/bootstrap.yml
  30. 0
      epmet-module/epmet-third/epmet-third-server/src/main/resources/logback-spring.xml
  31. 6
      epmet-module/epmet-third/pom.xml
  32. 2
      epmet-module/pom.xml

2
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/constant/ServiceConstant.java

@ -122,5 +122,5 @@ public interface ServiceConstant {
/** /**
* 微信第三方平台 * 微信第三方平台
*/ */
String EPMET_THIRD_PLATFORM_SERVER = "epmet-third-platform-server"; String EPMET_THIRD_SERVER = "epmet-third-server";
} }

8
epmet-gateway/pom.xml

@ -186,8 +186,8 @@
<gateway.routes.epmet-openapi-scan.uri>lb://epmet-openapi-scan</gateway.routes.epmet-openapi-scan.uri> <gateway.routes.epmet-openapi-scan.uri>lb://epmet-openapi-scan</gateway.routes.epmet-openapi-scan.uri>
<!-- <gateway.routes.epmet-openapi-scan.uri>http://localhost:8107</gateway.routes.epmet-openapi-scan.uri>--> <!-- <gateway.routes.epmet-openapi-scan.uri>http://localhost:8107</gateway.routes.epmet-openapi-scan.uri>-->
<!-- 31、微信第三方平台 --> <!-- 31、微信第三方平台 -->
<!-- <gateway.routes.epmet-third-platform-server.uri>lb://epmet-third-platform-server</gateway.routes.epmet-third-platform-server.uri>--> <gateway.routes.epmet-third-server.uri>lb://epmet-third-platform-server</gateway.routes.epmet-third-server.uri>
<gateway.routes.epmet-third-platform-server.uri>http://localhost:8110</gateway.routes.epmet-third-platform-server.uri> <!-- <gateway.routes.epmet-third-server.uri>http://localhost:8110</gateway.routes.epmet-third-server.uri>-->
</properties> </properties>
</profile> </profile>
@ -271,6 +271,8 @@
<gateway.routes.data-statistical-server.uri>lb://data-statistical-server</gateway.routes.data-statistical-server.uri> <gateway.routes.data-statistical-server.uri>lb://data-statistical-server</gateway.routes.data-statistical-server.uri>
<!-- 30、内容审核服务 --> <!-- 30、内容审核服务 -->
<gateway.routes.epmet-openapi-scan.uri>lb://epmet-openapi-scan</gateway.routes.epmet-openapi-scan.uri> <gateway.routes.epmet-openapi-scan.uri>lb://epmet-openapi-scan</gateway.routes.epmet-openapi-scan.uri>
<!-- 31、微信第三方平台 -->
<gateway.routes.epmet-third-server.uri>lb://epmet-third-server</gateway.routes.epmet-third-server.uri>
</properties> </properties>
</profile> </profile>
<profile> <profile>
@ -351,7 +353,7 @@
<!-- 30、内容审核服务 --> <!-- 30、内容审核服务 -->
<gateway.routes.epmet-openapi-scan.uri>lb://epmet-openapi-scan</gateway.routes.epmet-openapi-scan.uri> <gateway.routes.epmet-openapi-scan.uri>lb://epmet-openapi-scan</gateway.routes.epmet-openapi-scan.uri>
<!-- 31、微信第三方平台 --> <!-- 31、微信第三方平台 -->
<gateway.routes.epmet-third-platform-server.uri>lb://epmet-third-platform-server</gateway.routes.epmet-third-platform-server.uri> <gateway.routes.epmet-third-server.uri>lb://epmet-third-server</gateway.routes.epmet-third-server.uri>
</properties> </properties>
</profile> </profile>
</profiles> </profiles>

8
epmet-gateway/src/main/resources/bootstrap.yml

@ -287,11 +287,11 @@ spring:
- StripPrefix=1 - StripPrefix=1
- CpAuth=true - CpAuth=true
#微信第三方平台 #微信第三方平台
- id: epmet-third-platform-server - id: epmet-third-server
uri: @gateway.routes.epmet-third-platform-server.uri@ uri: @gateway.routes.epmet-third-server.uri@
order: 31 order: 31
predicates: predicates:
- Path=${server.servlet.context-path}/epmet/third/platform/** - Path=${server.servlet.context-path}/third/**
filters: filters:
- StripPrefix=1 - StripPrefix=1
- CpAuth=true - CpAuth=true
@ -409,7 +409,7 @@ epmet:
- /gov/issue/** - /gov/issue/**
- /gov/project/** - /gov/project/**
- /resi/home/** - /resi/home/**
- /epmet/third/platform/** - /third/**
swaggerUrls: swaggerUrls:
jwt: jwt:

12
epmet-module/epmet-third-platform/epmet-third-platform-client/pom.xml → epmet-module/epmet-third/epmet-third-client/pom.xml

@ -5,13 +5,13 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<parent> <parent>
<artifactId>epmet-third-platform</artifactId> <artifactId>epmet-third</artifactId>
<groupId>com.epmet</groupId> <groupId>com.epmet</groupId>
<version>2.0.0</version> <version>2.0.0</version>
</parent> </parent>
<artifactId>epmet-third-platform-client</artifactId> <artifactId>epmet-third-client</artifactId>
<packaging>jar</packaging> <packaging>jar</packaging>
<dependencies> <dependencies>
@ -20,14 +20,6 @@
<artifactId>epmet-commons-tools</artifactId> <artifactId>epmet-commons-tools</artifactId>
<version>2.0.0</version> <version>2.0.0</version>
</dependency> </dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
</dependency>
</dependencies> </dependencies>
<build> <build>

0
epmet-module/epmet-third-platform/epmet-third-platform-client/src/main/java/com/epmet/dto/form/ComponentVerifyTicketFormDTO.java → epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/ComponentVerifyTicketFormDTO.java

0
epmet-module/epmet-third-platform/epmet-third-platform-client/src/main/java/com/epmet/dto/form/ThirdPlatformEventFormDTO.java → epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/ThirdPlatformEventFormDTO.java

0
epmet-module/epmet-third-platform/epmet-third-platform-client/src/main/java/com/epmet/dto/form/WeChatPlatformAuthCodeFormDTO.java → epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/WeChatPlatformAuthCodeFormDTO.java

0
epmet-module/epmet-third-platform/epmet-third-platform-client/src/main/java/com/epmet/dto/result/ResultBean.java → epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/result/ResultBean.java

6
epmet-module/epmet-third-platform/epmet-third-platform-client/src/main/java/com/epmet/feign/EpmetThirdPlatformFeignClient.java → epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/EpmetThirdFeignClient.java

@ -1,7 +1,7 @@
package com.epmet.feign; package com.epmet.feign;
import com.epmet.commons.tools.constant.ServiceConstant; import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.feign.fallback.EpmetThirdPlatformFeignClientFallback; import com.epmet.feign.fallback.EpmetThirdFeignClientFallback;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
/** /**
@ -10,7 +10,7 @@ import org.springframework.cloud.openfeign.FeignClient;
* @Author zxc * @Author zxc
* @CreateTime 2020/7/5 14:45 * @CreateTime 2020/7/5 14:45
*/ */
@FeignClient(name = ServiceConstant.EPMET_THIRD_PLATFORM_SERVER, fallback = EpmetThirdPlatformFeignClientFallback.class) @FeignClient(name = ServiceConstant.EPMET_THIRD_SERVER, fallback = EpmetThirdFeignClientFallback.class)
public interface EpmetThirdPlatformFeignClient { public interface EpmetThirdFeignClient {
} }

4
epmet-module/epmet-third-platform/epmet-third-platform-client/src/main/java/com/epmet/feign/fallback/EpmetThirdPlatformFeignClientFallback.java → epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/feign/fallback/EpmetThirdFeignClientFallback.java

@ -1,6 +1,6 @@
package com.epmet.feign.fallback; package com.epmet.feign.fallback;
import com.epmet.feign.EpmetThirdPlatformFeignClient; import com.epmet.feign.EpmetThirdFeignClient;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
/** /**
@ -8,5 +8,5 @@ import org.springframework.stereotype.Component;
* @CreateTime 2020/7/5 14:46 * @CreateTime 2020/7/5 14:46
*/ */
@Component @Component
public class EpmetThirdPlatformFeignClientFallback implements EpmetThirdPlatformFeignClient { public class EpmetThirdFeignClientFallback implements EpmetThirdFeignClient {
} }

0
epmet-module/epmet-third-platform/epmet-third-platform-server/.gitignore → epmet-module/epmet-third/epmet-third-server/.gitignore

8
epmet-module/epmet-third-platform/epmet-third-platform-server/deploy/docker-compose-dev.yml → epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-dev.yml

@ -1,10 +1,10 @@
version: "3.7" version: "3.7"
services: services:
epmet-third-platform-server: epmet-third-server:
container_name: epmet-third-platform-server-dev container_name: epmet-third-server-dev
image: 192.168.1.130:10080/epmet-cloud-dev/epmet-third-platform-server:0.0.1 image: 192.168.1.130:10080/epmet-cloud-dev/epmet-third-server:0.0.1
ports: ports:
- "8109:8109" - "8110:8110"
network_mode: host # 使用现有网络 network_mode: host # 使用现有网络
volumes: volumes:
- "/opt/epmet-cloud-logs/dev:/logs" - "/opt/epmet-cloud-logs/dev:/logs"

8
epmet-module/epmet-third-platform/epmet-third-platform-server/deploy/docker-compose-test.yml → epmet-module/epmet-third/epmet-third-server/deploy/docker-compose-test.yml

@ -1,10 +1,10 @@
version: "3.7" version: "3.7"
services: services:
epmet-third-platform-server: epmet-third-server:
container_name: epmet-third-platform-server-test container_name: epmet-third-server-test
image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/epmet-third-platform-server:0.0.1 image: registry-vpc.cn-qingdao.aliyuncs.com/epmet-cloud-release/epmet-third-server:0.0.1
ports: ports:
- "8109:8109" - "8110:8110"
network_mode: host # 使用现有网络 network_mode: host # 使用现有网络
volumes: volumes:
- "/opt/epmet-cloud-logs/test:/logs" - "/opt/epmet-cloud-logs/test:/logs"

8
epmet-module/epmet-third-platform/epmet-third-platform-server/pom.xml → epmet-module/epmet-third/epmet-third-server/pom.xml

@ -6,11 +6,11 @@
<parent> <parent>
<groupId>com.epmet</groupId> <groupId>com.epmet</groupId>
<artifactId>epmet-third-platform</artifactId> <artifactId>epmet-third</artifactId>
<version>2.0.0</version> <version>2.0.0</version>
</parent> </parent>
<artifactId>epmet-third-platform-server</artifactId> <artifactId>epmet-third-server</artifactId>
<packaging>jar</packaging> <packaging>jar</packaging>
<properties> <properties>
@ -23,7 +23,7 @@
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>com.epmet</groupId> <groupId>com.epmet</groupId>
<artifactId>epmet-third-platform-client</artifactId> <artifactId>epmet-third-client</artifactId>
<version>2.0.0</version> <version>2.0.0</version>
</dependency> </dependency>
<dependency> <dependency>
@ -97,7 +97,7 @@
<dependency> <dependency>
<groupId>com.squareup.okhttp3</groupId> <groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId> <artifactId>okhttp</artifactId>
<version>4.3.1</version> <version>4.0.0</version>
</dependency> </dependency>
<dependency> <dependency>

4
epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/EpmetThirdPlatformApplication.java → epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/EpmetThirdApplication.java

@ -8,10 +8,10 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
@SpringBootApplication @SpringBootApplication
@EnableDiscoveryClient @EnableDiscoveryClient
@EnableFeignClients @EnableFeignClients
public class EpmetThirdPlatformApplication { public class EpmetThirdApplication {
public static void main(String[] args) { public static void main(String[] args) {
SpringApplication.run(EpmetThirdPlatformApplication.class, args); SpringApplication.run(EpmetThirdApplication.class, args);
} }
} }

0
epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/aspect/RequestLogAspect.java → epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/aspect/RequestLogAspect.java

2
epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/config/ModuleConfigImpl.java → epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/config/ModuleConfigImpl.java

@ -21,6 +21,6 @@ import org.springframework.stereotype.Service;
public class ModuleConfigImpl implements ModuleConfig { public class ModuleConfigImpl implements ModuleConfig {
@Override @Override
public String getName() { public String getName() {
return "epmetthirdplatform"; return "epmetthird";
} }
} }

8
epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/constant/ModuleConstant.java → epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/constant/ModuleConstant.java

@ -22,6 +22,12 @@ public interface ModuleConstant {
String AUTHORIZATION_CODE = "authorization_code"; String AUTHORIZATION_CODE = "authorization_code";
String AUTHORIZER_APPID = "authorizer_appid";
String AUTHORIZATION_INFO = "authorization_info";
String AUTHORIZER_REFRESH_TOKEN = "authorizer_refresh_token";
String AUTH_TICKET = "====================授权票据【ComponentVerifyTicket】:【%s】===================="; String AUTH_TICKET = "====================授权票据【ComponentVerifyTicket】:【%s】====================";
String ERROR_TICKET = "微信开放平台,第三方平台获取【验证票据】失败"; String ERROR_TICKET = "微信开放平台,第三方平台获取【验证票据】失败";
@ -46,6 +52,8 @@ public interface ModuleConstant {
String ACCESS_TOKEN_REDIS_KEY = "epmet:wechartthird:preauthcode"; String ACCESS_TOKEN_REDIS_KEY = "epmet:wechartthird:preauthcode";
String AUTHORIZER_REFRESH_TOKEN_REDIS_KEY = "epmet:wechartthird:authorizerrefreshtoken";
} }

8
epmet-module/epmet-third-platform/epmet-third-platform-client/src/main/java/com/epmet/constant/ThirdPlatformConstant.java → epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/constant/ThirdPlatformConstant.java

@ -29,17 +29,17 @@ public interface ThirdPlatformConstant {
/** /**
* *
*/ */
String API_COMPONENT_TOKEN_URl = "**************"; String API_COMPONENT_TOKEN_URl = "https://api.weixin.qq.com/cgi-bin/component/api_create_preauthcode?component_access_token=COMPONENT_ACCESS_TOKEN";
/** /**
* *
*/ */
String API_CREATE_PREAUTHCODE_URL = "***************"; String API_CREATE_PREAUTHCODE_URL = "https://api.weixin.qq.com/cgi-bin/component/api_create_preauthcode?component_access_token=COMPONENT_ACCESS_TOKEN";
/** /**
* * 使用授权码获取授权信息请求地址
*/ */
String API_QUERY_AUTH_URL = "**********"; String API_QUERY_AUTH_URL = "https://api.weixin.qq.com/cgi-bin/component/api_query_auth?component_access_token=COMPONENT_ACCESS_TOKEN";

46
epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/controller/ComponentVerifyTicketController.java → epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/ComponentVerifyTicketController.java

@ -1,24 +1,32 @@
package com.epmet.controller; package com.epmet.controller;
import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.utils.Result;
import com.epmet.commons.tools.validator.ValidatorUtils;
import com.epmet.dto.form.WeChatPlatformAuthCodeFormDTO;
import com.epmet.service.ComponentVerifyTicketService; import com.epmet.service.ComponentVerifyTicketService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
/** /**
* @Author zxc * @Author zxc
* @CreateTime 2020/7/6 9:07 * @CreateTime 2020/7/6 9:07
*/ */
@Slf4j @Slf4j
@RestController("third") @RestController("wechatthird")
public class ComponentVerifyTicketController { public class ComponentVerifyTicketController {
@Autowired @Autowired
private ComponentVerifyTicketService componentVerifyTicketService; private ComponentVerifyTicketService componentVerifyTicketService;
/**
* @Description 获取验证票据
* @param timestamp
* @param nonce
* @param msgSignature
* @param postData
* @author zxc
*/
@PostMapping(value = "/ticket") @PostMapping(value = "/ticket")
public Result weChatPlatformEvent(@RequestParam("timestamp") String timestamp, public Result weChatPlatformEvent(@RequestParam("timestamp") String timestamp,
@RequestParam("nonce") String nonce, @RequestParam("nonce") String nonce,
@ -28,12 +36,22 @@ public class ComponentVerifyTicketController {
return new Result(); return new Result();
} }
/**
* @Description 获取预授权码
* @param
* @author zxc
*/
@PostMapping("ticketjob") @PostMapping("ticketjob")
public Result ticketJob() { public Result ticketJob() {
componentVerifyTicketService.ticketJob(); componentVerifyTicketService.ticketJob();
return new Result(); return new Result();
} }
/**
* @Description 获取预授权码
* @param
* @author zxc
*/
@PostMapping("preauthcode") @PostMapping("preauthcode")
public Result preAuthCode(){ public Result preAuthCode(){
componentVerifyTicketService.preAuthCode(); componentVerifyTicketService.preAuthCode();
@ -42,13 +60,27 @@ public class ComponentVerifyTicketController {
/** /**
* @Description * @Description
* @param formDTO * @param response
* @param authCode
* @param expiresIn
* @author zxc * @author zxc
*/ */
@PostMapping(value = "/authcode") @PostMapping(value = "/authcode")
public Result weChatPlatformAuthCode(@RequestBody WeChatPlatformAuthCodeFormDTO formDTO) { public Result weChatPlatformAuthCode(HttpServletResponse response,
ValidatorUtils.validateEntity(formDTO); @RequestParam("auth_code") String authCode,
componentVerifyTicketService.weChatPlatformAuthCode(formDTO); @RequestParam("expires_in") String expiresIn) {
componentVerifyTicketService.weChatPlatformAuthCode(response,authCode,expiresIn);
return new Result();
}
/**
* @Description 获取/刷新接口调用令牌
* @param authorizerAppId 授权方AppId
* @author zxc
*/
@PostMapping("refreshtoken")
public Result refreshToken(@RequestParam("authorizer_appid") String authorizerAppId){
componentVerifyTicketService.refreshToken(authorizerAppId);
return new Result(); return new Result();
} }

0
epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/exception/AesException.java → epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/exception/AesException.java

21
epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/redis/RedisThird.java → epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/redis/RedisThird.java

@ -1,6 +1,5 @@
package com.epmet.redis; package com.epmet.redis;
import com.epmet.commons.tools.redis.RedisUtils;
import com.epmet.constant.ModuleConstant; import com.epmet.constant.ModuleConstant;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -65,4 +64,24 @@ public class RedisThird {
redisTemplate.opsForValue().set(ModuleConstant.PRE_AUTH_CODE_REDIS_KEY+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);
} }
/**
* @Description 缓存 刷新令牌
* 在授权的公众号具备API权限时才有此返回值刷新令牌主要用于第三方平台获取和刷新已授权用户的 authorizer_access_token
* 一旦丢失只能让用户重新授权才能再次拿到新的刷新令牌用户重新授权后之前的刷新令牌会失效
* @param authorizerRefreshToken
* @author zxc
*/
public void setAuthorizerRefreshToken(String authorizerRefreshToken){
redisTemplate.opsForValue().set(ModuleConstant.AUTHORIZER_REFRESH_TOKEN_REDIS_KEY+authorizerRefreshToken,authorizerRefreshToken);
}
/**
* @Description 获取刷新
* @param key
* @author zxc
*/
public String getAuthorizerRefreshToken(String key){
return redisTemplate.opsForValue().get(ModuleConstant.AUTHORIZER_REFRESH_TOKEN_REDIS_KEY+key).toString();
}
} }

19
epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/service/ComponentVerifyTicketService.java → epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/ComponentVerifyTicketService.java

@ -1,10 +1,6 @@
package com.epmet.service; package com.epmet.service;
import com.epmet.commons.tools.security.dto.TokenDto; import javax.servlet.http.HttpServletResponse;
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 * @Author zxc
@ -38,9 +34,18 @@ public interface ComponentVerifyTicketService {
/** /**
* @Description * @Description
* @param formDTO * @param response
* @param authCode
* @param expiresIn
* @author zxc * @author zxc
*/ */
void weChatPlatformAuthCode(WeChatPlatformAuthCodeFormDTO formDTO); void weChatPlatformAuthCode(HttpServletResponse response,String authCode,String expiresIn);
/**
* @Description 获取/刷新接口调用令牌
* @param
* @author zxc
*/
void refreshToken(String authorizerAppId);
} }

33
epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/service/impl/ComponentVerifyTicketServiceImpl.java → epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/ComponentVerifyTicketServiceImpl.java

@ -4,7 +4,6 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.epmet.constant.ModuleConstant; import com.epmet.constant.ModuleConstant;
import com.epmet.constant.ThirdPlatformConstant; import com.epmet.constant.ThirdPlatformConstant;
import com.epmet.dto.form.WeChatPlatformAuthCodeFormDTO;
import com.epmet.exception.AesException; import com.epmet.exception.AesException;
import com.epmet.redis.RedisThird; import com.epmet.redis.RedisThird;
import com.epmet.service.ComponentVerifyTicketService; import com.epmet.service.ComponentVerifyTicketService;
@ -17,6 +16,7 @@ import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@ -50,7 +50,7 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe
String xml = pc.decryptMsg(msgSignature, timeStamp, nonce, postData); String xml = pc.decryptMsg(msgSignature, timeStamp, nonce, postData);
// 将xml转为map // 将xml转为map
Map<String, String> result = WXXmlToMapUtil.xmlToMap(xml); Map<String, String> result = WXXmlToMapUtil.xmlToMap(xml);
String componentVerifyTicket = MapUtils.getString(result,ModuleConstant.TICKET_KEY); String componentVerifyTicket = MapUtils.getString(result, ModuleConstant.TICKET_KEY);
if (StringUtils.isNotEmpty(componentVerifyTicket)) { if (StringUtils.isNotEmpty(componentVerifyTicket)) {
// 存储平台授权票据,保存ticket // 存储平台授权票据,保存ticket
redisThird.setComponentVerifyTicket(componentVerifyTicket); redisThird.setComponentVerifyTicket(componentVerifyTicket);
@ -79,7 +79,6 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe
jsonObject.put(ModuleConstant.COMPONENT_APPID, PLATFORM_APP_ID); jsonObject.put(ModuleConstant.COMPONENT_APPID, PLATFORM_APP_ID);
jsonObject.put(ModuleConstant.COMPONENT_APPSECRET, PLATFORM_APP_SECRET); jsonObject.put(ModuleConstant.COMPONENT_APPSECRET, PLATFORM_APP_SECRET);
jsonObject.put(ModuleConstant.TICKET_UNDERLINE_KEY, componentVerifyTicket); jsonObject.put(ModuleConstant.TICKET_UNDERLINE_KEY, componentVerifyTicket);
// todo OkHttpHelper 无法引入
String post = okHttpHelper.post(API_COMPONENT_TOKEN_URl, JSON.toJSONString(jsonObject)); String post = okHttpHelper.post(API_COMPONENT_TOKEN_URl, JSON.toJSONString(jsonObject));
HashMap<String, String> hashMap = JSON.parseObject(post, HashMap.class); HashMap<String, String> hashMap = JSON.parseObject(post, HashMap.class);
String componentAccessToken = hashMap.get(ModuleConstant.COMPONENT_ACCESS_TOKEN); String componentAccessToken = hashMap.get(ModuleConstant.COMPONENT_ACCESS_TOKEN);
@ -122,21 +121,41 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe
} }
@Override @Override
public void weChatPlatformAuthCode(WeChatPlatformAuthCodeFormDTO formDTO) { public void weChatPlatformAuthCode(HttpServletResponse response, String authCode, String expiresIn) {
String authCode = formDTO.getAuthCode();
Integer expiresIn = formDTO.getExpiresIn();
// 获取令牌【component_access_token】 // 获取令牌【component_access_token】
String accessToken = redisThird.getComponentAccessToken(ModuleConstant.COMPONENT_ACCESS_TOKEN); String accessToken = redisThird.getComponentAccessToken(ModuleConstant.COMPONENT_ACCESS_TOKEN);
// 使用授权码获取授权信息 // 使用授权码获取授权信息
JSONObject jsonObject = new JSONObject(); JSONObject jsonObject = new JSONObject();
jsonObject.put(ModuleConstant.COMPONENT_APPID, PLATFORM_APP_ID); jsonObject.put(ModuleConstant.COMPONENT_APPID, PLATFORM_APP_ID);
jsonObject.put(ModuleConstant.AUTHORIZATION_CODE, authCode); jsonObject.put(ModuleConstant.AUTHORIZATION_CODE, authCode);
String post;
try { try {
String post = okHttpHelper.post(API_QUERY_AUTH_URL + accessToken, JSON.toJSONString(jsonObject)); post = okHttpHelper.post(API_QUERY_AUTH_URL + accessToken, JSON.toJSONString(jsonObject));
HashMap<String,Map> hashMap = JSON.parseObject(post, HashMap.class);
Map map = hashMap.get(ModuleConstant.AUTHORIZATION_INFO);
String authorizerRefreshToken = map.get(ModuleConstant.AUTHORIZER_REFRESH_TOKEN).toString();
redisThird.setAuthorizerRefreshToken(authorizerRefreshToken);
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }
// 重定向地址 // 重定向地址
// response.sendRedirect("/wechat/authcode"); // response.sendRedirect("/wechat/authcode");
} }
/**
* @Description 获取/刷新接口调用令牌
* @param
* @author zxc
*/
@Override
public void refreshToken(String authorizerAppId) {
JSONObject jsonObject = new JSONObject();
//todo 授权方appid从哪来,每个用户的刷新token
//授权方AppId
// jsonObject.put(ModuleConstant.AUTHORIZER_APPID,authorizerAppId);
//第三方平台AppId
jsonObject.put(ModuleConstant.COMPONENT_APPID,PLATFORM_APP_ID);
jsonObject.put("",redisThird.getAuthorizerRefreshToken(""));
}
} }

0
epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/util/OkHttpHelper.java → epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/util/OkHttpHelper.java

0
epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/util/PKCS7EncoderUtil.java → epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/util/PKCS7EncoderUtil.java

0
epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/util/WXBizMsgCrypt.java → epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/util/WXBizMsgCrypt.java

0
epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/java/com/epmet/util/WXXmlToMapUtil.java → epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/util/WXXmlToMapUtil.java

4
epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/resources/bootstrap.yml → epmet-module/epmet-third/epmet-third-server/src/main/resources/bootstrap.yml

@ -1,13 +1,13 @@
server: server:
port: @server.port@ port: @server.port@
servlet: servlet:
context-path: /epmet/third/platform context-path: /third
spring: spring:
main: main:
allow-bean-definition-overriding: true allow-bean-definition-overriding: true
application: application:
name: epmet-third-platform-server name: epmet-third-server
# dev|test|prod # dev|test|prod
profiles: profiles:
active: dev active: dev

0
epmet-module/epmet-third-platform/epmet-third-platform-server/src/main/resources/logback-spring.xml → epmet-module/epmet-third/epmet-third-server/src/main/resources/logback-spring.xml

6
epmet-module/epmet-third-platform/pom.xml → epmet-module/epmet-third/pom.xml

@ -9,12 +9,12 @@
</parent> </parent>
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<artifactId>epmet-third-platform</artifactId> <artifactId>epmet-third</artifactId>
<packaging>pom</packaging> <packaging>pom</packaging>
<modules> <modules>
<module>epmet-third-platform-client</module> <module>epmet-third-client</module>
<module>epmet-third-platform-server</module> <module>epmet-third-server</module>
</modules> </modules>

2
epmet-module/pom.xml

@ -39,7 +39,7 @@
<module>resi-voice</module> <module>resi-voice</module>
<module>data-statistical</module> <module>data-statistical</module>
<module>data-report</module> <module>data-report</module>
<module>epmet-third-platform</module> <module>epmet-third</module>
</modules> </modules>
</project> </project>

Loading…
Cancel
Save