mirror of
https://gitee.com/binary/weixin-java-tools.git
synced 2025-08-24 16:18:51 +08:00
模板消息加入对小程序的支持 #172
This commit is contained in:
parent
aa49f96bf1
commit
490ba068c5
@ -12,11 +12,38 @@ import java.util.List;
|
|||||||
public class WxMpTemplateMessage implements Serializable {
|
public class WxMpTemplateMessage implements Serializable {
|
||||||
private static final long serialVersionUID = 5063374783759519418L;
|
private static final long serialVersionUID = 5063374783759519418L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 接收者openid
|
||||||
|
*/
|
||||||
private String toUser;
|
private String toUser;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 模板ID
|
||||||
|
*/
|
||||||
private String templateId;
|
private String templateId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* 跳小程序所需数据,不需跳小程序可不用传该数据
|
||||||
|
* url和miniprogram都是非必填字段,若都不传则模板无跳转;若都传,会优先跳转至小程序。
|
||||||
|
* 开发者可根据实际需要选择其中一种跳转方式即可。当用户的微信客户端版本不支持跳小程序时,将会跳转至url。
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
private String url;
|
private String url;
|
||||||
|
/**
|
||||||
|
* 模板跳转链接
|
||||||
|
* @see #url
|
||||||
|
*/
|
||||||
|
private MiniProgram miniProgram;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 模板数据
|
||||||
|
*/
|
||||||
private List<WxMpTemplateData> data = new ArrayList<>();
|
private List<WxMpTemplateData> data = new ArrayList<>();
|
||||||
|
|
||||||
|
public WxMpTemplateMessage() {
|
||||||
|
}
|
||||||
|
|
||||||
public String getToUser() {
|
public String getToUser() {
|
||||||
return this.toUser;
|
return this.toUser;
|
||||||
}
|
}
|
||||||
@ -53,6 +80,14 @@ public class WxMpTemplateMessage implements Serializable {
|
|||||||
this.data.add(datum);
|
this.data.add(datum);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public MiniProgram getMiniProgram() {
|
||||||
|
return this.miniProgram;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMiniProgram(MiniProgram miniProgram) {
|
||||||
|
this.miniProgram = miniProgram;
|
||||||
|
}
|
||||||
|
|
||||||
public String toJson() {
|
public String toJson() {
|
||||||
return WxMpGsonBuilder.INSTANCE.create().toJson(this);
|
return WxMpGsonBuilder.INSTANCE.create().toJson(this);
|
||||||
}
|
}
|
||||||
@ -61,11 +96,41 @@ public class WxMpTemplateMessage implements Serializable {
|
|||||||
return new WxMpTemplateMessageBuilder();
|
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 {
|
public static class WxMpTemplateMessageBuilder {
|
||||||
private String toUser;
|
private String toUser;
|
||||||
private String templateId;
|
private String templateId;
|
||||||
private String url;
|
private String url;
|
||||||
private List<WxMpTemplateData> data = new ArrayList<>();
|
private List<WxMpTemplateData> data = new ArrayList<>();
|
||||||
|
private MiniProgram miniProgram;
|
||||||
|
|
||||||
public WxMpTemplateMessageBuilder toUser(String toUser) {
|
public WxMpTemplateMessageBuilder toUser(String toUser) {
|
||||||
this.toUser = toUser;
|
this.toUser = toUser;
|
||||||
@ -95,12 +160,18 @@ public class WxMpTemplateMessage implements Serializable {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public WxMpTemplateMessageBuilder miniProgram(MiniProgram miniProgram) {
|
||||||
|
this.miniProgram = miniProgram;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
public WxMpTemplateMessage build() {
|
public WxMpTemplateMessage build() {
|
||||||
WxMpTemplateMessage m = new WxMpTemplateMessage();
|
WxMpTemplateMessage m = new WxMpTemplateMessage();
|
||||||
m.toUser = this.toUser;
|
m.toUser = this.toUser;
|
||||||
m.templateId = this.templateId;
|
m.templateId = this.templateId;
|
||||||
m.url = this.url;
|
m.url = this.url;
|
||||||
m.data = this.data;
|
m.data = this.data;
|
||||||
|
m.miniProgram = this.miniProgram;
|
||||||
return m;
|
return m;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -28,6 +28,13 @@ public class WxMpTemplateMessageGsonAdapter implements JsonSerializer<WxMpTempla
|
|||||||
messageJson.addProperty("url", message.getUrl());
|
messageJson.addProperty("url", message.getUrl());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(message.getMiniProgram() !=null){
|
||||||
|
JsonObject miniProgramJson = new JsonObject();
|
||||||
|
miniProgramJson.addProperty("appid", message.getMiniProgram().getAppid());
|
||||||
|
miniProgramJson.addProperty("pagepath", message.getMiniProgram().getPagePath());
|
||||||
|
messageJson.add("miniprogram", miniProgramJson);
|
||||||
|
}
|
||||||
|
|
||||||
JsonObject data = new JsonObject();
|
JsonObject data = new JsonObject();
|
||||||
messageJson.add("data", data);
|
messageJson.add("data", data);
|
||||||
|
|
||||||
|
@ -0,0 +1,31 @@
|
|||||||
|
package me.chanjar.weixin.mp.bean.template;
|
||||||
|
|
||||||
|
import org.testng.annotations.*;
|
||||||
|
|
||||||
|
import static org.testng.AssertJUnit.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* Created by Binary Wang on 2017-3-30.
|
||||||
|
* @author <a href="https://github.com/binarywang">binarywang(Binary Wang)</a>
|
||||||
|
* </pre>
|
||||||
|
*/
|
||||||
|
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\"}}}");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user