Skip to content

Commit d7d9734

Browse files
committed
实现永久素材相关接口
1 parent 24891af commit d7d9734

30 files changed

+1745
-82
lines changed

weixin-java-common/src/main/java/me/chanjar/weixin/common/api/WxConsts.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,4 +137,11 @@ public class WxConsts {
137137
/** 弹出授权页面,可通过openid拿到昵称、性别、所在地。并且,即使在未关注的情况下,只要用户授权,也能获取其信息 */
138138
public static final String OAUTH2_SCOPE_USER_INFO = "snsapi_userinfo";
139139

140+
///////////////////////
141+
// 永久素材类型
142+
///////////////////////
143+
public static final String MATERIAL_NEWS = "news";
144+
public static final String MATERIAL_VOICE = "voice";
145+
public static final String MATERIAL_IMAGE = "image";
146+
public static final String MATERIAL_VIDEO = "video";
140147
}

weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpServiceImpl.java

Lines changed: 140 additions & 53 deletions
Large diffs are not rendered by default.

weixin-java-mp/src/main/java/me/chanjar/weixin/mp/bean/WxMpMassNews.java

Lines changed: 36 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,25 +8,29 @@
88

99
/**
1010
* 群发时用到的图文消息素材
11-
* @author chanjarster
1211
*
12+
* @author chanjarster
1313
*/
1414
public class WxMpMassNews implements Serializable {
1515

1616
private List<WxMpMassNewsArticle> articles = new ArrayList<WxMpMassNewsArticle>();
17-
17+
1818
public List<WxMpMassNewsArticle> getArticles() {
1919
return articles;
2020
}
21-
21+
2222
public void addArticle(WxMpMassNewsArticle article) {
2323
this.articles.add(article);
2424
}
25-
25+
2626
public String toJson() {
2727
return WxMpGsonBuilder.INSTANCE.create().toJson(this);
2828
}
29-
29+
30+
public boolean isEmpty() {
31+
return articles == null || articles.isEmpty();
32+
}
33+
3034
/**
3135
* <pre>
3236
* 群发图文消息article
@@ -38,8 +42,8 @@ public String toJson() {
3842
* 6. digest 图文消息的描述
3943
* 7, showCoverPic 是否显示封面,true为显示,false为不显示
4044
* </pre>
41-
* @author chanjarster
4245
*
46+
* @author chanjarster
4347
*/
4448
public static class WxMpMassNewsArticle {
4549
/**
@@ -70,49 +74,73 @@ public static class WxMpMassNewsArticle {
7074
* 是否显示封面,true为显示,false为不显示
7175
*/
7276
private boolean showCoverPic;
73-
77+
7478
public String getThumbMediaId() {
7579
return thumbMediaId;
7680
}
81+
7782
public void setThumbMediaId(String thumbMediaId) {
7883
this.thumbMediaId = thumbMediaId;
7984
}
85+
8086
public String getAuthor() {
8187
return author;
8288
}
89+
8390
public void setAuthor(String author) {
8491
this.author = author;
8592
}
93+
8694
public String getTitle() {
8795
return title;
8896
}
97+
8998
public void setTitle(String title) {
9099
this.title = title;
91100
}
101+
92102
public String getContentSourceUrl() {
93103
return contentSourceUrl;
94104
}
105+
95106
public void setContentSourceUrl(String contentSourceUrl) {
96107
this.contentSourceUrl = contentSourceUrl;
97108
}
109+
98110
public String getContent() {
99111
return content;
100112
}
113+
101114
public void setContent(String content) {
102115
this.content = content;
103116
}
117+
104118
public String getDigest() {
105119
return digest;
106120
}
121+
107122
public void setDigest(String digest) {
108123
this.digest = digest;
109124
}
125+
110126
public boolean isShowCoverPic() {
111127
return showCoverPic;
112128
}
129+
113130
public void setShowCoverPic(boolean showCoverPic) {
114131
this.showCoverPic = showCoverPic;
115132
}
116-
133+
134+
@Override
135+
public String toString() {
136+
return "WxMpMassNewsArticle [" + "thumbMediaId=" + thumbMediaId + ", author=" + author + ", title=" + title +
137+
", contentSourceUrl=" + contentSourceUrl + ", content=" + content + ", digest=" + digest +
138+
", showCoverPic=" + showCoverPic + "]";
139+
}
140+
}
141+
142+
@Override
143+
public String toString() {
144+
return "WxMpMassNews [" + "articles=" + articles + "]";
117145
}
118146
}
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
package me.chanjar.weixin.mp.bean;
2+
3+
import java.io.File;
4+
import java.util.HashMap;
5+
import java.util.Map;
6+
7+
public class WxMpMaterial {
8+
9+
private String name;
10+
private File file;
11+
private String videoTitle;
12+
private String videoIntroduction;
13+
14+
public WxMpMaterial() {
15+
}
16+
17+
public WxMpMaterial(String name, File file, String videoTitle, String videoIntroduction) {
18+
this.name = name;
19+
this.file = file;
20+
this.videoTitle = videoTitle;
21+
this.videoIntroduction = videoIntroduction;
22+
}
23+
24+
public Map<String, String> getForm() {
25+
Map<String, String> form = new HashMap<String, String>();
26+
form.put("title", videoTitle);
27+
form.put("introduction", videoIntroduction);
28+
return form;
29+
}
30+
31+
public String getVideoTitle() {
32+
return videoTitle;
33+
}
34+
35+
public void setVideoTitle(String videoTitle) {
36+
this.videoTitle = videoTitle;
37+
}
38+
39+
public String getVideoIntroduction() {
40+
return videoIntroduction;
41+
}
42+
43+
public void setVideoIntroduction(String videoIntroduction) {
44+
this.videoIntroduction = videoIntroduction;
45+
}
46+
47+
public String getName() {
48+
return name;
49+
}
50+
51+
public void setName(String name) {
52+
this.name = name;
53+
}
54+
55+
public File getFile() {
56+
return file;
57+
}
58+
59+
public void setFile(File file) {
60+
this.file = file;
61+
}
62+
63+
@Override
64+
public String toString() {
65+
return "WxMpMaterial [" + "name=" + name + ", file=" + file + ", videoTitle=" + videoTitle + ", videoIntroduction=" + videoIntroduction + "]";
66+
}
67+
}
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
package me.chanjar.weixin.mp.bean;
2+
3+
import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
4+
5+
import java.io.Serializable;
6+
7+
public class WxMpMaterialArticleUpdate implements Serializable {
8+
9+
private String mediaId;
10+
private int index;
11+
private WxMpMaterialNews.WxMpMaterialNewsArticle articles;
12+
13+
public String getMediaId() {
14+
return mediaId;
15+
}
16+
17+
public void setMediaId(String mediaId) {
18+
this.mediaId = mediaId;
19+
}
20+
21+
public int getIndex() {
22+
return index;
23+
}
24+
25+
public void setIndex(int index) {
26+
this.index = index;
27+
}
28+
29+
public WxMpMaterialNews.WxMpMaterialNewsArticle getArticles() {
30+
return articles;
31+
}
32+
33+
public void setArticles(WxMpMaterialNews.WxMpMaterialNewsArticle articles) {
34+
this.articles = articles;
35+
}
36+
37+
public String toJson() {
38+
return WxMpGsonBuilder.create().toJson(this);
39+
}
40+
41+
@Override
42+
public String toString() {
43+
return "WxMpMaterialArticleUpdate [" + "mediaId=" + mediaId + ", index=" + index + ", articles=" + articles + "]";
44+
}
45+
}
Lines changed: 141 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,141 @@
1+
package me.chanjar.weixin.mp.bean;
2+
3+
import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
4+
5+
import java.io.Serializable;
6+
import java.util.ArrayList;
7+
import java.util.List;
8+
9+
public class WxMpMaterialNews implements Serializable {
10+
11+
private List<WxMpMaterialNewsArticle> articles = new ArrayList<WxMpMaterialNewsArticle>();
12+
13+
public List<WxMpMaterialNewsArticle> getArticles() {
14+
return articles;
15+
}
16+
17+
public void addArticle(WxMpMaterialNewsArticle article) {
18+
this.articles.add(article);
19+
}
20+
21+
public String toJson() {
22+
return WxMpGsonBuilder.INSTANCE.create().toJson(this);
23+
}
24+
25+
public boolean isEmpty() {
26+
return articles == null || articles.isEmpty();
27+
}
28+
29+
/**
30+
* <pre>
31+
* 群发图文消息article
32+
* 1. thumbMediaId (必填) 图文消息缩略图的media_id,可以在基础支持-上传多媒体文件接口中获得
33+
* 2. author 图文消息的作者
34+
* 3. title (必填) 图文消息的标题
35+
* 4. contentSourceUrl 在图文消息页面点击“阅读原文”后的页面链接
36+
* 5. content (必填) 图文消息页面的内容,支持HTML标签
37+
* 6. digest 图文消息的描述
38+
* 7, showCoverPic 是否显示封面,true为显示,false为不显示
39+
* </pre>
40+
*
41+
* @author chanjarster
42+
*/
43+
public static class WxMpMaterialNewsArticle {
44+
/**
45+
* (必填) 图文消息缩略图的media_id,可以在基础支持-上传多媒体文件接口中获得
46+
*/
47+
private String thumbMediaId;
48+
/**
49+
* 图文消息的作者
50+
*/
51+
private String author;
52+
/**
53+
* (必填) 图文消息的标题
54+
*/
55+
private String title;
56+
/**
57+
* 在图文消息页面点击“阅读原文”后的页面链接
58+
*/
59+
private String contentSourceUrl;
60+
/**
61+
* (必填) 图文消息页面的内容,支持HTML标签
62+
*/
63+
private String content;
64+
/**
65+
* 图文消息的描述
66+
*/
67+
private String digest;
68+
/**
69+
* 是否显示封面,true为显示,false为不显示
70+
*/
71+
private boolean showCoverPic;
72+
73+
public String getThumbMediaId() {
74+
return thumbMediaId;
75+
}
76+
77+
public void setThumbMediaId(String thumbMediaId) {
78+
this.thumbMediaId = thumbMediaId;
79+
}
80+
81+
public String getAuthor() {
82+
return author;
83+
}
84+
85+
public void setAuthor(String author) {
86+
this.author = author;
87+
}
88+
89+
public String getTitle() {
90+
return title;
91+
}
92+
93+
public void setTitle(String title) {
94+
this.title = title;
95+
}
96+
97+
public String getContentSourceUrl() {
98+
return contentSourceUrl;
99+
}
100+
101+
public void setContentSourceUrl(String contentSourceUrl) {
102+
this.contentSourceUrl = contentSourceUrl;
103+
}
104+
105+
public String getContent() {
106+
return content;
107+
}
108+
109+
public void setContent(String content) {
110+
this.content = content;
111+
}
112+
113+
public String getDigest() {
114+
return digest;
115+
}
116+
117+
public void setDigest(String digest) {
118+
this.digest = digest;
119+
}
120+
121+
public boolean isShowCoverPic() {
122+
return showCoverPic;
123+
}
124+
125+
public void setShowCoverPic(boolean showCoverPic) {
126+
this.showCoverPic = showCoverPic;
127+
}
128+
129+
@Override
130+
public String toString() {
131+
return "WxMpMassNewsArticle [" + "thumbMediaId=" + thumbMediaId + ", author=" + author + ", title=" + title +
132+
", contentSourceUrl=" + contentSourceUrl + ", content=" + content + ", digest=" + digest +
133+
", showCoverPic=" + showCoverPic + "]";
134+
}
135+
}
136+
137+
@Override
138+
public String toString() {
139+
return "WxMpMaterialNews [" + "articles=" + articles + "]";
140+
}
141+
}

0 commit comments

Comments
 (0)