diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/WxMaKefuMessage.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/WxMaKefuMessage.java
index 268e579b..85fece8b 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/WxMaKefuMessage.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/bean/WxMaKefuMessage.java
@@ -1,8 +1,9 @@
package cn.binarywang.wx.miniapp.bean;
-import cn.binarywang.wx.miniapp.builder.ImageBuilder;
-import cn.binarywang.wx.miniapp.builder.LinkBuilder;
-import cn.binarywang.wx.miniapp.builder.TextBuilder;
+import cn.binarywang.wx.miniapp.builder.ImageMessageBuilder;
+import cn.binarywang.wx.miniapp.builder.LinkMessageBuilder;
+import cn.binarywang.wx.miniapp.builder.MaPageMessageBuilder;
+import cn.binarywang.wx.miniapp.builder.TextMessageBuilder;
import com.google.gson.GsonBuilder;
import com.google.gson.annotations.SerializedName;
import lombok.AllArgsConstructor;
@@ -77,22 +78,29 @@ public class WxMaKefuMessage implements Serializable {
/**
* 获得文本消息builder.
*/
- public static TextBuilder newTextBuilder() {
- return new TextBuilder();
+ public static TextMessageBuilder newTextBuilder() {
+ return new TextMessageBuilder();
}
/**
* 获得图片消息builder.
*/
- public static ImageBuilder newImageBuilder() {
- return new ImageBuilder();
+ public static ImageMessageBuilder newImageBuilder() {
+ return new ImageMessageBuilder();
}
/**
* 获得图文链接消息builder.
*/
- public static LinkBuilder newLinkBuilder() {
- return new LinkBuilder();
+ public static LinkMessageBuilder newLinkBuilder() {
+ return new LinkMessageBuilder();
+ }
+
+ /**
+ * 获得图文链接消息builder.
+ */
+ public static MaPageMessageBuilder newMaPageBuilder() {
+ return new MaPageMessageBuilder();
}
public String toJson() {
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/ImageBuilder.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/ImageMessageBuilder.java
similarity index 61%
rename from weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/ImageBuilder.java
rename to weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/ImageMessageBuilder.java
index 659028e9..bcd2290f 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/ImageBuilder.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/ImageMessageBuilder.java
@@ -1,21 +1,22 @@
package cn.binarywang.wx.miniapp.builder;
import cn.binarywang.wx.miniapp.bean.WxMaKefuMessage;
-import cn.binarywang.wx.miniapp.constant.WxMaConstants;
+
+import static cn.binarywang.wx.miniapp.constant.WxMaConstants.KefuMsgType;
/**
* 图片消息builder.
*
* @author Binary Wang
*/
-public final class ImageBuilder extends BaseBuilder {
+public final class ImageMessageBuilder extends BaseBuilder {
private String mediaId;
- public ImageBuilder() {
- this.msgType = WxMaConstants.KefuMsgType.IMAGE;
+ public ImageMessageBuilder() {
+ this.msgType = KefuMsgType.IMAGE;
}
- public ImageBuilder mediaId(String mediaId) {
+ public ImageMessageBuilder mediaId(String mediaId) {
this.mediaId = mediaId;
return this;
}
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/LinkBuilder.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/LinkMessageBuilder.java
similarity index 62%
rename from weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/LinkBuilder.java
rename to weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/LinkMessageBuilder.java
index 3f3a7fd5..f4927e16 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/LinkBuilder.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/LinkMessageBuilder.java
@@ -1,39 +1,40 @@
package cn.binarywang.wx.miniapp.builder;
import cn.binarywang.wx.miniapp.bean.WxMaKefuMessage;
-import cn.binarywang.wx.miniapp.constant.WxMaConstants;
+
+import static cn.binarywang.wx.miniapp.constant.WxMaConstants.KefuMsgType;
/**
- * 图文链接builder
+ * 图文链接消息builder
*
* @author Binary Wang
*/
-public class LinkBuilder extends BaseBuilder {
+public class LinkMessageBuilder extends BaseBuilder {
private String title;
private String description;
private String url;
private String thumbUrl;
- public LinkBuilder() {
- this.msgType = WxMaConstants.KefuMsgType.IMAGE;
+ public LinkMessageBuilder() {
+ this.msgType = KefuMsgType.LINK;
}
- public LinkBuilder title(String title) {
+ public LinkMessageBuilder title(String title) {
this.title = title;
return this;
}
- public LinkBuilder description(String description) {
+ public LinkMessageBuilder description(String description) {
this.description = description;
return this;
}
- public LinkBuilder url(String url) {
+ public LinkMessageBuilder url(String url) {
this.url = url;
return this;
}
- public LinkBuilder thumbUrl(String thumbUrl) {
+ public LinkMessageBuilder thumbUrl(String thumbUrl) {
this.thumbUrl = thumbUrl;
return this;
}
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/MaPageMessageBuilder.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/MaPageMessageBuilder.java
new file mode 100644
index 00000000..238a6014
--- /dev/null
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/MaPageMessageBuilder.java
@@ -0,0 +1,47 @@
+package cn.binarywang.wx.miniapp.builder;
+
+import cn.binarywang.wx.miniapp.bean.WxMaKefuMessage;
+
+import static cn.binarywang.wx.miniapp.constant.WxMaConstants.KefuMsgType;
+
+/**
+ * 小程序卡片消息builder
+ *
+ * @author Binary Wang
+ */
+public class MaPageMessageBuilder extends BaseBuilder {
+ private String title;
+ private String pagePath;
+ private String thumbMediaId;
+
+ public MaPageMessageBuilder() {
+ this.msgType = KefuMsgType.MA_PAGE;
+ }
+
+ public MaPageMessageBuilder title(String title) {
+ this.title = title;
+ return this;
+ }
+
+ public MaPageMessageBuilder pagePath(String pagePath) {
+ this.pagePath = pagePath;
+ return this;
+ }
+
+ public MaPageMessageBuilder thumbMediaId(String thumbMediaId) {
+ this.thumbMediaId = thumbMediaId;
+ return this;
+ }
+
+ @Override
+ public WxMaKefuMessage build() {
+ WxMaKefuMessage m = super.build();
+ m.setMaPage(WxMaKefuMessage.KfMaPage.builder()
+ .title(this.title)
+ .pagePath(this.pagePath)
+ .thumbMediaId(this.thumbMediaId)
+ .build()
+ );
+ return m;
+ }
+}
diff --git a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/TextBuilder.java b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/TextMessageBuilder.java
similarity index 61%
rename from weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/TextBuilder.java
rename to weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/TextMessageBuilder.java
index 67d0f37a..d0da3257 100644
--- a/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/TextBuilder.java
+++ b/weixin-java-miniapp/src/main/java/cn/binarywang/wx/miniapp/builder/TextMessageBuilder.java
@@ -1,21 +1,22 @@
package cn.binarywang.wx.miniapp.builder;
import cn.binarywang.wx.miniapp.bean.WxMaKefuMessage;
-import cn.binarywang.wx.miniapp.constant.WxMaConstants;
+
+import static cn.binarywang.wx.miniapp.constant.WxMaConstants.KefuMsgType;
/**
* 文本消息builder.
*
* @author Binary Wang
*/
-public final class TextBuilder extends BaseBuilder {
+public final class TextMessageBuilder extends BaseBuilder {
private String content;
- public TextBuilder() {
- this.msgType = WxMaConstants.KefuMsgType.TEXT;
+ public TextMessageBuilder() {
+ this.msgType = KefuMsgType.TEXT;
}
- public TextBuilder content(String content) {
+ public TextMessageBuilder content(String content) {
this.content = content;
return this;
}
diff --git a/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/bean/WxMaKefuMessageTest.java b/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/bean/WxMaKefuMessageTest.java
index c8c4f2ac..d32dfca7 100644
--- a/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/bean/WxMaKefuMessageTest.java
+++ b/weixin-java-miniapp/src/test/java/cn/binarywang/wx/miniapp/bean/WxMaKefuMessageTest.java
@@ -37,9 +37,21 @@ public class WxMaKefuMessageTest {
.thumbUrl("thumbUrl")
.build();
assertThat(reply.toJson())
- .isEqualTo( "{\"touser\":\"OPENID\",\"msgtype\":\"image\"," +
+ .isEqualTo( "{\"touser\":\"OPENID\",\"msgtype\":\"link\"," +
"\"link\":{\"title\":\"title\",\"description\":\"description\",\"url\":\"url\",\"thumb_url\":\"thumbUrl\"}}");
}
+ public void testMaPageBuilder() {
+ WxMaKefuMessage reply = WxMaKefuMessage.newMaPageBuilder()
+ .toUser("OPENID")
+ .title("title")
+ .pagePath("pagePath")
+ .thumbMediaId("thumbMediaId")
+ .build();
+ assertThat(reply.toJson())
+ .isEqualTo( "{\"touser\":\"OPENID\",\"msgtype\":\"miniprogrampage\"," +
+ "\"miniprogrampage\":{\"title\":\"title\",\"pagepath\":\"pagePath\",\"thumb_media_id\":\"thumbMediaId\"}}");
+ }
+
}