#333 修复消息验重问题(mp和cp同时存在的问题)

This commit is contained in:
Binary Wang
2017-11-07 15:55:42 +08:00
parent bea0646f19
commit e5bd65f2db
2 changed files with 15 additions and 10 deletions

View File

@@ -11,6 +11,7 @@ import me.chanjar.weixin.common.util.LogExceptionHandler;
import me.chanjar.weixin.cp.api.WxCpService;
import me.chanjar.weixin.cp.bean.WxCpXmlMessage;
import me.chanjar.weixin.cp.bean.WxCpXmlOutMessage;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -215,17 +216,19 @@ public class WxCpMessageRouter {
}
protected boolean isDuplicateMessage(WxCpXmlMessage wxMessage) {
String messageId = "";
String messageId;
if (wxMessage.getMsgId() == null) {
messageId = String.valueOf(wxMessage.getCreateTime())
+ "-" + String.valueOf(wxMessage.getAgentId() == null ? "" : wxMessage.getAgentId())
+ "-" + StringUtils.trimToEmpty(String.valueOf(wxMessage.getAgentId()))
+ "-" + wxMessage.getFromUserName()
+ "-" + String.valueOf(wxMessage.getEventKey() == null ? "" : wxMessage.getEventKey())
+ "-" + String.valueOf(wxMessage.getEvent() == null ? "" : wxMessage.getEvent())
+ "-" + StringUtils.trimToEmpty(wxMessage.getEventKey())
+ "-" + StringUtils.trimToEmpty(wxMessage.getEvent())
;
} 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);