使用的工具类jar是:com.github.binarywang:weixin-java-open
WxMpTemplateMessage.MiniProgram miniProgram = new WxMpTemplateMessage.MiniProgram();
if(form.getMiniProgramForm() != null){
miniProgram = new WxMpTemplateMessage.MiniProgram(
form.getMiniProgramForm().getAppId(),
form.getMiniProgramForm().getPagePath(),
form.getMiniProgramForm().getUsePath());
}
WxMpTemplateMessage message = WxMpTemplateMessage.builder()
.templateId(form.getTemplateId())
.toUser(mpUser.getOpenId())
.url(form.getUrl())
.miniProgram(miniProgram)
.data(form.getData().stream().map(templateMessageData -> {
WxMpTemplateData data = new WxMpTemplateData();
data.setColor(templateMessageData.getColor());
data.setName(templateMessageData.getName());
data.setValue(templateMessageData.getValue());
return data;
}).toList()).build();
wxOpenMpService.getTemplateMsgService().sendTemplateMsg(message);
由于发送模版消息及邮件是一个公共服务,所以还有调用方的实现,调用方代码:
上面的截图是同事的代码
注意usePath这个属性,是否使用path,否则使用pagepath. 加入此字段是基于微信官方接口变化多端的考虑
同事封装的时候默认是true,也就是使用了path,没有使用pagepath,导致页面进不去,正常是使用pagepath,我这边重新赋值解决问题 form.setUsePath(false);
问题解决!