#534 针对公众号发送模版消息中的小程序path和pagepath问题增加可选参数,如果想让请求使用path作为参数名,设置usePath属性为true即可,否则会使用pagepath。

This commit is contained in:
Binary Wang 2018-08-08 21:33:01 +08:00
parent a24b74603f
commit ebf9baac27
6 changed files with 37 additions and 13 deletions

View File

@ -1,14 +1,13 @@
package me.chanjar.weixin.mp.bean.subscribe;
import java.io.Serializable;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import me.chanjar.weixin.mp.bean.template.WxMpTemplateMessage;
import me.chanjar.weixin.mp.util.json.WxMpGsonBuilder;
import java.io.Serializable;
/**
* @author Mklaus
* @date 2018-01-22 下午12:18
@ -78,5 +77,11 @@ public class WxMpSubscribeMessage {
private String appid;
private String pagePath;
/**
* 是否使用path否则使用pagepath.
* 加入此字段是基于微信官方接口变化多端的考虑
*/
private boolean usePath = false;
}
}

View File

@ -77,6 +77,12 @@ public class WxMpTemplateMessage implements Serializable {
private String appid;
private String pagePath;
/**
* 是否使用path否则使用pagepath.
* 加入此字段是基于微信官方接口变化多端的考虑
*/
private boolean usePath = true;
}
}

View File

@ -1,13 +1,13 @@
package me.chanjar.weixin.mp.util.json;
import java.lang.reflect.Type;
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
@ -24,10 +24,15 @@ public class WxMpSubscribeMessageGsonAdapter implements JsonSerializer<WxMpSubsc
messageJson.addProperty("url", message.getUrl());
}
if (message.getMiniProgram() != null) {
final WxMpSubscribeMessage.MiniProgram miniProgram = message.getMiniProgram();
if (miniProgram != null) {
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);
}

View File

@ -9,6 +9,9 @@ import com.google.gson.JsonSerializer;
import me.chanjar.weixin.mp.bean.template.WxMpTemplateData;
import me.chanjar.weixin.mp.bean.template.WxMpTemplateMessage;
/**
* @author chanjarster
*/
public class WxMpTemplateMessageGsonAdapter implements JsonSerializer<WxMpTemplateMessage> {
@Override
@ -20,10 +23,15 @@ public class WxMpTemplateMessageGsonAdapter implements JsonSerializer<WxMpTempla
messageJson.addProperty("url", message.getUrl());
}
if (message.getMiniProgram() != null) {
final WxMpTemplateMessage.MiniProgram miniProgram = message.getMiniProgram();
if (miniProgram != null) {
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);
}

View File

@ -33,7 +33,7 @@ public class WxMpSubscribeMessageTest {
.toUser("OPENID")
.templateId("TEMPLATE_ID")
.url("URL")
.miniProgram(new WxMpSubscribeMessage.MiniProgram("xiaochengxuappid12345", "index?foo=bar"))
.miniProgram(new WxMpSubscribeMessage.MiniProgram("xiaochengxuappid12345", "index?foo=bar",false))
.scene("SCENE")
.title("TITLE")
.contentValue("VALUE")

View File

@ -17,7 +17,7 @@ public class WxMpTemplateMessageTest {
WxMpTemplateMessage tm = WxMpTemplateMessage.builder()
.toUser("OPENID")
.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")
.build();