Просмотр исходного кода

[微信第三方开放平台][新增]:授权保存及更新

release_toaliyun_real
Stormeye Wu 7 лет назад
Родитель
Сommit
599b48337d
2 измененных файлов: 39 добавлений и 8 удалений
  1. +6
    -6
      mallinkAdmin/src/main/java/com/iformall/controller/WechatApiController.java
  2. +33
    -2
      mallinkAdmin/src/main/java/com/iformall/controller/WechatCalllbackController.java

+ 6
- 6
mallinkAdmin/src/main/java/com/iformall/controller/WechatApiController.java Просмотреть файл

@@ -31,10 +31,10 @@ import java.io.IOException;
public class WechatApiController {
private final Logger logger = LoggerFactory.getLogger(getClass());
@Autowired
private WxOpenService wxOpenService;
private WxOpenService openService;

@Autowired
private WxAuthorizerInfoService wxAuthorizerInfoService;
private WxAuthorizerInfoService authorizerInfoService;

@GetMapping("/goto_auth_url_show")
@ResponseBody
@@ -47,7 +47,7 @@ public class WechatApiController {
String host = request.getHeader("host");
String url = "https://" + host + "/api/wtauth/jump";
try {
url = wxOpenService.getWxOpenComponentService().getPreAuthUrl(url);
url = openService.getWxOpenComponentService().getPreAuthUrl(url);
response.sendRedirect(url);
} catch (WxErrorException | IOException e) {
logger.error("gotoPreAuthUrl", e);
@@ -59,12 +59,12 @@ public class WechatApiController {
@ResponseBody
public WxOpenQueryAuthResult jump(@RequestParam("auth_code") String authorizationCode) {
try {
WxOpenQueryAuthResult queryAuthResult = wxOpenService.getWxOpenComponentService().getQueryAuth(authorizationCode);
WxOpenQueryAuthResult queryAuthResult = openService.getWxOpenComponentService().getQueryAuth(authorizationCode);
logger.info("getQueryAuth", queryAuthResult);
WxOpenAuthorizerInfoResult openAuthorizerInfoResult = wxOpenService.getWxOpenComponentService().getAuthorizerInfo(
WxOpenAuthorizerInfoResult openAuthorizerInfoResult = openService.getWxOpenComponentService().getAuthorizerInfo(
queryAuthResult.getAuthorizationInfo().getAuthorizerAppid());
// save auth info
wxAuthorizerInfoService.saveOrUpdate(new WxAuthorizerInfo(){
authorizerInfoService.saveOrUpdate(new WxAuthorizerInfo(){
{
setAuthorizerAppid(openAuthorizerInfoResult.getAuthorizationInfo().getAuthorizerAppid());
setAlias(openAuthorizerInfoResult.getAuthorizerInfo().getAlias());


+ 33
- 2
mallinkAdmin/src/main/java/com/iformall/controller/WechatCalllbackController.java Просмотреть файл

@@ -1,7 +1,10 @@
package com.iformall.controller;

import com.iformall.domain.po.WxAuthorizerInfo;
import com.iformall.domain.po.WxComponentVerifyTicket;
import com.iformall.enums.EnumWxAuthorizationInfoType;
import com.iformall.enums.EnumWxAuthorizationStatus;
import com.iformall.service.WxAuthorizerInfoService;
import com.iformall.service.WxComponentVerifyTicketService;
import com.iformall.service.wechat.WxOpenService;
import io.swagger.annotations.Api;
@@ -11,6 +14,8 @@ import me.chanjar.weixin.mp.bean.kefu.WxMpKefuMessage;
import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;
import me.chanjar.weixin.open.bean.message.WxOpenXmlMessage;
import me.chanjar.weixin.open.bean.result.WxOpenAuthorizerInfoResult;
import me.chanjar.weixin.open.bean.result.WxOpenQueryAuthResult;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -37,6 +42,9 @@ public class WechatCalllbackController extends BaseController {
@Autowired
private WxComponentVerifyTicketService componentVerifyTicketService;

@Autowired
private WxAuthorizerInfoService authorizerInfoService;

@RequestMapping(value = "/notify", method = RequestMethod.POST)
@ApiOperation("接收ticket回调")
public Object receiveTicket(HttpServletRequest request) throws IOException {
@@ -86,9 +94,32 @@ public class WechatCalllbackController extends BaseController {
} else if (inMessage.getInfoType().equals(EnumWxAuthorizationInfoType.AUTHORIZED.getMessage()) ||
inMessage.getInfoType().equals(EnumWxAuthorizationInfoType.UPDATEAUTHORIZED.getMessage())
) {
// TODO
try {
WxOpenQueryAuthResult queryAuthResult = wxOpenService.getWxOpenComponentService().getQueryAuth(inMessage.getAuthorizationCode());
logger.info("getQueryAuth", queryAuthResult);

WxOpenAuthorizerInfoResult openAuthorizerInfoResult = wxOpenService.getWxOpenComponentService().getAuthorizerInfo(
queryAuthResult.getAuthorizationInfo().getAuthorizerAppid());
// save auth info
authorizerInfoService.saveOrUpdate(new WxAuthorizerInfo(){
{
setAuthorizerAppid(openAuthorizerInfoResult.getAuthorizationInfo().getAuthorizerAppid());
setAlias(openAuthorizerInfoResult.getAuthorizerInfo().getAlias());
setHeadImg(openAuthorizerInfoResult.getAuthorizerInfo().getHeadImg());
setQrcodeUrl(openAuthorizerInfoResult.getAuthorizerInfo().getQrcodeUrl());
setAuthorizationStatus(EnumWxAuthorizationStatus.AUTHORIZED.getCode());
}
});
} catch (WxErrorException e) {
logger.error(e.getMessage());
}
} else if (inMessage.getInfoType().equals(EnumWxAuthorizationInfoType.AUTHORIZED.getMessage())) {
// TODO
authorizerInfoService.saveOrUpdate(new WxAuthorizerInfo(){
{
setAuthorizerAppid(inMessage.getAuthorizerAppid());
setAuthorizationStatus(EnumWxAuthorizationStatus.UNAUTHORIZED.getCode());
}
});
}
try {
String out = wxOpenService.getWxOpenComponentService().route(inMessage);


Загрузка…
Отмена
Сохранить