公众号客服消息添加 "发送小程序卡片" 类型 by borisbao · Pull Request #615 · binarywang/WxJava · GitHub
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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<>();

/**
Expand Down Expand Up @@ -88,6 +90,13 @@ public static WxCardBuilder WXCARD() {
return new WxCardBuilder();
}

/**
* 小程序卡片
*/
public static MiniProgramPageBuilder MINIPROGRAMPAGE() {
return new MiniProgramPageBuilder();
}

/**
* <pre>
* 请使用
Expand All @@ -99,6 +108,7 @@ public static WxCardBuilder WXCARD() {
* {@link WxConsts.KefuMsgType#NEWS}
* {@link WxConsts.KefuMsgType#MPNEWS}
* {@link WxConsts.KefuMsgType#WXCARD}
* {@link WxConsts.KefuMsgType#MINIPROGRAMPAGE}
* </pre>
*
*/
Expand Down
Original file line number Diff line number Diff line change
@@ -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;
}


}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

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;

Expand Down Expand Up @@ -79,6 +80,15 @@ public JsonElement serialize(WxMpKefuMessage message, Type typeOfSrc, JsonSerial
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());
Expand Down