mirror of
https://gitee.com/binary/weixin-java-tools.git
synced 2025-10-29 09:38:19 +08:00
支持企业号mpnews消息类型 #143
This commit is contained in:
@ -0,0 +1,139 @@
|
|||||||
|
package me.chanjar.weixin.cp.bean.article;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* Created by BinaryWang on 2017/3/27.
|
||||||
|
* </pre>
|
||||||
|
* @author Binary Wang
|
||||||
|
*/
|
||||||
|
public class MpnewsArticle {
|
||||||
|
private String title;
|
||||||
|
private String thumbMediaId;
|
||||||
|
private String author;
|
||||||
|
private String contentSourceUrl;
|
||||||
|
private String content;
|
||||||
|
private String digest;
|
||||||
|
private String showCoverPic;
|
||||||
|
|
||||||
|
private MpnewsArticle(Builder builder) {
|
||||||
|
setTitle(builder.title);
|
||||||
|
setThumbMediaId(builder.thumbMediaId);
|
||||||
|
setAuthor(builder.author);
|
||||||
|
setContentSourceUrl(builder.contentSourceUrl);
|
||||||
|
setContent(builder.content);
|
||||||
|
setDigest(builder.digest);
|
||||||
|
setShowCoverPic(builder.showCoverPic);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Builder newBuilder() {
|
||||||
|
return new Builder();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getTitle() {
|
||||||
|
return title;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTitle(String title) {
|
||||||
|
this.title = title;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getThumbMediaId() {
|
||||||
|
return thumbMediaId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setThumbMediaId(String thumbMediaId) {
|
||||||
|
this.thumbMediaId = thumbMediaId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAuthor() {
|
||||||
|
return author;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAuthor(String author) {
|
||||||
|
this.author = author;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getContentSourceUrl() {
|
||||||
|
return contentSourceUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setContentSourceUrl(String contentSourceUrl) {
|
||||||
|
this.contentSourceUrl = contentSourceUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getContent() {
|
||||||
|
return content;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setContent(String content) {
|
||||||
|
this.content = content;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDigest() {
|
||||||
|
return digest;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDigest(String digest) {
|
||||||
|
this.digest = digest;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getShowCoverPic() {
|
||||||
|
return showCoverPic;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setShowCoverPic(String showCoverPic) {
|
||||||
|
this.showCoverPic = showCoverPic;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static final class Builder {
|
||||||
|
private String title;
|
||||||
|
private String thumbMediaId;
|
||||||
|
private String author;
|
||||||
|
private String contentSourceUrl;
|
||||||
|
private String content;
|
||||||
|
private String digest;
|
||||||
|
private String showCoverPic;
|
||||||
|
|
||||||
|
private Builder() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public Builder title(String title) {
|
||||||
|
this.title = title;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Builder thumbMediaId(String thumbMediaId) {
|
||||||
|
this.thumbMediaId = thumbMediaId;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Builder author(String author) {
|
||||||
|
this.author = author;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Builder contentSourceUrl(String contentSourceUrl) {
|
||||||
|
this.contentSourceUrl = contentSourceUrl;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Builder content(String content) {
|
||||||
|
this.content = content;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Builder digest(String digest) {
|
||||||
|
this.digest = digest;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Builder showCoverPic(String showCoverPic) {
|
||||||
|
this.showCoverPic = showCoverPic;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public MpnewsArticle build() {
|
||||||
|
return new MpnewsArticle(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,49 @@
|
|||||||
|
package me.chanjar.weixin.cp.bean.article;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <pre>
|
||||||
|
* Created by BinaryWang on 2017/3/27.
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @author Binary Wang
|
||||||
|
*/
|
||||||
|
public class NewArticle {
|
||||||
|
|
||||||
|
private String title;
|
||||||
|
private String description;
|
||||||
|
private String url;
|
||||||
|
private String picUrl;
|
||||||
|
|
||||||
|
public String getTitle() {
|
||||||
|
return this.title;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTitle(String title) {
|
||||||
|
this.title = title;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDescription() {
|
||||||
|
return this.description;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDescription(String description) {
|
||||||
|
this.description = description;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getUrl() {
|
||||||
|
return this.url;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUrl(String url) {
|
||||||
|
this.url = url;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getPicUrl() {
|
||||||
|
return this.picUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setPicUrl(String picUrl) {
|
||||||
|
this.picUrl = picUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -1,5 +1,7 @@
|
|||||||
package me.chanjar.weixin.cp.bean;
|
package me.chanjar.weixin.cp.bean;
|
||||||
|
|
||||||
|
import me.chanjar.weixin.cp.bean.article.MpnewsArticle;
|
||||||
|
import me.chanjar.weixin.cp.bean.article.NewArticle;
|
||||||
import me.chanjar.weixin.cp.bean.messagebuilder.*;
|
import me.chanjar.weixin.cp.bean.messagebuilder.*;
|
||||||
import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;
|
import me.chanjar.weixin.cp.util.json.WxCpGsonBuilder;
|
||||||
|
|
||||||
@ -28,7 +30,16 @@ public class WxCpMessage implements Serializable {
|
|||||||
private String musicUrl;
|
private String musicUrl;
|
||||||
private String hqMusicUrl;
|
private String hqMusicUrl;
|
||||||
private String safe;
|
private String safe;
|
||||||
private List<WxArticle> articles = new ArrayList<>();
|
private List<NewArticle> articles = new ArrayList<>();
|
||||||
|
private List<MpnewsArticle> mpnewsArticles = new ArrayList<>();
|
||||||
|
|
||||||
|
public List<MpnewsArticle> getMpnewsArticles() {
|
||||||
|
return mpnewsArticles;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setMpnewsArticles(List<MpnewsArticle> mpnewsArticles) {
|
||||||
|
this.mpnewsArticles = mpnewsArticles;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获得文本消息builder
|
* 获得文本消息builder
|
||||||
@ -65,6 +76,13 @@ public class WxCpMessage implements Serializable {
|
|||||||
return new NewsBuilder();
|
return new NewsBuilder();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得mpnews图文消息builder
|
||||||
|
*/
|
||||||
|
public static MpnewsBuilder MPNEWS() {
|
||||||
|
return new MpnewsBuilder();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获得文件消息builder
|
* 获得文件消息builder
|
||||||
*/
|
*/
|
||||||
@ -117,9 +135,10 @@ public class WxCpMessage implements Serializable {
|
|||||||
* {@link me.chanjar.weixin.common.api.WxConsts#CUSTOM_MSG_MUSIC}
|
* {@link me.chanjar.weixin.common.api.WxConsts#CUSTOM_MSG_MUSIC}
|
||||||
* {@link me.chanjar.weixin.common.api.WxConsts#CUSTOM_MSG_VIDEO}
|
* {@link me.chanjar.weixin.common.api.WxConsts#CUSTOM_MSG_VIDEO}
|
||||||
* {@link me.chanjar.weixin.common.api.WxConsts#CUSTOM_MSG_NEWS}
|
* {@link me.chanjar.weixin.common.api.WxConsts#CUSTOM_MSG_NEWS}
|
||||||
|
* {@link me.chanjar.weixin.common.api.WxConsts#CUSTOM_MSG_MPNEWS}
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
* @param msgType
|
* @param msgType 消息类型
|
||||||
*/
|
*/
|
||||||
public void setMsgType(String msgType) {
|
public void setMsgType(String msgType) {
|
||||||
this.msgType = msgType;
|
this.msgType = msgType;
|
||||||
@ -189,11 +208,11 @@ public class WxCpMessage implements Serializable {
|
|||||||
this.hqMusicUrl = hqMusicUrl;
|
this.hqMusicUrl = hqMusicUrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<WxArticle> getArticles() {
|
public List<NewArticle> getArticles() {
|
||||||
return this.articles;
|
return this.articles;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setArticles(List<WxArticle> articles) {
|
public void setArticles(List<NewArticle> articles) {
|
||||||
this.articles = articles;
|
this.articles = articles;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -201,45 +220,4 @@ public class WxCpMessage implements Serializable {
|
|||||||
return WxCpGsonBuilder.INSTANCE.create().toJson(this);
|
return WxCpGsonBuilder.INSTANCE.create().toJson(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static class WxArticle {
|
|
||||||
|
|
||||||
private String title;
|
|
||||||
private String description;
|
|
||||||
private String url;
|
|
||||||
private String picUrl;
|
|
||||||
|
|
||||||
public String getTitle() {
|
|
||||||
return this.title;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setTitle(String title) {
|
|
||||||
this.title = title;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getDescription() {
|
|
||||||
return this.description;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setDescription(String description) {
|
|
||||||
this.description = description;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getUrl() {
|
|
||||||
return this.url;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setUrl(String url) {
|
|
||||||
this.url = url;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getPicUrl() {
|
|
||||||
return this.picUrl;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPicUrl(String picUrl) {
|
|
||||||
this.picUrl = picUrl;
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,48 @@
|
|||||||
|
package me.chanjar.weixin.cp.bean.messagebuilder;
|
||||||
|
|
||||||
|
import me.chanjar.weixin.common.api.WxConsts;
|
||||||
|
import me.chanjar.weixin.cp.bean.WxCpMessage;
|
||||||
|
import me.chanjar.weixin.cp.bean.article.MpnewsArticle;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* mpnews类型的图文消息builder
|
||||||
|
* <pre>
|
||||||
|
* 用法:
|
||||||
|
* WxCustomMessage m = WxCustomMessage.MPNEWS().addArticle(article).toUser(...).build();
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
* @author Binary Wang
|
||||||
|
*/
|
||||||
|
public final class MpnewsBuilder extends BaseBuilder<MpnewsBuilder> {
|
||||||
|
private List<MpnewsArticle> articles = new ArrayList<>();
|
||||||
|
|
||||||
|
private String mediaId;
|
||||||
|
|
||||||
|
public MpnewsBuilder() {
|
||||||
|
this.msgType = WxConsts.CUSTOM_MSG_MPNEWS;
|
||||||
|
}
|
||||||
|
|
||||||
|
public MpnewsBuilder mediaId(String mediaId) {
|
||||||
|
this.mediaId = mediaId;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
public MpnewsBuilder addArticle(MpnewsArticle article) {
|
||||||
|
this.articles.add(article);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public WxCpMessage build() {
|
||||||
|
WxCpMessage m = super.build();
|
||||||
|
m.setMpnewsArticles(this.articles);
|
||||||
|
if (this.mediaId != null) {
|
||||||
|
m.setMediaId(this.mediaId);
|
||||||
|
}
|
||||||
|
|
||||||
|
return m;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -2,6 +2,7 @@ package me.chanjar.weixin.cp.bean.messagebuilder;
|
|||||||
|
|
||||||
import me.chanjar.weixin.common.api.WxConsts;
|
import me.chanjar.weixin.common.api.WxConsts;
|
||||||
import me.chanjar.weixin.cp.bean.WxCpMessage;
|
import me.chanjar.weixin.cp.bean.WxCpMessage;
|
||||||
|
import me.chanjar.weixin.cp.bean.article.NewArticle;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -17,13 +18,13 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
public final class NewsBuilder extends BaseBuilder<NewsBuilder> {
|
public final class NewsBuilder extends BaseBuilder<NewsBuilder> {
|
||||||
|
|
||||||
private List<WxCpMessage.WxArticle> articles = new ArrayList<>();
|
private List<NewArticle> articles = new ArrayList<>();
|
||||||
|
|
||||||
public NewsBuilder() {
|
public NewsBuilder() {
|
||||||
this.msgType = WxConsts.CUSTOM_MSG_NEWS;
|
this.msgType = WxConsts.CUSTOM_MSG_NEWS;
|
||||||
}
|
}
|
||||||
|
|
||||||
public NewsBuilder addArticle(WxCpMessage.WxArticle article) {
|
public NewsBuilder addArticle(NewArticle article) {
|
||||||
this.articles.add(article);
|
this.articles.add(article);
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -11,6 +11,8 @@ package me.chanjar.weixin.cp.util.json;
|
|||||||
import com.google.gson.*;
|
import com.google.gson.*;
|
||||||
import me.chanjar.weixin.common.api.WxConsts;
|
import me.chanjar.weixin.common.api.WxConsts;
|
||||||
import me.chanjar.weixin.cp.bean.WxCpMessage;
|
import me.chanjar.weixin.cp.bean.WxCpMessage;
|
||||||
|
import me.chanjar.weixin.cp.bean.article.MpnewsArticle;
|
||||||
|
import me.chanjar.weixin.cp.bean.article.NewArticle;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
import java.lang.reflect.Type;
|
import java.lang.reflect.Type;
|
||||||
@ -71,7 +73,7 @@ public class WxCpMessageGsonAdapter implements JsonSerializer<WxCpMessage> {
|
|||||||
if (WxConsts.CUSTOM_MSG_NEWS.equals(message.getMsgType())) {
|
if (WxConsts.CUSTOM_MSG_NEWS.equals(message.getMsgType())) {
|
||||||
JsonObject newsJsonObject = new JsonObject();
|
JsonObject newsJsonObject = new JsonObject();
|
||||||
JsonArray articleJsonArray = new JsonArray();
|
JsonArray articleJsonArray = new JsonArray();
|
||||||
for (WxCpMessage.WxArticle article : message.getArticles()) {
|
for (NewArticle article : message.getArticles()) {
|
||||||
JsonObject articleJson = new JsonObject();
|
JsonObject articleJson = new JsonObject();
|
||||||
articleJson.addProperty("title", article.getTitle());
|
articleJson.addProperty("title", article.getTitle());
|
||||||
articleJson.addProperty("description", article.getDescription());
|
articleJson.addProperty("description", article.getDescription());
|
||||||
@ -83,6 +85,29 @@ public class WxCpMessageGsonAdapter implements JsonSerializer<WxCpMessage> {
|
|||||||
messageJson.add("news", newsJsonObject);
|
messageJson.add("news", newsJsonObject);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (WxConsts.CUSTOM_MSG_MPNEWS.equals(message.getMsgType())) {
|
||||||
|
JsonObject newsJsonObject = new JsonObject();
|
||||||
|
if (message.getMediaId() != null) {
|
||||||
|
newsJsonObject.addProperty("media_id", message.getMediaId());
|
||||||
|
}else {
|
||||||
|
JsonArray articleJsonArray = new JsonArray();
|
||||||
|
for (MpnewsArticle article : message.getMpnewsArticles()) {
|
||||||
|
JsonObject articleJson = new JsonObject();
|
||||||
|
articleJson.addProperty("title", article.getTitle());
|
||||||
|
articleJson.addProperty("thumb_media_id", article.getThumbMediaId());
|
||||||
|
articleJson.addProperty("author", article.getAuthor());
|
||||||
|
articleJson.addProperty("content_source_url", article.getContentSourceUrl());
|
||||||
|
articleJson.addProperty("content", article.getContent());
|
||||||
|
articleJson.addProperty("digest", article.getDigest());
|
||||||
|
articleJson.addProperty("show_cover_pic", article.getShowCoverPic());
|
||||||
|
articleJsonArray.add(articleJson);
|
||||||
|
}
|
||||||
|
|
||||||
|
newsJsonObject.add("articles", articleJsonArray);
|
||||||
|
}
|
||||||
|
messageJson.add("mpnews", newsJsonObject);
|
||||||
|
}
|
||||||
|
|
||||||
return messageJson;
|
return messageJson;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,8 @@
|
|||||||
package me.chanjar.weixin.cp.bean;
|
package me.chanjar.weixin.cp.bean;
|
||||||
|
|
||||||
import me.chanjar.weixin.common.api.WxConsts;
|
import me.chanjar.weixin.common.api.WxConsts;
|
||||||
import me.chanjar.weixin.cp.bean.WxCpMessage.WxArticle;
|
import me.chanjar.weixin.cp.bean.article.NewArticle;
|
||||||
|
import me.chanjar.weixin.cp.bean.article.MpnewsArticle;
|
||||||
import org.testng.Assert;
|
import org.testng.Assert;
|
||||||
import org.testng.annotations.Test;
|
import org.testng.annotations.Test;
|
||||||
|
|
||||||
@ -68,14 +69,14 @@ public class WxCpMessageTest {
|
|||||||
reply.setToUser("OPENID");
|
reply.setToUser("OPENID");
|
||||||
reply.setMsgType(WxConsts.CUSTOM_MSG_NEWS);
|
reply.setMsgType(WxConsts.CUSTOM_MSG_NEWS);
|
||||||
|
|
||||||
WxArticle article1 = new WxArticle();
|
NewArticle article1 = new NewArticle();
|
||||||
article1.setUrl("URL");
|
article1.setUrl("URL");
|
||||||
article1.setPicUrl("PIC_URL");
|
article1.setPicUrl("PIC_URL");
|
||||||
article1.setDescription("Is Really A Happy Day");
|
article1.setDescription("Is Really A Happy Day");
|
||||||
article1.setTitle("Happy Day");
|
article1.setTitle("Happy Day");
|
||||||
reply.getArticles().add(article1);
|
reply.getArticles().add(article1);
|
||||||
|
|
||||||
WxArticle article2 = new WxArticle();
|
NewArticle article2 = new NewArticle();
|
||||||
article2.setUrl("URL");
|
article2.setUrl("URL");
|
||||||
article2.setPicUrl("PIC_URL");
|
article2.setPicUrl("PIC_URL");
|
||||||
article2.setDescription("Is Really A Happy Day");
|
article2.setDescription("Is Really A Happy Day");
|
||||||
@ -87,13 +88,13 @@ public class WxCpMessageTest {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void testNewsBuild() {
|
public void testNewsBuild() {
|
||||||
WxArticle article1 = new WxArticle();
|
NewArticle article1 = new NewArticle();
|
||||||
article1.setUrl("URL");
|
article1.setUrl("URL");
|
||||||
article1.setPicUrl("PIC_URL");
|
article1.setPicUrl("PIC_URL");
|
||||||
article1.setDescription("Is Really A Happy Day");
|
article1.setDescription("Is Really A Happy Day");
|
||||||
article1.setTitle("Happy Day");
|
article1.setTitle("Happy Day");
|
||||||
|
|
||||||
WxArticle article2 = new WxArticle();
|
NewArticle article2 = new NewArticle();
|
||||||
article2.setUrl("URL");
|
article2.setUrl("URL");
|
||||||
article2.setPicUrl("PIC_URL");
|
article2.setPicUrl("PIC_URL");
|
||||||
article2.setDescription("Is Really A Happy Day");
|
article2.setDescription("Is Really A Happy Day");
|
||||||
@ -104,4 +105,39 @@ public class WxCpMessageTest {
|
|||||||
Assert.assertEquals(reply.toJson(), "{\"touser\":\"OPENID\",\"msgtype\":\"news\",\"news\":{\"articles\":[{\"title\":\"Happy Day\",\"description\":\"Is Really A Happy Day\",\"url\":\"URL\",\"picurl\":\"PIC_URL\"},{\"title\":\"Happy Day\",\"description\":\"Is Really A Happy Day\",\"url\":\"URL\",\"picurl\":\"PIC_URL\"}]}}");
|
Assert.assertEquals(reply.toJson(), "{\"touser\":\"OPENID\",\"msgtype\":\"news\",\"news\":{\"articles\":[{\"title\":\"Happy Day\",\"description\":\"Is Really A Happy Day\",\"url\":\"URL\",\"picurl\":\"PIC_URL\"},{\"title\":\"Happy Day\",\"description\":\"Is Really A Happy Day\",\"url\":\"URL\",\"picurl\":\"PIC_URL\"}]}}");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testMpnewsBuild_with_articles() {
|
||||||
|
MpnewsArticle article1 = MpnewsArticle.newBuilder()
|
||||||
|
.title("Happy Day")
|
||||||
|
.author("aaaaaa")
|
||||||
|
.content("hahaha")
|
||||||
|
.contentSourceUrl("nice url")
|
||||||
|
.digest("digest")
|
||||||
|
.showCoverPic("heihei")
|
||||||
|
.thumbMediaId("thumb")
|
||||||
|
.build();
|
||||||
|
|
||||||
|
MpnewsArticle article2 = MpnewsArticle.newBuilder()
|
||||||
|
.title("Happy Day")
|
||||||
|
.author("aaaaaa")
|
||||||
|
.content("hahaha")
|
||||||
|
.contentSourceUrl("nice url")
|
||||||
|
.digest("digest")
|
||||||
|
.showCoverPic("heihei")
|
||||||
|
.thumbMediaId("thumb")
|
||||||
|
.build();
|
||||||
|
|
||||||
|
WxCpMessage reply = WxCpMessage.MPNEWS().toUser("OPENID").addArticle(article1).addArticle(article2).build();
|
||||||
|
|
||||||
|
Assert.assertEquals(reply.toJson(), "{\"touser\":\"OPENID\",\"msgtype\":\"mpnews\"," +
|
||||||
|
"\"mpnews\":{\"articles\":[{\"title\":\"Happy Day\",\"thumb_media_id\":\"thumb\",\"author\":\"aaaaaa\",\"content_source_url\":\"nice url\",\"content\":\"hahaha\",\"digest\":\"digest\",\"show_cover_pic\":\"heihei\"}," +
|
||||||
|
"{\"title\":\"Happy Day\",\"thumb_media_id\":\"thumb\",\"author\":\"aaaaaa\",\"content_source_url\":\"nice url\",\"content\":\"hahaha\",\"digest\":\"digest\",\"show_cover_pic\":\"heihei\"}]}}");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testMpnewsBuild_with_media_id() {
|
||||||
|
WxCpMessage reply = WxCpMessage.MPNEWS().toUser("OPENID").mediaId("mmm").build();
|
||||||
|
|
||||||
|
Assert.assertEquals(reply.toJson(),
|
||||||
|
"{\"touser\":\"OPENID\",\"msgtype\":\"mpnews\",\"mpnews\":{\"media_id\":\"mmm\"}}");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user