Skip to content

Commit b23b764

Browse files
committed
添加对客服消息发送(点击跳转到图文消息页面) 图文消息的支持 #67
1 parent 11452e6 commit b23b764

File tree

7 files changed

+216
-130
lines changed

7 files changed

+216
-130
lines changed

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

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,15 @@ public class WxConsts {
2323
///////////////////////
2424
// 主动发送消息(即客服消息)的消息类型
2525
///////////////////////
26-
public static final String CUSTOM_MSG_TEXT = "text";
27-
public static final String CUSTOM_MSG_IMAGE = "image";
28-
public static final String CUSTOM_MSG_VOICE = "voice";
29-
public static final String CUSTOM_MSG_VIDEO = "video";
30-
public static final String CUSTOM_MSG_MUSIC = "music";
31-
public static final String CUSTOM_MSG_NEWS = "news";
32-
public static final String CUSTOM_MSG_FILE = "file";
33-
public static final String CUSTOM_MSG_WXCARD = "wxcard";
26+
public static final String CUSTOM_MSG_TEXT = "text";//文本消息
27+
public static final String CUSTOM_MSG_IMAGE = "image";//图片消息
28+
public static final String CUSTOM_MSG_VOICE = "voice";//语音消息
29+
public static final String CUSTOM_MSG_VIDEO = "video";//视频消息
30+
public static final String CUSTOM_MSG_MUSIC = "music";//音乐消息
31+
public static final String CUSTOM_MSG_NEWS = "news";//图文消息(点击跳转到外链)
32+
public static final String CUSTOM_MSG_MPNEWS = "mpnews";//图文消息(点击跳转到图文消息页面)
33+
public static final String CUSTOM_MSG_FILE = "file";//发送文件(CP专用)
34+
public static final String CUSTOM_MSG_WXCARD = "wxcard";//卡券消息
3435
public static final String CUSTOM_MSG_TRANSFER_CUSTOMER_SERVICE = "transfer_customer_service";
3536
public static final String CUSTOM_MSG_SAFE_NO = "0";
3637
public static final String CUSTOM_MSG_SAFE_YES = "1";
@@ -193,7 +194,7 @@ public class WxConsts {
193194
* 弹出授权页面,可通过openid拿到昵称、性别、所在地。并且,即使在未关注的情况下,只要用户授权,也能获取其信息
194195
*/
195196
public static final String OAUTH2_SCOPE_USER_INFO = "snsapi_userinfo";
196-
197+
197198
/**
198199
* 网页应用登录授权作用域 snsapi_login
199200
*/

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

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,16 @@
11
package me.chanjar.weixin.mp.bean;
22

33
import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
4+
import org.apache.commons.lang3.builder.ToStringBuilder;
5+
import org.apache.commons.lang3.builder.ToStringStyle;
46

57
import java.io.Serializable;
68
import java.util.ArrayList;
79
import java.util.List;
810

911
public class WxMpMaterialNews implements Serializable {
10-
11-
/**
12-
*
13-
*/
1412
private static final long serialVersionUID = -3283203652013494976L;
13+
1514
private List<WxMpMaterialNewsArticle> articles = new ArrayList<>();
1615

1716
public List<WxMpMaterialNewsArticle> getArticles() {
@@ -81,7 +80,6 @@ public static class WxMpMaterialNewsArticle {
8180

8281
/**
8382
* 点击图文消息跳转链接
84-
* @return
8583
*/
8684
private String url;
8785

@@ -159,14 +157,12 @@ public void setThumbUrl(String thumbUrl) {
159157

160158
@Override
161159
public String toString() {
162-
return "WxMpMassNewsArticle [" + "thumbMediaId=" + this.thumbMediaId + "thumbUrl=" + this.thumbUrl + ", author=" + this.author + ", title=" + this.title +
163-
", contentSourceUrl=" + this.contentSourceUrl + ", content=" + this.content + ", digest=" + this.digest +
164-
", showCoverPic=" + this.showCoverPic +", url=" + this.url + "]";
160+
return ToStringBuilder.reflectionToString(this, ToStringStyle.MULTI_LINE_STYLE);
165161
}
166162
}
167163

168164
@Override
169165
public String toString() {
170-
return "WxMpMaterialNews [" + "articles=" + this.articles + "]";
166+
return ToStringBuilder.reflectionToString(this, ToStringStyle.MULTI_LINE_STYLE);
171167
}
172168
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
package me.chanjar.weixin.mp.bean.custombuilder;
2+
3+
import me.chanjar.weixin.common.api.WxConsts;
4+
import me.chanjar.weixin.mp.bean.kefu.WxMpKefuMessage;
5+
6+
/**
7+
* 图文消息builder
8+
* <pre>
9+
* 用法:
10+
* WxMpKefuMessage m = WxMpKefuMessage.NEWS().mediaId("xxxxx").toUser(...).build();
11+
* </pre>
12+
* @author Binary Wang
13+
*
14+
*/
15+
public final class MpNewsBuilder extends BaseBuilder<MpNewsBuilder> {
16+
private String mediaId;
17+
18+
public MpNewsBuilder() {
19+
this.msgType = WxConsts.CUSTOM_MSG_MPNEWS;
20+
}
21+
22+
public MpNewsBuilder mediaId(String mediaId) {
23+
this.mediaId = mediaId;
24+
return this;
25+
}
26+
27+
@Override
28+
public WxMpKefuMessage build() {
29+
WxMpKefuMessage m = super.build();
30+
m.setMpNewsMediaId(this.mediaId);
31+
return m;
32+
}
33+
}

0 commit comments

Comments
 (0)