mirror of
				https://gitee.com/binary/weixin-java-tools.git
				synced 2025-10-31 18:46:10 +08:00 
			
		
		
		
	#534 针对公众号发送模版消息中的小程序path和pagepath问题增加可选参数,如果想让请求使用path作为参数名,设置usePath属性为true即可,否则会使用pagepath。
This commit is contained in:
		| @ -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("appid", miniProgram.getAppid()); | ||||||
|       miniProgramJson.addProperty("pagepath", message.getMiniProgram().getPagePath()); |       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("appid", miniProgram.getAppid()); | ||||||
|       miniProgramJson.addProperty("pagepath", message.getMiniProgram().getPagePath()); |       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(); | ||||||
|  |  | ||||||
|  | |||||||
		Reference in New Issue
	
	Block a user
	 Binary Wang
					Binary Wang