mirror of
https://gitee.com/binary/weixin-java-tools.git
synced 2026-03-10 00:13:40 +08:00
#760 小程序增加统一服务消息接口
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package cn.binarywang.wx.miniapp.util.json;
|
||||
|
||||
import cn.binarywang.wx.miniapp.bean.WxMaTemplateMessage;
|
||||
import cn.binarywang.wx.miniapp.bean.WxMaUniformMessage;
|
||||
import cn.binarywang.wx.miniapp.bean.analysis.WxMaRetainInfo;
|
||||
import cn.binarywang.wx.miniapp.bean.analysis.WxMaUserPortrait;
|
||||
import cn.binarywang.wx.miniapp.bean.analysis.WxMaVisitDistribution;
|
||||
@@ -18,6 +19,7 @@ public class WxMaGsonBuilder {
|
||||
static {
|
||||
INSTANCE.disableHtmlEscaping();
|
||||
INSTANCE.registerTypeAdapter(WxMaTemplateMessage.class, new WxMaTemplateMessageGsonAdapter());
|
||||
INSTANCE.registerTypeAdapter(WxMaUniformMessage.class, new WxMaUniformMessageGsonAdapter());
|
||||
INSTANCE.registerTypeAdapter(WxMaCodeCommitRequest.class, new WxMaCodeCommitRequestGsonAdapter());
|
||||
INSTANCE.registerTypeAdapter(WxMaCodeVersionDistribution.class, new WxMaCodeVersionDistributionGsonAdapter());
|
||||
INSTANCE.registerTypeAdapter(WxMaVisitDistribution.class, new WxMaVisitDistributionGsonAdapter());
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
package cn.binarywang.wx.miniapp.util.json;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
|
||||
import cn.binarywang.wx.miniapp.bean.WxMaTemplateData;
|
||||
import cn.binarywang.wx.miniapp.bean.WxMaTemplateMessage;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonSerializationContext;
|
||||
import com.google.gson.JsonSerializer;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
|
||||
/**
|
||||
* @author <a href="https://github.com/binarywang">Binary Wang</a>
|
||||
*/
|
||||
@@ -26,10 +27,6 @@ public class WxMaTemplateMessageGsonAdapter implements JsonSerializer<WxMaTempla
|
||||
messageJson.addProperty("form_id", message.getFormId());
|
||||
}
|
||||
|
||||
if (message.getPage() != null) {
|
||||
messageJson.addProperty("page", message.getPage());
|
||||
}
|
||||
|
||||
if (message.getColor() != null) {
|
||||
messageJson.addProperty("color", message.getColor());
|
||||
}
|
||||
@@ -45,7 +42,7 @@ public class WxMaTemplateMessageGsonAdapter implements JsonSerializer<WxMaTempla
|
||||
return messageJson;
|
||||
}
|
||||
|
||||
for (WxMaTemplateMessage.Data datum : message.getData()) {
|
||||
for (WxMaTemplateData datum : message.getData()) {
|
||||
JsonObject dataJson = new JsonObject();
|
||||
dataJson.addProperty("value", datum.getValue());
|
||||
if (datum.getColor() != null) {
|
||||
|
||||
@@ -0,0 +1,98 @@
|
||||
package cn.binarywang.wx.miniapp.util.json;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
|
||||
import cn.binarywang.wx.miniapp.bean.WxMaTemplateData;
|
||||
import cn.binarywang.wx.miniapp.bean.WxMaUniformMessage;
|
||||
import com.google.gson.JsonElement;
|
||||
import com.google.gson.JsonObject;
|
||||
import com.google.gson.JsonSerializationContext;
|
||||
import com.google.gson.JsonSerializer;
|
||||
|
||||
/**
|
||||
* @author <a href="https://github.com/binarywang">Binary Wang</a>
|
||||
*/
|
||||
public class WxMaUniformMessageGsonAdapter implements JsonSerializer<WxMaUniformMessage> {
|
||||
|
||||
@Override
|
||||
public JsonElement serialize(WxMaUniformMessage message, Type typeOfSrc, JsonSerializationContext context) {
|
||||
JsonObject messageJson = new JsonObject();
|
||||
messageJson.addProperty("touser", message.getToUser());
|
||||
if (message.isMpTemplateMsg()) {
|
||||
JsonObject msg = new JsonObject();
|
||||
if (message.getAppid() != null) {
|
||||
msg.addProperty("appid", message.getAppid());
|
||||
}
|
||||
|
||||
msg.addProperty("template_id", message.getTemplateId());
|
||||
|
||||
if (message.getUrl() != null) {
|
||||
msg.addProperty("url", message.getUrl());
|
||||
}
|
||||
|
||||
final WxMaUniformMessage.MiniProgram miniProgram = message.getMiniProgram();
|
||||
if (miniProgram != null) {
|
||||
JsonObject miniProgramJson = new JsonObject();
|
||||
miniProgramJson.addProperty("appid", miniProgram.getAppid());
|
||||
if (miniProgram.isUsePath()) {
|
||||
miniProgramJson.addProperty("path", miniProgram.getPagePath());
|
||||
} else {
|
||||
miniProgramJson.addProperty("pagepath", miniProgram.getPagePath());
|
||||
}
|
||||
msg.add("miniprogram", miniProgramJson);
|
||||
}
|
||||
|
||||
if (message.getData() != null) {
|
||||
JsonObject data = new JsonObject();
|
||||
for (WxMaTemplateData templateData : message.getData()) {
|
||||
JsonObject dataJson = new JsonObject();
|
||||
dataJson.addProperty("value", templateData.getValue());
|
||||
if (templateData.getColor() != null) {
|
||||
dataJson.addProperty("color", templateData.getColor());
|
||||
}
|
||||
data.add(templateData.getName(), dataJson);
|
||||
}
|
||||
msg.add("data", data);
|
||||
}
|
||||
|
||||
|
||||
messageJson.add("mp_template_msg", msg);
|
||||
return messageJson;
|
||||
}
|
||||
|
||||
//小程序模版消息
|
||||
JsonObject msg = new JsonObject();
|
||||
msg.addProperty("template_id", message.getTemplateId());
|
||||
|
||||
if (message.getPage() != null) {
|
||||
msg.addProperty("page", message.getPage());
|
||||
}
|
||||
|
||||
if (message.getFormId() != null) {
|
||||
msg.addProperty("form_id", message.getFormId());
|
||||
}
|
||||
|
||||
JsonObject data = new JsonObject();
|
||||
msg.add("data", data);
|
||||
|
||||
if (message.getData() != null) {
|
||||
for (WxMaTemplateData templateData : message.getData()) {
|
||||
JsonObject dataJson = new JsonObject();
|
||||
dataJson.addProperty("value", templateData.getValue());
|
||||
if (templateData.getColor() != null) {
|
||||
dataJson.addProperty("color", templateData.getColor());
|
||||
}
|
||||
data.add(templateData.getName(), dataJson);
|
||||
}
|
||||
}
|
||||
|
||||
if (message.getEmphasisKeyword() != null) {
|
||||
msg.addProperty("emphasis_keyword", message.getEmphasisKeyword());
|
||||
}
|
||||
|
||||
messageJson.add("weapp_template_msg", msg);
|
||||
|
||||
return messageJson;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user