Browse Source

微信第三方平台-auth_code保存

master
zxc 5 years ago
parent
commit
483f4dff76
  1. 30
      epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/AuthCodeAndTimeFromDTO.java
  2. 14
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/AuthRedirectController.java
  3. 6
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/ComponentVerifyTicketService.java
  4. 2
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/AppLetAuthorizationServiceImpl.java
  5. 22
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/ComponentVerifyTicketServiceImpl.java
  6. 2
      epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/constant/WxMaCodeConstant.java

30
epmet-module/epmet-third/epmet-third-client/src/main/java/com/epmet/dto/form/AuthCodeAndTimeFromDTO.java

@ -0,0 +1,30 @@
package com.epmet.dto.form;
import lombok.Data;
import java.io.Serializable;
/**
* @Author zxc
* @CreateTime 2020/7/21 14:36
*/
@Data
public class AuthCodeAndTimeFromDTO implements Serializable {
private static final long serialVersionUID = 7149257227563083044L;
/**
* 授权码 auth_code
*/
private String authCode;
/**
* 过期时间
*/
private String expiresIn;
/**
* 客户端类型 resi居民端work工作端
*/
private String clientType;
}

14
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/controller/AuthRedirectController.java

@ -1,12 +1,12 @@
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.dto.form.AuthCodeAndTimeFromDTO;
import com.epmet.service.ComponentVerifyTicketService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@ -28,9 +28,9 @@ public class AuthRedirectController {
* @param
* @author zxc
*/
@GetMapping("redirect/{customerId}/{clientType}")
public Result redirectUri(HttpServletRequest request, HttpServletResponse response, @PathVariable("customerId")String customerId, @PathVariable("clientType")String clientType) throws IOException {
componentVerifyTicketService.redirectUri(request,response,customerId,clientType);
@PostMapping("redirect")
public Result redirectUri(@LoginUser TokenDto tokenDto, @RequestBody AuthCodeAndTimeFromDTO fromDTO){
componentVerifyTicketService.redirectUri(tokenDto,fromDTO);
return new Result();
}

6
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/ComponentVerifyTicketService.java

@ -1,5 +1,9 @@
package com.epmet.service;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.dto.form.AuthCodeAndTimeFromDTO;
import org.springframework.web.bind.annotation.RequestBody;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@ -42,6 +46,6 @@ public interface ComponentVerifyTicketService {
* @param
* @author zxc
*/
void redirectUri(HttpServletRequest request, HttpServletResponse response,String customerId, String clientType) throws IOException;
void redirectUri(TokenDto tokenDto, @RequestBody AuthCodeAndTimeFromDTO fromDTO);
}

2
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/AppLetAuthorizationServiceImpl.java

@ -40,7 +40,7 @@ public class AppLetAuthorizationServiceImpl implements AppLetAuthorizationServic
//获取预授权码
String preAuthCode = componentVerifyTicketService.preAuthCode();
// String redirectUrl = String.format(WxMaCodeConstant.API_RETURN_REDIRECT_URL, customerId,formDTO.getClientType());
String redirectUrl = WxMaCodeConstant.WEB_URL;
String redirectUrl = WxMaCodeConstant.WEB_URL + formDTO.getClientType();
String authUrl = String.format(WxMaCodeConstant.API_AUTH_REGISTER_URL, componentAppId, preAuthCode, redirectUrl);
result.setUrl(authUrl);
return result;

22
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/service/impl/ComponentVerifyTicketServiceImpl.java

@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject;
import com.alibaba.nacos.client.config.utils.IOUtils;
import com.epmet.commons.tools.constant.NumConstant;
import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.security.dto.TokenDto;
import com.epmet.commons.tools.utils.HttpClientManager;
import com.epmet.constant.ModuleConstant;
import com.epmet.constant.ThirdRedisKeyConstant;
@ -27,6 +28,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestBody;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@ -367,38 +369,28 @@ public class ComponentVerifyTicketServiceImpl implements ComponentVerifyTicketSe
*/
@Transactional(rollbackFor = Exception.class)
@Override
public void redirectUri(HttpServletRequest request, HttpServletResponse response,String customerId, String client) throws IOException{
public void redirectUri(TokenDto tokenDto, @RequestBody AuthCodeAndTimeFromDTO authCodeAndTime){
log.info("开始执行回调URL");
try {
request.setCharacterEncoding(ModuleConstant.UTF8);
response.setCharacterEncoding(ModuleConstant.UTF8);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
/*String customerId = request.getParameter(ModuleConstant.CUSTOMER_ID);
String client = request.getParameter(ModuleConstant.CLIENT);*/
String authCode = request.getParameter(ModuleConstant.AUTH_CODE);
String expiresIn = request.getParameter(ModuleConstant.EXPIRES_IN);
String authCode = authCodeAndTime.getAuthCode();
String client = authCodeAndTime.getClientType();
String expiresIn = authCodeAndTime.getExpiresIn();
String customerId = tokenDto.getCustomerId();
Date expiresInTime = this.countExpirationTime(expiresIn);
if (StringUtils.isBlank(customerId)||StringUtils.isBlank(client)||StringUtils.isBlank(authCode)||StringUtils.isBlank(expiresIn)){
log.info("客户ID = "+customerId+", 客户端类型为 = "+client+", 授权码为 = "+authCode+", 有效期 = "+expiresIn);
}
// AuthorizationInfoResultDTO authorizationInfo = this.authInfoByAuthCode(authCode, customerId,client);
//authCode存数据库
AuthCodeFormDTO formDTO = new AuthCodeFormDTO();
formDTO.setAuthCode(authCode);
formDTO.setExpiresInTime(expiresInTime);
formDTO.setClientType(client);
//授权方AppId
// formDTO.setAuthAppId(authorizationInfo.getAuthorizer_appid());
formDTO.setCustomerId(customerId);
log.info(formDTO.toString());
// this.updateCustomerMpAppIdAndCreateOpenPlatform(customerId,authorizationInfo.getAuthorizer_appid(),client);
authCodeDao.insertRedirectAuthCode(formDTO);
//authCode存缓存
redisThird.setAuthCode(formDTO);
log.info("回调结束");
// response.sendRedirect(WxMaCodeConstant.WEB_URL);
}
/**

2
epmet-module/epmet-third/epmet-third-server/src/main/java/com/epmet/wxapi/constant/WxMaCodeConstant.java

@ -33,7 +33,7 @@ public interface WxMaCodeConstant {
/**
* 前端地址 授权之后的跳转的地址
*/
String WEB_URL = "https://epmet-cloud.elinkservice.cn/third/mpweb/page/#/info";
String WEB_URL = "https://epmet-cloud.elinkservice.cn/third/mpweb/page/#/info?clientType=";
/**
* 授权注册页面扫码授权

Loading…
Cancel
Save