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 df8e708d..f70090ef 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
@@ -12,11 +12,38 @@ import java.util.List;
public class WxMpTemplateMessage implements Serializable {
private static final long serialVersionUID = 5063374783759519418L;
+ /**
+ * 接收者openid
+ */
private String toUser;
+
+ /**
+ * 模板ID
+ */
private String templateId;
+
+ /**
+ *
+ * 跳小程序所需数据,不需跳小程序可不用传该数据
+ * url和miniprogram都是非必填字段,若都不传则模板无跳转;若都传,会优先跳转至小程序。
+ * 开发者可根据实际需要选择其中一种跳转方式即可。当用户的微信客户端版本不支持跳小程序时,将会跳转至url。
+ *
+ */
private String url;
+ /**
+ * 模板跳转链接
+ * @see #url
+ */
+ private MiniProgram miniProgram;
+
+ /**
+ * 模板数据
+ */
private List data = new ArrayList<>();
+ public WxMpTemplateMessage() {
+ }
+
public String getToUser() {
return this.toUser;
}
@@ -53,6 +80,14 @@ public class WxMpTemplateMessage implements Serializable {
this.data.add(datum);
}
+ public MiniProgram getMiniProgram() {
+ return this.miniProgram;
+ }
+
+ public void setMiniProgram(MiniProgram miniProgram) {
+ this.miniProgram = miniProgram;
+ }
+
public String toJson() {
return WxMpGsonBuilder.INSTANCE.create().toJson(this);
}
@@ -61,11 +96,41 @@ public class WxMpTemplateMessage implements Serializable {
return new WxMpTemplateMessageBuilder();
}
+ public static class MiniProgram {
+ private String appid;
+ private String pagePath;
+
+ public MiniProgram() {
+ }
+
+ public MiniProgram(String appid, String pagePath) {
+ this.appid = appid;
+ this.pagePath = pagePath;
+ }
+
+ public String getAppid() {
+ return this.appid;
+ }
+
+ public void setAppid(String appid) {
+ this.appid = appid;
+ }
+
+ public String getPagePath() {
+ return this.pagePath;
+ }
+
+ public void setPagePath(String pagePath) {
+ this.pagePath = pagePath;
+ }
+ }
+
public static class WxMpTemplateMessageBuilder {
private String toUser;
private String templateId;
private String url;
private List data = new ArrayList<>();
+ private MiniProgram miniProgram;
public WxMpTemplateMessageBuilder toUser(String toUser) {
this.toUser = toUser;
@@ -95,12 +160,18 @@ public class WxMpTemplateMessage implements Serializable {
return this;
}
+ public WxMpTemplateMessageBuilder miniProgram(MiniProgram miniProgram) {
+ this.miniProgram = miniProgram;
+ return this;
+ }
+
public WxMpTemplateMessage build() {
WxMpTemplateMessage m = new WxMpTemplateMessage();
m.toUser = this.toUser;
m.templateId = this.templateId;
m.url = this.url;
m.data = this.data;
+ m.miniProgram = this.miniProgram;
return m;
}
}
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 be6f5dc7..d6e0ff1d 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
@@ -28,6 +28,13 @@ public class WxMpTemplateMessageGsonAdapter implements JsonSerializer
+ * Created by Binary Wang on 2017-3-30.
+ * @author binarywang(Binary Wang)
+ *
+ */
+public class WxMpTemplateMessageTest {
+ @Test
+ public void testToJson() throws Exception {
+ WxMpTemplateMessage tm = WxMpTemplateMessage.builder()
+ .toUser("OPENID")
+ .templateId("ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY")
+ .miniProgram(new WxMpTemplateMessage.MiniProgram("xiaochengxuappid12345", "index?foo=bar"))
+ .url("http://weixin.qq.com/download")
+ .build();
+
+ tm.addWxMpTemplateData(
+ new WxMpTemplateData("first", "haahah", "#FF00FF"));
+ tm.addWxMpTemplateData(
+ new WxMpTemplateData("remark", "heihei", "#FF00FF"));
+
+ 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\"}}}");
+ }
+
+}