Skip to content

Commit 2eb3fc5

Browse files
committed
binarywang#425 小程序客服消息新增小程序卡片消息支持
1 parent a687d00 commit 2eb3fc5

File tree

6 files changed

+99
-29
lines changed

6 files changed

+99
-29
lines changed

weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/WxMaKefuMessage.java

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,9 @@
11
package cn.binarywang.wx.miniapp.bean;
22

3-
import cn.binarywang.wx.miniapp.builder.ImageBuilder;
4-
import cn.binarywang.wx.miniapp.builder.LinkBuilder;
5-
import cn.binarywang.wx.miniapp.builder.TextBuilder;
3+
import cn.binarywang.wx.miniapp.builder.ImageMessageBuilder;
4+
import cn.binarywang.wx.miniapp.builder.LinkMessageBuilder;
5+
import cn.binarywang.wx.miniapp.builder.MaPageMessageBuilder;
6+
import cn.binarywang.wx.miniapp.builder.TextMessageBuilder;
67
import com.google.gson.GsonBuilder;
78
import com.google.gson.annotations.SerializedName;
89
import lombok.AllArgsConstructor;
@@ -77,22 +78,29 @@ public static class KfMaPage {
7778
/**
7879
* 获得文本消息builder.
7980
*/
80-
public static TextBuilder newTextBuilder() {
81-
return new TextBuilder();
81+
public static TextMessageBuilder newTextBuilder() {
82+
return new TextMessageBuilder();
8283
}
8384

8485
/**
8586
* 获得图片消息builder.
8687
*/
87-
public static ImageBuilder newImageBuilder() {
88-
return new ImageBuilder();
88+
public static ImageMessageBuilder newImageBuilder() {
89+
return new ImageMessageBuilder();
8990
}
9091

9192
/**
9293
* 获得图文链接消息builder.
9394
*/
94-
public static LinkBuilder newLinkBuilder() {
95-
return new LinkBuilder();
95+
public static LinkMessageBuilder newLinkBuilder() {
96+
return new LinkMessageBuilder();
97+
}
98+
99+
/**
100+
* 获得图文链接消息builder.
101+
*/
102+
public static MaPageMessageBuilder newMaPageBuilder() {
103+
return new MaPageMessageBuilder();
96104
}
97105

98106
public String toJson() {

weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/ImageBuilder.java renamed to weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/ImageMessageBuilder.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,22 @@
11
package cn.binarywang.wx.miniapp.builder;
22

33
import cn.binarywang.wx.miniapp.bean.WxMaKefuMessage;
4-
import cn.binarywang.wx.miniapp.constant.WxMaConstants;
4+
5+
import static cn.binarywang.wx.miniapp.constant.WxMaConstants.KefuMsgType;
56

67
/**
78
* 图片消息builder.
89
*
910
* @author <a href="https://github.com/binarywang">Binary Wang</a>
1011
*/
11-
public final class ImageBuilder extends BaseBuilder<ImageBuilder> {
12+
public final class ImageMessageBuilder extends BaseBuilder<ImageMessageBuilder> {
1213
private String mediaId;
1314

14-
public ImageBuilder() {
15-
this.msgType = WxMaConstants.KefuMsgType.IMAGE;
15+
public ImageMessageBuilder() {
16+
this.msgType = KefuMsgType.IMAGE;
1617
}
1718

18-
public ImageBuilder mediaId(String mediaId) {
19+
public ImageMessageBuilder mediaId(String mediaId) {
1920
this.mediaId = mediaId;
2021
return this;
2122
}

weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/LinkBuilder.java renamed to weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/LinkMessageBuilder.java

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,39 +1,40 @@
11
package cn.binarywang.wx.miniapp.builder;
22

33
import cn.binarywang.wx.miniapp.bean.WxMaKefuMessage;
4-
import cn.binarywang.wx.miniapp.constant.WxMaConstants;
4+
5+
import static cn.binarywang.wx.miniapp.constant.WxMaConstants.KefuMsgType;
56

67
/**
7-
* 图文链接builder
8+
* 图文链接消息builder
89
*
910
* @author <a href="https://github.com/binarywang">Binary Wang</a>
1011
*/
11-
public class LinkBuilder extends BaseBuilder<LinkBuilder> {
12+
public class LinkMessageBuilder extends BaseBuilder<LinkMessageBuilder> {
1213
private String title;
1314
private String description;
1415
private String url;
1516
private String thumbUrl;
1617

17-
public LinkBuilder() {
18-
this.msgType = WxMaConstants.KefuMsgType.IMAGE;
18+
public LinkMessageBuilder() {
19+
this.msgType = KefuMsgType.LINK;
1920
}
2021

21-
public LinkBuilder title(String title) {
22+
public LinkMessageBuilder title(String title) {
2223
this.title = title;
2324
return this;
2425
}
2526

26-
public LinkBuilder description(String description) {
27+
public LinkMessageBuilder description(String description) {
2728
this.description = description;
2829
return this;
2930
}
3031

31-
public LinkBuilder url(String url) {
32+
public LinkMessageBuilder url(String url) {
3233
this.url = url;
3334
return this;
3435
}
3536

36-
public LinkBuilder thumbUrl(String thumbUrl) {
37+
public LinkMessageBuilder thumbUrl(String thumbUrl) {
3738
this.thumbUrl = thumbUrl;
3839
return this;
3940
}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package cn.binarywang.wx.miniapp.builder;
2+
3+
import cn.binarywang.wx.miniapp.bean.WxMaKefuMessage;
4+
5+
import static cn.binarywang.wx.miniapp.constant.WxMaConstants.KefuMsgType;
6+
7+
/**
8+
* 小程序卡片消息builder
9+
*
10+
* @author <a href="https://github.com/binarywang">Binary Wang</a>
11+
*/
12+
public class MaPageMessageBuilder extends BaseBuilder<MaPageMessageBuilder> {
13+
private String title;
14+
private String pagePath;
15+
private String thumbMediaId;
16+
17+
public MaPageMessageBuilder() {
18+
this.msgType = KefuMsgType.MA_PAGE;
19+
}
20+
21+
public MaPageMessageBuilder title(String title) {
22+
this.title = title;
23+
return this;
24+
}
25+
26+
public MaPageMessageBuilder pagePath(String pagePath) {
27+
this.pagePath = pagePath;
28+
return this;
29+
}
30+
31+
public MaPageMessageBuilder thumbMediaId(String thumbMediaId) {
32+
this.thumbMediaId = thumbMediaId;
33+
return this;
34+
}
35+
36+
@Override
37+
public WxMaKefuMessage build() {
38+
WxMaKefuMessage m = super.build();
39+
m.setMaPage(WxMaKefuMessage.KfMaPage.builder()
40+
.title(this.title)
41+
.pagePath(this.pagePath)
42+
.thumbMediaId(this.thumbMediaId)
43+
.build()
44+
);
45+
return m;
46+
}
47+
}

weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/TextBuilder.java renamed to weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/TextMessageBuilder.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,22 @@
11
package cn.binarywang.wx.miniapp.builder;
22

33
import cn.binarywang.wx.miniapp.bean.WxMaKefuMessage;
4-
import cn.binarywang.wx.miniapp.constant.WxMaConstants;
4+
5+
import static cn.binarywang.wx.miniapp.constant.WxMaConstants.KefuMsgType;
56

67
/**
78
* 文本消息builder.
89
*
910
* @author <a href="https://github.com/binarywang">Binary Wang</a>
1011
*/
11-
public final class TextBuilder extends BaseBuilder<TextBuilder> {
12+
public final class TextMessageBuilder extends BaseBuilder<TextMessageBuilder> {
1213
private String content;
1314

14-
public TextBuilder() {
15-
this.msgType = WxMaConstants.KefuMsgType.TEXT;
15+
public TextMessageBuilder() {
16+
this.msgType = KefuMsgType.TEXT;
1617
}
1718

18-
public TextBuilder content(String content) {
19+
public TextMessageBuilder content(String content) {
1920
this.content = content;
2021
return this;
2122
}

weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/bean/WxMaKefuMessageTest.java

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,9 +37,21 @@ public void testLinkBuilder() {
3737
.thumbUrl("thumbUrl")
3838
.build();
3939
assertThat(reply.toJson())
40-
.isEqualTo( "{\"touser\":\"OPENID\",\"msgtype\":\"image\"," +
40+
.isEqualTo( "{\"touser\":\"OPENID\",\"msgtype\":\"link\"," +
4141
"\"link\":{\"title\":\"title\",\"description\":\"description\",\"url\":\"url\",\"thumb_url\":\"thumbUrl\"}}");
4242
}
4343

44+
public void testMaPageBuilder() {
45+
WxMaKefuMessage reply = WxMaKefuMessage.newMaPageBuilder()
46+
.toUser("OPENID")
47+
.title("title")
48+
.pagePath("pagePath")
49+
.thumbMediaId("thumbMediaId")
50+
.build();
51+
assertThat(reply.toJson())
52+
.isEqualTo( "{\"touser\":\"OPENID\",\"msgtype\":\"miniprogrampage\"," +
53+
"\"miniprogrampage\":{\"title\":\"title\",\"pagepath\":\"pagePath\",\"thumb_media_id\":\"thumbMediaId\"}}");
54+
}
55+
4456

4557
}

0 commit comments

Comments
 (0)