关于SpringBoot开发微信模板推送

时间:2024-01-04 19:31:08

在这里演示一下微信的模板消息推送:

  这里使用微信测试号 来演示:

    先看下效果吧:

       关于SpringBoot开发微信模板推送

1.首先需要申请一个  微信测试号  

    https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421137522

    关于SpringBoot开发微信模板推送

 点击进入申请之后会让你扫码登入!使用微信扫码即可!

关于SpringBoot开发微信模板推送

申请完成之后会显示两个测试号的信息 !appID ,appsecret 这两个很重要!

2.关注此公众号:

  关于SpringBoot开发微信模板推送

3.创建模板发送消息模板

  关于SpringBoot开发微信模板推送

由此获得模板id

关于SpringBoot开发微信模板推送

{{first.DATA}} 商家名称:{{keyword1.DATA}} 商家电话:{{keyword2.DATA}} 订单号:{{keyword3.DATA}} 状态:{{keyword4.DATA}} 总价:{{keyword5.DATA}} {{remark.DATA}} 

4.回顾下我们都做了什么?

  1.首先是微信给我们的 【appID, appsecret】

  2.我们需要微信扫码关注测试的公众号 获得 【微信号】也就是用户的openid

  3.创建模板 获得模板id

===开始代码的操作===

  首先需要一个jar包 也就是操作微信相关的jar包

    

  <dependency>
<groupId>com.github.binarywang</groupId>
<artifactId>weixin-java-mp</artifactId>
<version>2.7.0</version>
</dependency>

  

 //推送
@Override
public void orderStatus(OrderDTO orderDTO) {
WxMpInMemoryConfigStorage wxStorage = new WxMpInMemoryConfigStorage();
wxStorage.setAppId("wxc05384c53b8465d1"); //appID
wxStorage.setSecret("e6b01b0374a48085e0e4ab521d68f7cf");//appsecretID
WxMpService wxMpService = new WxMpServiceImpl();
wxMpService.setWxMpConfigStorage(wxStorage); //数据
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", "欢迎再次光临!")
); //2,推送消息
WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder()
.toUser("otjjq1X7LiCG6gabzu2nk4Wzom0s")//要推送的用户openid
.data(data) //数据
.templateId("OSIT_3CoEjwdgbGvHeUb5aO8wBu62-iH8PO2ZYopRkY")//模版id
/* .url("https://www.baidu.com/")//点击模版消息要访问的网址*/
.build();
//发起推送
try {
String msg = wxMpService.getTemplateMsgService().sendTemplateMsg(templateMessage);
System.out.println("推送成功:" + msg);
} catch (Exception e) {
System.out.println("推送失败:" + e.getMessage());
e.printStackTrace();
}