feat:通知

This commit is contained in:
苏竹红
2025-10-14 15:10:54 +08:00
parent 7752433027
commit 89a14766ae
6 changed files with 193 additions and 0 deletions

View File

@@ -33,6 +33,10 @@
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
</dependency>
</dependencies>

View File

@@ -8,6 +8,7 @@ import com.cool.store.dto.FoodTokenDTO;
import com.cool.store.dto.GetAccessTokenDTO;
import com.cool.store.dto.HqtTokenDTO;
import com.cool.store.dto.ModifyPasswordDTO;
import com.cool.store.dto.wechat.CallbackMessageDTO;
import com.cool.store.dto.wechat.WechatTemplateMessageDTO;
import com.cool.store.entity.*;
import com.cool.store.enums.DownSystemTypeEnum;
@@ -15,6 +16,7 @@ import com.cool.store.enums.MessageEnum;
import com.cool.store.enums.SMSMsgEnum;
import com.cool.store.enums.point.ShopSubStageStatusEnum;
import com.cool.store.enums.wechat.WechatTemplateEnum;
import com.cool.store.handler.WeChatHandler;
import com.cool.store.job.XxlJobHandler;
import com.cool.store.mapper.FranchiseFeeMapper;
import com.cool.store.mapper.LineInfoMapper;
@@ -43,6 +45,8 @@ import com.cool.store.utils.CoolDateUtils;
import com.cool.store.utils.RedisConstantUtil;
import com.cool.store.utils.RedisUtilPool;
import com.cool.store.utils.poi.StringUtils;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.dataformat.xml.XmlMapper;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -558,7 +562,41 @@ public class PCTestController {
}
return request;
}
private final XmlMapper xmlMapper = new XmlMapper();
@Autowired
WeChatHandler weChatHandler;
@RequestMapping(value = "/testWxNotice", produces = "application/xml;charset=UTF-8")
@ApiOperation("testWxNotice")
public String handleWechatMessage(
@RequestParam("signature") String signature,
@RequestParam("timestamp") String timestamp,
@RequestParam("nonce") String nonce,
@RequestParam(value = "echostr", required = false) String echostr,
@RequestBody(required = false) String requestBody) {
System.out.println("收到微信消息:");
System.out.println("signature: " + signature);
System.out.println("timestamp: " + timestamp);
System.out.println("nonce: " + nonce);
System.out.println("echostr: " + echostr);
System.out.println("requestBody: " + requestBody);
// 验证签名
// if (!verifySignature(signature, timestamp, nonce, TOKEN)) {
// return "signature verification failed";
// }
if (StringUtils.isNotEmpty(requestBody)) {
try {
CallbackMessageDTO message = xmlMapper.readValue(requestBody, CallbackMessageDTO.class);
return weChatHandler.processMessage(message);
} catch (Exception e) {
log.info("回调处理失败 e:{}",e.getMessage());
return "success";
}
}
return nonce;
}
@Resource
WechatTemplateService wechatTemplateService;