From 66342da3bf029ae485720fdf02a0bdbfb50c3fd9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BB=B2=E6=B5=8E=E5=B7=9D?= Date: Thu, 11 May 2023 17:19:29 +0800 Subject: [PATCH] =?UTF-8?q?Fix=20issue=20#3006:=20=E3=80=90=E5=85=AC?= =?UTF-8?q?=E4=BC=97=E5=8F=B7=E3=80=91=E6=A8=A1=E6=9D=BF=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E5=8F=91=E9=80=81=EF=BC=8C=E7=BC=BA=E5=B0=91=E9=9D=9E=E5=BF=85?= =?UTF-8?q?=E5=A1=AB=E5=AD=97=E6=AE=B5client=5Fmsg=5Fid?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../weixin/mp/bean/template/WxMpTemplateMessage.java | 5 +++++ .../mp/util/json/WxMpTemplateMessageGsonAdapter.java | 8 ++++++-- .../weixin/mp/bean/template/WxMpTemplateMessageTest.java | 3 ++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/template/WxMpTemplateMessage.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/template/WxMpTemplateMessage.java index 99c3df358e..a04d8bb896 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/template/WxMpTemplateMessage.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/template/WxMpTemplateMessage.java @@ -52,6 +52,11 @@ public class WxMpTemplateMessage implements Serializable { */ private MiniProgram miniProgram; + /** + * 防重入id. + */ + private String clientMsgId; + /** * 模板数据. */ diff --git a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpTemplateMessageGsonAdapter.java b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpTemplateMessageGsonAdapter.java index 73f8c4e3ab..fe02732102 100644 --- a/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpTemplateMessageGsonAdapter.java +++ b/weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpTemplateMessageGsonAdapter.java @@ -1,13 +1,14 @@ package me.chanjar.weixin.mp.util.json; -import java.lang.reflect.Type; - import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonSerializationContext; import com.google.gson.JsonSerializer; import me.chanjar.weixin.mp.bean.template.WxMpTemplateData; import me.chanjar.weixin.mp.bean.template.WxMpTemplateMessage; +import org.apache.commons.lang3.StringUtils; + +import java.lang.reflect.Type; /** * @author chanjarster @@ -19,6 +20,9 @@ public JsonElement serialize(WxMpTemplateMessage message, Type typeOfSrc, JsonSe JsonObject messageJson = new JsonObject(); messageJson.addProperty("touser", message.getToUser()); messageJson.addProperty("template_id", message.getTemplateId()); + if (StringUtils.isNotBlank(message.getClientMsgId())) { + messageJson.addProperty("client_msg_id", message.getClientMsgId()); + } if (message.getUrl() != null) { messageJson.addProperty("url", message.getUrl()); } diff --git a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/bean/template/WxMpTemplateMessageTest.java b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/bean/template/WxMpTemplateMessageTest.java index 5a3f67fb1d..0f780f6a11 100644 --- a/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/bean/template/WxMpTemplateMessageTest.java +++ b/weixin-java-mp/src/test/java/me/chanjar/weixin/mp/bean/template/WxMpTemplateMessageTest.java @@ -19,13 +19,14 @@ public void testToJson() { .templateId("ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY") .miniProgram(new WxMpTemplateMessage.MiniProgram("xiaochengxuappid12345", "index?foo=bar",true)) .url("http://weixin.qq.com/download") + //.clientMsgId("MSG_000001") .build(); tm.addData( new WxMpTemplateData("first", "haahah", "#FF00FF")); tm.addData( new WxMpTemplateData("remark", "heihei", "#FF00FF")); - + System.out.println(tm.toJson()); assertEquals(tm.toJson(), "{\"touser\":\"OPENID\",\"template_id\":\"ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY\",\"url\":\"http://weixin.qq.com/download\",\"miniprogram\":{\"appid\":\"xiaochengxuappid12345\",\"pagepath\":\"index?foo=bar\"},\"data\":{\"first\":{\"value\":\"haahah\",\"color\":\"#FF00FF\"},\"remark\":{\"value\":\"heihei\",\"color\":\"#FF00FF\"}}}"); }