#436 添加一次性订阅消息接口

This commit is contained in:
Mklaus
2018-01-23 10:23:29 +08:00
committed by Binary Wang
parent be50ea009c
commit f2b05480b5
14 changed files with 336 additions and 2 deletions

View File

@@ -10,6 +10,7 @@ import me.chanjar.weixin.mp.bean.membercard.WxMpMemberCardUpdateResult;
import me.chanjar.weixin.mp.bean.membercard.WxMpMemberCardUserInfoResult;
import me.chanjar.weixin.mp.bean.material.*;
import me.chanjar.weixin.mp.bean.result.*;
import me.chanjar.weixin.mp.bean.subscribe.WxMpSubscribeMessage;
import me.chanjar.weixin.mp.bean.template.WxMpTemplateIndustry;
import me.chanjar.weixin.mp.bean.template.WxMpTemplateMessage;
@@ -30,6 +31,7 @@ public class WxMpGsonBuilder {
INSTANCE.registerTypeAdapter(WxMpMassUploadResult.class, new WxMpMassUploadResultAdapter());
INSTANCE.registerTypeAdapter(WxMpQrCodeTicket.class, new WxQrCodeTicketAdapter());
INSTANCE.registerTypeAdapter(WxMpTemplateMessage.class, new WxMpTemplateMessageGsonAdapter());
INSTANCE.registerTypeAdapter(WxMpSubscribeMessage.class, new WxMpSubscribeMessageGsonAdapter());
INSTANCE.registerTypeAdapter(WxMpSemanticQueryResult.class, new WxMpSemanticQueryResultAdapter());
INSTANCE.registerTypeAdapter(WxMpOAuth2AccessToken.class, new WxMpOAuth2AccessTokenAdapter());
INSTANCE.registerTypeAdapter(WxDataCubeUserSummary.class, new WxMpUserSummaryGsonAdapter());

View File

@@ -0,0 +1,54 @@
package me.chanjar.weixin.mp.util.json;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;
import me.chanjar.weixin.mp.bean.subscribe.WxMpSubscribeMessage;
import java.lang.reflect.Type;
/**
* @author Mklaus
* @date 2018-01-22 下午12:31
*/
public class WxMpSubscribeMessageGsonAdapter implements JsonSerializer<WxMpSubscribeMessage> {
@Override
public JsonElement serialize(WxMpSubscribeMessage message, Type type, JsonSerializationContext jsonSerializationContext) {
JsonObject messageJson = new JsonObject();
messageJson.addProperty("touser", message.getToUser());
messageJson.addProperty("template_id", message.getTemplateId());
if (message.getUrl() != null) {
messageJson.addProperty("url", message.getUrl());
}
if (message.getMiniProgram() != null) {
JsonObject miniProgramJson = new JsonObject();
miniProgramJson.addProperty("appid", message.getMiniProgram().getAppid());
miniProgramJson.addProperty("pagepath", message.getMiniProgram().getPagePath());
messageJson.add("miniprogram", miniProgramJson);
}
messageJson.addProperty("scene", message.getScene());
messageJson.addProperty("title", message.getTitle());
JsonObject data = new JsonObject();
messageJson.add("data", data);
JsonObject content = new JsonObject();
data.add("content", content);
if (message.getContentValue() != null) {
content.addProperty("value", message.getContentValue());
}
if (message.getContentColor() != null) {
content.addProperty("color", message.getContentColor());
}
return messageJson;
}
}