微信模板消息推送
一、微信公众号或测试号内配置,我这里使用的是微信测试号
点击【新增测试模板进行如下配置】
配置模板标题和模板内容,配置完成后如下所示,会生成一个模板id,这个很重要:
二、SpringBoot后台实现微信消息模板推送代码
注意:对于消息测试这类不是特别重要的功能,最好不要抛出异常
@Service @Slf4j public class PushMessageServiceImpl implements PushMessageService { @Autowired private WxMpService wxMpService; @Override public void orderStatus(OrderDTO orderDTO) { //【注意】:是在订单完结的时候执行这个操作 WxMpTemplateMessage templateMessage = new WxMpTemplateMessage(); //设置模板id templateMessage.setTemplateId("Iyqg2KLTaMJKKveaciV6BvrXXXXXXXXXXXXXXXXX"); //这个openid是指微信测试号相对于我的微信号的openid,指的是消息推送给那个用户 templateMessage.setToUser("o7TyS59g2pb-XXXXXXXXXXXX"); List<WxMpTemplateData> data = Arrays.asList( new WxMpTemplateData("first", "亲,请记得收货。"), new WxMpTemplateData("keyword1", "微信点餐"), new WxMpTemplateData("keyword2", "18868812345"), new WxMpTemplateData("keyword3", orderDTO.getOrderId()), new WxMpTemplateData("keyword4", orderDTO.getOrderStatusEnum().getMessage()), new WxMpTemplateData("keyword5", "¥" + orderDTO.getOrderAmount()), new WxMpTemplateData("remark", "欢迎再次光临!") ); templateMessage.setData(data); try { wxMpService.getTemplateMsgService().sendTemplateMsg(templateMessage); }catch (WxErrorException e) { log.error("【微信模版消息】发送失败, {}", e); } } }
三、测试代码
@RunWith(SpringRunner.class) @SpringBootTest public class PushMessageServiceImplTest { @Autowired private PushMessageServiceImpl pushMessageService; @Autowired private OrderService orderService; @Test public void orderStatus() throws Exception{ OrderDTO orderDTO = orderService.findOne("1551684966828109467"); pushMessageService.orderStatus(orderDTO); } }
四、测试结果
在接口测试账号内会受到如下消息内容: