mirror of
https://gitee.com/binary/weixin-java-tools.git
synced 2025-08-25 01:14:36 +08:00
#333 修复消息验重问题(mp和cp同时存在的问题)
This commit is contained in:
parent
bea0646f19
commit
e5bd65f2db
@ -11,6 +11,7 @@ import me.chanjar.weixin.common.util.LogExceptionHandler;
|
|||||||
import me.chanjar.weixin.cp.api.WxCpService;
|
import me.chanjar.weixin.cp.api.WxCpService;
|
||||||
import me.chanjar.weixin.cp.bean.WxCpXmlMessage;
|
import me.chanjar.weixin.cp.bean.WxCpXmlMessage;
|
||||||
import me.chanjar.weixin.cp.bean.WxCpXmlOutMessage;
|
import me.chanjar.weixin.cp.bean.WxCpXmlOutMessage;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
@ -215,17 +216,19 @@ public class WxCpMessageRouter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected boolean isDuplicateMessage(WxCpXmlMessage wxMessage) {
|
protected boolean isDuplicateMessage(WxCpXmlMessage wxMessage) {
|
||||||
|
String messageId;
|
||||||
String messageId = "";
|
|
||||||
if (wxMessage.getMsgId() == null) {
|
if (wxMessage.getMsgId() == null) {
|
||||||
messageId = String.valueOf(wxMessage.getCreateTime())
|
messageId = String.valueOf(wxMessage.getCreateTime())
|
||||||
+ "-" + String.valueOf(wxMessage.getAgentId() == null ? "" : wxMessage.getAgentId())
|
+ "-" + StringUtils.trimToEmpty(String.valueOf(wxMessage.getAgentId()))
|
||||||
+ "-" + wxMessage.getFromUserName()
|
+ "-" + wxMessage.getFromUserName()
|
||||||
+ "-" + String.valueOf(wxMessage.getEventKey() == null ? "" : wxMessage.getEventKey())
|
+ "-" + StringUtils.trimToEmpty(wxMessage.getEventKey())
|
||||||
+ "-" + String.valueOf(wxMessage.getEvent() == null ? "" : wxMessage.getEvent())
|
+ "-" + StringUtils.trimToEmpty(wxMessage.getEvent())
|
||||||
;
|
;
|
||||||
} else {
|
} else {
|
||||||
messageId = String.valueOf(wxMessage.getMsgId());
|
messageId = new StringBuilder().append(wxMessage.getMsgId())
|
||||||
|
.append("-").append(wxMessage.getCreateTime())
|
||||||
|
.append("-").append(wxMessage.getFromUserName())
|
||||||
|
.toString();
|
||||||
}
|
}
|
||||||
|
|
||||||
return this.messageDuplicateChecker.isDuplicate(messageId);
|
return this.messageDuplicateChecker.isDuplicate(messageId);
|
||||||
|
@ -10,6 +10,7 @@ import me.chanjar.weixin.common.session.WxSessionManager;
|
|||||||
import me.chanjar.weixin.common.util.LogExceptionHandler;
|
import me.chanjar.weixin.common.util.LogExceptionHandler;
|
||||||
import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
|
import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
|
||||||
import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;
|
import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
@ -195,16 +196,17 @@ public class WxMpMessageRouter {
|
|||||||
}
|
}
|
||||||
|
|
||||||
protected boolean isMsgDuplicated(WxMpXmlMessage wxMessage) {
|
protected boolean isMsgDuplicated(WxMpXmlMessage wxMessage) {
|
||||||
|
|
||||||
StringBuilder messageId = new StringBuilder();
|
StringBuilder messageId = new StringBuilder();
|
||||||
if (wxMessage.getMsgId() == null) {
|
if (wxMessage.getMsgId() == null) {
|
||||||
messageId.append(wxMessage.getCreateTime())
|
messageId.append(wxMessage.getCreateTime())
|
||||||
.append("-").append(wxMessage.getFromUser())
|
.append("-").append(wxMessage.getFromUser())
|
||||||
.append("-").append(wxMessage.getEventKey() == null ? "" : wxMessage.getEventKey())
|
.append("-").append(StringUtils.trimToEmpty(wxMessage.getEventKey()))
|
||||||
.append("-").append(wxMessage.getEvent() == null ? "" : wxMessage.getEvent())
|
.append("-").append(StringUtils.trimToEmpty(wxMessage.getEvent()))
|
||||||
;
|
;
|
||||||
} else {
|
} else {
|
||||||
messageId.append(wxMessage.getMsgId());
|
messageId.append(wxMessage.getMsgId())
|
||||||
|
.append("-").append(wxMessage.getCreateTime())
|
||||||
|
.append("-").append(wxMessage.getFromUser());
|
||||||
}
|
}
|
||||||
|
|
||||||
return this.messageDuplicateChecker.isDuplicate(messageId.toString());
|
return this.messageDuplicateChecker.isDuplicate(messageId.toString());
|
||||||
|
Loading…
Reference in New Issue
Block a user