不啰嗦,我们直接开始!

由于没有公众帐号,本文使用微信公众平台接口测试帐号进行调试。

一、申请测试帐号

1、使用微信扫码登录下面网址

微信公众平台 (qq.com)

2、找到appID和appsecret

登录成功后能看到appID和appsecret

3、找到openid

当前页面往下翻,能看到测试公众号的二维码,使用微信扫码关注后,能看到我们在这个测试号下的的openid

4、找到模板ID

在往下翻,在“模板消息接口”处,新增测试模板,然后能看新增的测试模板ID

模板内容可以自定义占位字段的key(小写)可以自定义,但是属性必须是DATA(必须大写,因为小写我试过不行)

以上的appID、appsecret、openid、模板ID记住位置就行,后面使用第三方sdk推送消息时会用到

二、引用第三方sdk,集成模板消息推送

我这儿是集成模板消息推送到已有的系统消息中,通过配置是否发送模板消息进行分发,具体实现各工程不一样,我这儿就不展示了。

1、pom引入第三方sdk

引入第三方sdk,我们就只需要封装好消息发送的核心代码,微信相关的token及其他信息的维护就交给sdk,我们不用关注(但是原理要知道)。

sdk的作者:GitHub,话说这个大佬看着眼熟,瞄了眼支付中心的底层,也用到了这个大佬的东西

<!--微信模版消息推送三方sdk-->
<dependency><groupId>com.github.binarywang</groupId><artifactId>weixin-java-mp</artifactId><version>4.1.0</version>
</dependency>

2、核心代码(有注释)

import me.chanjar.weixin.mp.api.WxMpService;
import me.chanjar.weixin.mp.api.impl.WxMpServiceImpl;
import me.chanjar.weixin.mp.bean.template.WxMpTemplateData;
import me.chanjar.weixin.mp.bean.template.WxMpTemplateMessage;
import me.chanjar.weixin.mp.config.impl.WxMpDefaultConfigImpl;
import org.springframework.stereotype.Component;import java.util.Arrays;
import java.util.List;@Component
public class WeChatMessageHelperTest {private static WxMpService wxMpService = new WxMpServiceImpl();/*** 发送微信模板消息* @param tempId 微信模板ID* @param tempDetailsUrl 点击详情跳转的地址* @param title 标题* @param content 内容* @param userIds 用户* @version V1.0* modify history*/public static void sendWechatTempMessage(String tempId, String tempDetailsUrl, String title, String content, String... userIds) throws Exception {// 这里我使用的WxMpDefaultConfigImpl,WxMpDefaultConfigImpl还有3个子类可使用,具体区别不详,空了再研究WxMpDefaultConfigImpl wxStorage = new WxMpDefaultConfigImpl();// 测试号的appIDwxStorage.setAppId("appID");// 测试号的appsecretwxStorage.setSecret("appsecret");wxMpService.setWxMpConfigStorage(wxStorage);for (String userId : userIds) {// TODO:根据用户id获取OpenId,测试时写死WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder()// 要推送的用户openid.toUser("openid")// 消息详情跳转地址:https://blog.csdn.net/qq_34272760/article/details/120152903// 若需要跳转小程序,url则设置为:http://mp.weixin.qq.com,然后设置相关的MiniProgram参数【跳转的小程序必须是公众号关联的小程序!!!】.url(tempDetailsUrl)// 微信模板ID.templateId(tempId).build();// data的字段及内容是自定义的,不必按我这儿的来,具体怎么和已有的系统消息结合,实现key和color可配置化需自行考虑List<WxMpTemplateData> data = Arrays.asList(new WxMpTemplateData("title", title),// WxMpTemplateData 可设置颜色new WxMpTemplateData("content", content, "#ff0000"));templateMessage.setData(data);/*// 跳转小程序相关配置【跳转的小程序必须是公众号关联的小程序!!!】WxMpTemplateMessage.MiniProgram miniProgram = new WxMpTemplateMessage.MiniProgram();// 小程序的appIdminiProgram.setAppid("wxac397222f82f2644");// 小程序的pagePath 注意,这里是支持传参的!!!miniProgram.setPagePath("pages/index/index?temp=1");// 需要跳转首页时,需要设置 usePath = true (默认是 false,只跳转非首页)miniProgram.setUsePath(true);templateMessage.setMiniProgram(miniProgram);*/try {// 发送模板消息wxMpService.getTemplateMsgService().sendTemplateMsg(templateMessage);} catch (Exception e) {Logger.error("微信公众号模板消息推送失败,接收userId: " + userId, e);}}}
}

3、触发消息推送,查看推送结果

4、点击消息详情

跳转小程序这里就没有测试了,因为没有公众号相关联的小程序

官方文档:发送模板消息

参考文章:

