From 490ba068c592a8519cb67ef485dc9bf6c594bb9e Mon Sep 17 00:00:00 2001 From: Binary Wang Date: Thu, 30 Mar 2017 17:59:25 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E6=B6=88=E6=81=AF=E5=8A=A0?= =?UTF-8?q?=E5=85=A5=E5=AF=B9=E5=B0=8F=E7=A8=8B=E5=BA=8F=E7=9A=84=E6=94=AF?= =?UTF-8?q?=E6=8C=81=20#172?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mp/bean/template/WxMpTemplateMessage.java | 71 +++++++++++++++++++ .../json/WxMpTemplateMessageGsonAdapter.java | 7 ++ .../template/WxMpTemplateMessageTest.java | 31 ++++++++ 3 files changed, 109 insertions(+) create mode 100644 weixin-java-mp/src/test/java/me/chanjar/weixin/mp/bean/template/WxMpTemplateMessageTest.java 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 df8e708da..f70090ef5 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 be6f5dc71..d6e0ff1d6 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\"}}}"); + } + +}