微信模板消息推送

一、微信公众号或测试号内配置,我这里使用的是微信测试号

点击【新增测试模板进行如下配置】

配置模板标题和模板内容,配置完成后如下所示,会生成一个模板id,这个很重要:

微信模板消息推送_第1张图片

二、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 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);
    }
}

四、测试结果

在接口测试账号内会受到如下消息内容:

微信模板消息推送_第2张图片

你可能感兴趣的:(微信)