mirror of
https://gitee.com/binary/weixin-java-tools.git
synced 2025-08-25 01:14:36 +08:00
#425 小程序客服消息新增小程序卡片消息支持
This commit is contained in:
parent
a687d00d4a
commit
2eb3fc5ed1
@ -1,8 +1,9 @@
|
|||||||
package cn.binarywang.wx.miniapp.bean;
|
package cn.binarywang.wx.miniapp.bean;
|
||||||
|
|
||||||
import cn.binarywang.wx.miniapp.builder.ImageBuilder;
|
import cn.binarywang.wx.miniapp.builder.ImageMessageBuilder;
|
||||||
import cn.binarywang.wx.miniapp.builder.LinkBuilder;
|
import cn.binarywang.wx.miniapp.builder.LinkMessageBuilder;
|
||||||
import cn.binarywang.wx.miniapp.builder.TextBuilder;
|
import cn.binarywang.wx.miniapp.builder.MaPageMessageBuilder;
|
||||||
|
import cn.binarywang.wx.miniapp.builder.TextMessageBuilder;
|
||||||
import com.google.gson.GsonBuilder;
|
import com.google.gson.GsonBuilder;
|
||||||
import com.google.gson.annotations.SerializedName;
|
import com.google.gson.annotations.SerializedName;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
@ -77,22 +78,29 @@ public class WxMaKefuMessage implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 获得文本消息builder.
|
* 获得文本消息builder.
|
||||||
*/
|
*/
|
||||||
public static TextBuilder newTextBuilder() {
|
public static TextMessageBuilder newTextBuilder() {
|
||||||
return new TextBuilder();
|
return new TextMessageBuilder();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获得图片消息builder.
|
* 获得图片消息builder.
|
||||||
*/
|
*/
|
||||||
public static ImageBuilder newImageBuilder() {
|
public static ImageMessageBuilder newImageBuilder() {
|
||||||
return new ImageBuilder();
|
return new ImageMessageBuilder();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获得图文链接消息builder.
|
* 获得图文链接消息builder.
|
||||||
*/
|
*/
|
||||||
public static LinkBuilder newLinkBuilder() {
|
public static LinkMessageBuilder newLinkBuilder() {
|
||||||
return new LinkBuilder();
|
return new LinkMessageBuilder();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得图文链接消息builder.
|
||||||
|
*/
|
||||||
|
public static MaPageMessageBuilder newMaPageBuilder() {
|
||||||
|
return new MaPageMessageBuilder();
|
||||||
}
|
}
|
||||||
|
|
||||||
public String toJson() {
|
public String toJson() {
|
||||||
|
@ -1,21 +1,22 @@
|
|||||||
package cn.binarywang.wx.miniapp.builder;
|
package cn.binarywang.wx.miniapp.builder;
|
||||||
|
|
||||||
import cn.binarywang.wx.miniapp.bean.WxMaKefuMessage;
|
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 <a href="https://github.com/binarywang">Binary Wang</a>
|
* @author <a href="https://github.com/binarywang">Binary Wang</a>
|
||||||
*/
|
*/
|
||||||
public final class ImageBuilder extends BaseBuilder<ImageBuilder> {
|
public final class ImageMessageBuilder extends BaseBuilder<ImageMessageBuilder> {
|
||||||
private String mediaId;
|
private String mediaId;
|
||||||
|
|
||||||
public ImageBuilder() {
|
public ImageMessageBuilder() {
|
||||||
this.msgType = WxMaConstants.KefuMsgType.IMAGE;
|
this.msgType = KefuMsgType.IMAGE;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ImageBuilder mediaId(String mediaId) {
|
public ImageMessageBuilder mediaId(String mediaId) {
|
||||||
this.mediaId = mediaId;
|
this.mediaId = mediaId;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
@ -1,39 +1,40 @@
|
|||||||
package cn.binarywang.wx.miniapp.builder;
|
package cn.binarywang.wx.miniapp.builder;
|
||||||
|
|
||||||
import cn.binarywang.wx.miniapp.bean.WxMaKefuMessage;
|
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 <a href="https://github.com/binarywang">Binary Wang</a>
|
* @author <a href="https://github.com/binarywang">Binary Wang</a>
|
||||||
*/
|
*/
|
||||||
public class LinkBuilder extends BaseBuilder<LinkBuilder> {
|
public class LinkMessageBuilder extends BaseBuilder<LinkMessageBuilder> {
|
||||||
private String title;
|
private String title;
|
||||||
private String description;
|
private String description;
|
||||||
private String url;
|
private String url;
|
||||||
private String thumbUrl;
|
private String thumbUrl;
|
||||||
|
|
||||||
public LinkBuilder() {
|
public LinkMessageBuilder() {
|
||||||
this.msgType = WxMaConstants.KefuMsgType.IMAGE;
|
this.msgType = KefuMsgType.LINK;
|
||||||
}
|
}
|
||||||
|
|
||||||
public LinkBuilder title(String title) {
|
public LinkMessageBuilder title(String title) {
|
||||||
this.title = title;
|
this.title = title;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public LinkBuilder description(String description) {
|
public LinkMessageBuilder description(String description) {
|
||||||
this.description = description;
|
this.description = description;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public LinkBuilder url(String url) {
|
public LinkMessageBuilder url(String url) {
|
||||||
this.url = url;
|
this.url = url;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public LinkBuilder thumbUrl(String thumbUrl) {
|
public LinkMessageBuilder thumbUrl(String thumbUrl) {
|
||||||
this.thumbUrl = thumbUrl;
|
this.thumbUrl = thumbUrl;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
@ -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 <a href="https://github.com/binarywang">Binary Wang</a>
|
||||||
|
*/
|
||||||
|
public class MaPageMessageBuilder extends BaseBuilder<MaPageMessageBuilder> {
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
@ -1,21 +1,22 @@
|
|||||||
package cn.binarywang.wx.miniapp.builder;
|
package cn.binarywang.wx.miniapp.builder;
|
||||||
|
|
||||||
import cn.binarywang.wx.miniapp.bean.WxMaKefuMessage;
|
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 <a href="https://github.com/binarywang">Binary Wang</a>
|
* @author <a href="https://github.com/binarywang">Binary Wang</a>
|
||||||
*/
|
*/
|
||||||
public final class TextBuilder extends BaseBuilder<TextBuilder> {
|
public final class TextMessageBuilder extends BaseBuilder<TextMessageBuilder> {
|
||||||
private String content;
|
private String content;
|
||||||
|
|
||||||
public TextBuilder() {
|
public TextMessageBuilder() {
|
||||||
this.msgType = WxMaConstants.KefuMsgType.TEXT;
|
this.msgType = KefuMsgType.TEXT;
|
||||||
}
|
}
|
||||||
|
|
||||||
public TextBuilder content(String content) {
|
public TextMessageBuilder content(String content) {
|
||||||
this.content = content;
|
this.content = content;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
@ -37,9 +37,21 @@ public class WxMaKefuMessageTest {
|
|||||||
.thumbUrl("thumbUrl")
|
.thumbUrl("thumbUrl")
|
||||||
.build();
|
.build();
|
||||||
assertThat(reply.toJson())
|
assertThat(reply.toJson())
|
||||||
.isEqualTo( "{\"touser\":\"OPENID\",\"msgtype\":\"image\"," +
|
.isEqualTo( "{\"touser\":\"OPENID\",\"msgtype\":\"link\"," +
|
||||||
"\"link\":{\"title\":\"title\",\"description\":\"description\",\"url\":\"url\",\"thumb_url\":\"thumbUrl\"}}");
|
"\"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\"}}");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user