#615 公众号客服消息添加 "发送小程序卡片" 类型

This commit is contained in:
Boris
2018-06-06 11:03:48 +08:00
committed by Binary Wang
parent f704b1a538
commit 96e7310143
5 changed files with 128 additions and 16 deletions

View File

@@ -30,6 +30,8 @@ public class WxMpKefuMessage implements Serializable {
private String kfAccount;
private String cardId;
private String mpNewsMediaId;
private String miniProgramAppId;
private String miniProgramPagePath;
private List<WxArticle> articles = new ArrayList<>();
/**
@@ -88,6 +90,13 @@ public class WxMpKefuMessage implements Serializable {
return new WxCardBuilder();
}
/**
* 小程序卡片
*/
public static MiniProgramPageBuilder MINIPROGRAMPAGE() {
return new MiniProgramPageBuilder();
}
/**
* <pre>
* 请使用
@@ -99,6 +108,7 @@ public class WxMpKefuMessage implements Serializable {
* {@link WxConsts.KefuMsgType#NEWS}
* {@link WxConsts.KefuMsgType#MPNEWS}
* {@link WxConsts.KefuMsgType#WXCARD}
* {@link WxConsts.KefuMsgType#MINIPROGRAMPAGE}
* </pre>
*
*/

View File

@@ -0,0 +1,61 @@
package me.chanjar.weixin.mp.builder.kefu;
import me.chanjar.weixin.common.api.WxConsts.KefuMsgType;
import me.chanjar.weixin.mp.bean.kefu.WxMpKefuMessage;
/**
* 小程序卡片 builder
* <pre>
* 用法:
* WxMpKefuMessage m = WxMpKefuMessage.MINIPROGRAMPAGE().title("xxxx").thumbMediaId("xxxxx").appId("xxxx").pagePath("****").toUser(...).build();
* </pre>
*
* @author boris.bao
*/
public final class MiniProgramPageBuilder extends BaseBuilder<MiniProgramPageBuilder> {
private String title;
private String appId;
private String pagePath;
private String thumbMediaId;
public MiniProgramPageBuilder() {
this.msgType = KefuMsgType.MINIPROGRAMPAGE;
}
public MiniProgramPageBuilder title(String title) {
this.title = title;
return this;
}
public MiniProgramPageBuilder appId(String appId) {
this.appId = appId;
return this;
}
public MiniProgramPageBuilder pagePath(String pagePath) {
this.pagePath = pagePath;
return this;
}
public MiniProgramPageBuilder thumbMediaId(String thumbMediaId) {
this.thumbMediaId = thumbMediaId;
return this;
}
@Override
public WxMpKefuMessage build() {
WxMpKefuMessage m = super.build();
m.setTitle(this.title);
m.setMiniProgramAppId(this.appId);
m.setMiniProgramPagePath(this.pagePath);
m.setThumbMediaId(this.thumbMediaId);
return m;
}
}

View File

@@ -2,6 +2,7 @@ package me.chanjar.weixin.mp.util.json;
import com.google.gson.*;
import me.chanjar.weixin.common.api.WxConsts;
import me.chanjar.weixin.common.api.WxConsts.KefuMsgType;
import me.chanjar.weixin.mp.bean.kefu.WxMpKefuMessage;
import org.apache.commons.lang3.StringUtils;
@@ -79,6 +80,15 @@ public class WxMpKefuMessageGsonAdapter implements JsonSerializer<WxMpKefuMessag
messageJson.add("wxcard", wxcard);
}
if (KefuMsgType.MINIPROGRAMPAGE.equals(message.getMsgType())) {
JsonObject miniProgramPage = new JsonObject();
miniProgramPage.addProperty("title", message.getTitle());
miniProgramPage.addProperty("appid", message.getMiniProgramAppId());
miniProgramPage.addProperty("pagepath", message.getMiniProgramPagePath());
miniProgramPage.addProperty("thumb_media_id", message.getThumbMediaId());
messageJson.add("miniprogrampage", miniProgramPage);
}
if (StringUtils.isNotBlank(message.getKfAccount())) {
JsonObject newsJsonObject = new JsonObject();
newsJsonObject.addProperty("kf_account", message.getKfAccount());