mirror of
https://gitee.com/binary/weixin-java-tools.git
synced 2025-04-05 17:38:05 +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 {
|
||||
private static final long serialVersionUID = 5063374783759519418L;
|
||||
|
||||
/**
|
||||
* 接收者openid
|
||||
*/
|
||||
private String toUser;
|
||||
|
||||
/**
|
||||
* 模板ID
|
||||
*/
|
||||
private String templateId;
|
||||
|
||||
/**
|
||||
* <pre>
|
||||
* 跳小程序所需数据,不需跳小程序可不用传该数据
|
||||
* url和miniprogram都是非必填字段,若都不传则模板无跳转;若都传,会优先跳转至小程序。
|
||||
* 开发者可根据实际需要选择其中一种跳转方式即可。当用户的微信客户端版本不支持跳小程序时,将会跳转至url。
|
||||
* </pre>
|
||||
*/
|
||||
private String url;
|
||||
/**
|
||||
* 模板跳转链接
|
||||
* @see #url
|
||||
*/
|
||||
private MiniProgram miniProgram;
|
||||
|
||||
/**
|
||||
* 模板数据
|
||||
*/
|
||||
private List<WxMpTemplateData> 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<WxMpTemplateData> 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;
|
||||
}
|
||||
}
|
||||
|
@ -28,6 +28,13 @@ public class WxMpTemplateMessageGsonAdapter implements JsonSerializer<WxMpTempla
|
||||
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();
|
||||
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