  • 使用 weixin-java-mp(weixin-java-tools) 实现微信授权 spring boot
  • 微信模板消息推送
  • 发送模板消息
  • 微信公众号之模板消息跳转小程序
  • 公众号模板消息跳转小程序pagepath传参小程序获取不到?

不啰嗦,文章结束,期待三连!

微信公众号 - Java推送公众号模板消息给用户相关推荐

  1. 微信公众号 - Java推送小程序订阅消息给用户

    不啰嗦,我们直接开始! 本文使用体验版小程序进行调试. 一.开发前小程序准备: 1.登录微信公众平台 点开下面链接,使用微信扫码 微信公众平台 然后选择一个小程序并登录 2.在小程序后台找到Appid ...

  2. koa2开发微信公众号: 不定期推送最新币圈消息

    背景:比特币说好的segwit2x分叉最后却分叉不成,如今算力又不够,于是比特现金想篡位,没一个星期就涨了快10倍,错过这趟快车甚是后悔,于是打算写一个可不定期推送最新消息的微信公众号.既然是利用微信 ...

  3. 微信公众号消息推送开发(模板消息):准备工作[公众平台环境配置](一)

     专栏简介

  4. 用户画像在科技期刊微信公众号精准推送中的应用

    闵甜1,2), 孙涛3),赖富饶1,2), 侯湘4) 1)华南理工大学<现代食品科技>编辑部,广东省广州市天河区五山路381号 510640 2)华南理工大学食品科学与工程学院,广东省广州 ...

  5. 微信公众号-java上传图片素材到微信服务器基于事件推送两条消息

    微信公众号-java上传图片素材到微信服务器&基于事件推送两条消息 场景:基于微信扫码登录/关注事件,向用户推送两条消息. 分析:翻阅了微信开发者文档和一些其他资料发现,公众号针对用户关注/扫 ...

  6. java实现微信公众号内容推送系统

    前置准备 申请微信公众号测试号以及微信模板配置 微信公众平台 登陆注册成功后,就会生成微信公号的appID和appsecret 接收消息的人扫码关注测试号二维码,微信返回oppenid. 新增消息模板 ...

  7. 微信公众号信息推送实现业务解耦

    序 最近第三方服务需要增加微信模板信息推送能力,要与业务系统解耦.微服务架构的springCloud下第三方服务增加能力. 一.技术选型 看了下微信公众号的信息推送开发文档,发现不难,就是一个个接口对 ...

  8. 微信公众号事件推送(点击推送图文)

    最近做微信公众号的功能,按钮菜单中有 type 为 click 的按钮,其功能是 若你配置好了服务器配置,设置后回调的url, 点击后微信会将该事件推送到配置好的地址,后台接受数据然后进行相应的处理. ...

  9. 微信公众号怎么推送消息_微信公众号发送消息

    A.模板消息发送 模板消息仅用于公众号向用户发送重要的服务通知,只能用于符合其要求的服务场景中,如信用卡刷卡通知,商品购买成功通知等.不支持广告等营销类消息以及其它所有可能对用户造成骚扰的消息. 备注 ...

最新文章

  1. mysql 8.0配置主从同步_MySQL8.0.19开启GTID主从同步CentOS8
  2. 无论在哪里办公,保持注意力和减少数字干扰的7个技巧
  3. 转:设置Eclipse中的tab键为4个空格的完整方法
  4. Redis 数据类型与操作命令整理
  5. 京东与中国石化全面深化战略合作 涉及能源供应服务等
  6. C#面向对象三大特性
  7. JetBrains:webstrom关闭重复代码校验
  8. Linux学习(2)常用的命令
  9. UGUI 优化关于图集,排序等
  10. elk怎么读的_大数据采集和抽取怎么做?这篇文章终于说明白了!
  11. 在macOS下制作黑苹果镜像
  12. 商用密码产品认证-安全电子门禁系统
  13. 苹果台式机怎么设置我的电脑计算机,台式苹果电脑自己怎样做系统
  14. HTMl悬浮播放器XPlayer,Xplayer播放器
  15. TensorFlow版BERT源码详解之self-attention
  16. 计算机考证一般多少钱
  17. DanmuVis: Visualizing Danmu Content Dynamics and AssociatedViewer Behaviors in Online Videos
  18. 【JZ38 字符串的排列】
  19. python学习——tsv文件批量转为csv文件、csv文件列合并
  20. STC 下载 自动波特率 设计

热门文章

  1. 新媒体推广:阅读量VS转化率,为何他更看重它?黎想
  2. poi hssfcellstyle 文字方向_揭秘!文字识别在高德地图数据生产中的演进
  3. 图像分类,一文入魂(上)
  4. 图像修复 2021 最新综述——附综述论文分享
  5. 怎么判断一篇英文论文是不是综述
  6. 诺基亚Q4净利润5.64亿美元 同比增54%
  7. 虚拟串口软件:VSPD的使用
  8. 广发证券电脑linux,广发证券易淘金电脑PC官方版
  9. ssh和scp的使用
  10. 宇视科技的摄像头添加至别的品牌录像机黑屏