@@ -1,14 +1,13 @@ | |||||
package me.chanjar.weixin.mp.bean.subscribe; | package me.chanjar.weixin.mp.bean.subscribe; | ||||
import java.io.Serializable; | |||||
import lombok.AllArgsConstructor; | import lombok.AllArgsConstructor; | ||||
import lombok.Builder; | import lombok.Builder; | ||||
import lombok.Data; | import lombok.Data; | ||||
import lombok.NoArgsConstructor; | import lombok.NoArgsConstructor; | ||||
import me.chanjar.weixin.mp.bean.template.WxMpTemplateMessage; | |||||
import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; | import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder; | ||||
import java.io.Serializable; | |||||
/** | /** | ||||
* @author Mklaus | * @author Mklaus | ||||
* @date 2018-01-22 下午12:18 | * @date 2018-01-22 下午12:18 | ||||
@@ -78,5 +77,11 @@ public class WxMpSubscribeMessage { | |||||
private String appid; | private String appid; | ||||
private String pagePath; | private String pagePath; | ||||
/** | |||||
* 是否使用path,否则使用pagepath. | |||||
* 加入此字段是基于微信官方接口变化多端的考虑 | |||||
*/ | |||||
private boolean usePath = false; | |||||
} | } | ||||
} | } |
@@ -77,6 +77,12 @@ public class WxMpTemplateMessage implements Serializable { | |||||
private String appid; | private String appid; | ||||
private String pagePath; | private String pagePath; | ||||
/** | |||||
* 是否使用path,否则使用pagepath. | |||||
* 加入此字段是基于微信官方接口变化多端的考虑 | |||||
*/ | |||||
private boolean usePath = true; | |||||
} | } | ||||
} | } |
@@ -1,13 +1,13 @@ | |||||
package me.chanjar.weixin.mp.util.json; | package me.chanjar.weixin.mp.util.json; | ||||
import java.lang.reflect.Type; | |||||
import com.google.gson.JsonElement; | import com.google.gson.JsonElement; | ||||
import com.google.gson.JsonObject; | import com.google.gson.JsonObject; | ||||
import com.google.gson.JsonSerializationContext; | import com.google.gson.JsonSerializationContext; | ||||
import com.google.gson.JsonSerializer; | import com.google.gson.JsonSerializer; | ||||
import me.chanjar.weixin.mp.bean.subscribe.WxMpSubscribeMessage; | import me.chanjar.weixin.mp.bean.subscribe.WxMpSubscribeMessage; | ||||
import java.lang.reflect.Type; | |||||
/** | /** | ||||
* @author Mklaus | * @author Mklaus | ||||
* @date 2018-01-22 下午12:31 | * @date 2018-01-22 下午12:31 | ||||
@@ -24,10 +24,15 @@ public class WxMpSubscribeMessageGsonAdapter implements JsonSerializer<WxMpSubsc | |||||
messageJson.addProperty("url", message.getUrl()); | messageJson.addProperty("url", message.getUrl()); | ||||
} | } | ||||
if (message.getMiniProgram() != null) { | |||||
final WxMpSubscribeMessage.MiniProgram miniProgram = message.getMiniProgram(); | |||||
if (miniProgram != null) { | |||||
JsonObject miniProgramJson = new JsonObject(); | JsonObject miniProgramJson = new JsonObject(); | ||||
miniProgramJson.addProperty("appid", message.getMiniProgram().getAppid()); | |||||
miniProgramJson.addProperty("pagepath", message.getMiniProgram().getPagePath()); | |||||
miniProgramJson.addProperty("appid", miniProgram.getAppid()); | |||||
if (miniProgram.isUsePath()) { | |||||
miniProgramJson.addProperty("path", miniProgram.getPagePath()); | |||||
} else { | |||||
miniProgramJson.addProperty("pagepath", miniProgram.getPagePath()); | |||||
} | |||||
messageJson.add("miniprogram", miniProgramJson); | messageJson.add("miniprogram", miniProgramJson); | ||||
} | } | ||||
@@ -9,6 +9,9 @@ import com.google.gson.JsonSerializer; | |||||
import me.chanjar.weixin.mp.bean.template.WxMpTemplateData; | import me.chanjar.weixin.mp.bean.template.WxMpTemplateData; | ||||
import me.chanjar.weixin.mp.bean.template.WxMpTemplateMessage; | import me.chanjar.weixin.mp.bean.template.WxMpTemplateMessage; | ||||
/** | |||||
* @author chanjarster | |||||
*/ | |||||
public class WxMpTemplateMessageGsonAdapter implements JsonSerializer<WxMpTemplateMessage> { | public class WxMpTemplateMessageGsonAdapter implements JsonSerializer<WxMpTemplateMessage> { | ||||
@Override | @Override | ||||
@@ -20,10 +23,15 @@ public class WxMpTemplateMessageGsonAdapter implements JsonSerializer<WxMpTempla | |||||
messageJson.addProperty("url", message.getUrl()); | messageJson.addProperty("url", message.getUrl()); | ||||
} | } | ||||
if (message.getMiniProgram() != null) { | |||||
final WxMpTemplateMessage.MiniProgram miniProgram = message.getMiniProgram(); | |||||
if (miniProgram != null) { | |||||
JsonObject miniProgramJson = new JsonObject(); | JsonObject miniProgramJson = new JsonObject(); | ||||
miniProgramJson.addProperty("appid", message.getMiniProgram().getAppid()); | |||||
miniProgramJson.addProperty("pagepath", message.getMiniProgram().getPagePath()); | |||||
miniProgramJson.addProperty("appid", miniProgram.getAppid()); | |||||
if (miniProgram.isUsePath()) { | |||||
miniProgramJson.addProperty("path", miniProgram.getPagePath()); | |||||
} else { | |||||
miniProgramJson.addProperty("pagepath", miniProgram.getPagePath()); | |||||
} | |||||
messageJson.add("miniprogram", miniProgramJson); | messageJson.add("miniprogram", miniProgramJson); | ||||
} | } | ||||
@@ -33,7 +33,7 @@ public class WxMpSubscribeMessageTest { | |||||
.toUser("OPENID") | .toUser("OPENID") | ||||
.templateId("TEMPLATE_ID") | .templateId("TEMPLATE_ID") | ||||
.url("URL") | .url("URL") | ||||
.miniProgram(new WxMpSubscribeMessage.MiniProgram("xiaochengxuappid12345", "index?foo=bar")) | |||||
.miniProgram(new WxMpSubscribeMessage.MiniProgram("xiaochengxuappid12345", "index?foo=bar",false)) | |||||
.scene("SCENE") | .scene("SCENE") | ||||
.title("TITLE") | .title("TITLE") | ||||
.contentValue("VALUE") | .contentValue("VALUE") | ||||
@@ -17,7 +17,7 @@ public class WxMpTemplateMessageTest { | |||||
WxMpTemplateMessage tm = WxMpTemplateMessage.builder() | WxMpTemplateMessage tm = WxMpTemplateMessage.builder() | ||||
.toUser("OPENID") | .toUser("OPENID") | ||||
.templateId("ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY") | .templateId("ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY") | ||||
.miniProgram(new WxMpTemplateMessage.MiniProgram("xiaochengxuappid12345", "index?foo=bar")) | |||||
.miniProgram(new WxMpTemplateMessage.MiniProgram("xiaochengxuappid12345", "index?foo=bar",true)) | |||||
.url("http://weixin.qq.com/download") | .url("http://weixin.qq.com/download") | ||||
.build(); | .build(); | ||||