Skip to content

Commit 077f828

Browse files
authored
🎨 #3006 【公众号】模板消息发送接口增加字段client_msg_id
1 parent f8fdc62 commit 077f828

File tree

3 files changed

+15
-4
lines changed

3 files changed

+15
-4
lines changed

weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/template/WxMpTemplateMessage.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,11 @@ public class WxMpTemplateMessage implements Serializable {
5252
*/
5353
private MiniProgram miniProgram;
5454

55+
/**
56+
* 防重入id.
57+
*/
58+
private String clientMsgId;
59+
5560
/**
5661
* 模板数据.
5762
*/

weixin-java-mp/src/main/java/me/chanjar/weixin/mp/util/json/WxMpTemplateMessageGsonAdapter.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,18 @@
11
package me.chanjar.weixin.mp.util.json;
22

3-
import java.lang.reflect.Type;
4-
53
import com.google.gson.JsonElement;
64
import com.google.gson.JsonObject;
75
import com.google.gson.JsonSerializationContext;
86
import com.google.gson.JsonSerializer;
97
import me.chanjar.weixin.mp.bean.template.WxMpTemplateData;
108
import me.chanjar.weixin.mp.bean.template.WxMpTemplateMessage;
9+
import org.apache.commons.lang3.StringUtils;
10+
11+
import java.lang.reflect.Type;
12+
1113

1214
/**
15+
* 模板消息转Json类型转换器
1316
* @author chanjarster
1417
*/
1518
public class WxMpTemplateMessageGsonAdapter implements JsonSerializer<WxMpTemplateMessage> {
@@ -19,6 +22,9 @@ public JsonElement serialize(WxMpTemplateMessage message, Type typeOfSrc, JsonSe
1922
JsonObject messageJson = new JsonObject();
2023
messageJson.addProperty("touser", message.getToUser());
2124
messageJson.addProperty("template_id", message.getTemplateId());
25+
if (StringUtils.isNotBlank(message.getClientMsgId())) {
26+
messageJson.addProperty("client_msg_id", message.getClientMsgId());
27+
}
2228
if (message.getUrl() != null) {
2329
messageJson.addProperty("url", message.getUrl());
2430
}

weixin-java-mp/src/test/java/me/chanjar/weixin/mp/bean/template/WxMpTemplateMessageTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@ public void testToJson() {
1919
.templateId("ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY")
2020
.miniProgram(new WxMpTemplateMessage.MiniProgram("xiaochengxuappid12345", "index?foo=bar",true))
2121
.url("http://weixin.qq.com/download")
22+
.clientMsgId("MSG_000001")
2223
.build();
2324

2425
tm.addData(
2526
new WxMpTemplateData("first", "haahah", "#FF00FF"));
2627
tm.addData(
2728
new WxMpTemplateData("remark", "heihei", "#FF00FF"));
28-
29-
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\"}}}");
29+
assertEquals(tm.toJson(), "{\"touser\":\"OPENID\",\"template_id\":\"ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY\",\"client_msg_id\":\"MSG_000001\",\"url\":\"http://weixin.qq.com/download\",\"miniprogram\":{\"appid\":\"xiaochengxuappid12345\",\"path\":\"index?foo=bar\"},\"data\":{\"first\":{\"value\":\"haahah\",\"color\":\"#FF00FF\"},\"remark\":{\"value\":\"heihei\",\"color\":\"#FF00FF\"}}}");
3030
}
3131

3232
}

0 commit comments

Comments
 (0)