一、在项目的配置文件中配置公众号信息

# 微信公众号配置
wx:appid: **********secret: **************token: *********************aeskey: ****************************


二、创建公众号类、达到将数据注入的目的

@Component
@ConfigurationProperties(prefix = "wx")
public class WxMpProperties {/*** 公众号appId*/private String appId;/*** 公众号appSecret*/private String secret;/*** 公众号token*/private String token;/*** 公众号aesKey*/private String aesKey;public String getAppId() {return appId;}public void setAppId(String appId) {this.appId = appId;}public String getSecret() {return secret;}public void setSecret(String secret) {this.secret = secret;}public String getToken() {return token;}public void setToken(String token) {this.token = token;}public String getAesKey() {return aesKey;}public void setAesKey(String aesKey) {this.aesKey = aesKey;}
}

三、创建配置类将公众号所需对象自动注入

@Configuration
public class WxConfig {private final WxMpProperties wxMpProperties;/*** 构造注入** @param wxMpProperties*/WxConfig(WxMpProperties wxMpProperties) {this.wxMpProperties = wxMpProperties;}/*** 微信客户端配置存储** @return*/@Beanpublic WxMpConfigStorage wxMpConfigStorage() {WxMpDefaultConfigImpl configStorage = new WxMpDefaultConfigImpl();// 公众号appIdconfigStorage.setAppId(wxMpProperties.getAppId());// 公众号appSecretconfigStorage.setSecret(wxMpProperties.getSecret());// 公众号TokenconfigStorage.setToken(wxMpProperties.getToken());// 公众号EncodingAESKeyconfigStorage.setAesKey(wxMpProperties.getAesKey());return configStorage;}/*** 声明实例** @return*/@Beanpublic WxMpService wxMpService() {WxMpService wxMpService = new WxMpServiceImpl();wxMpService.setWxMpConfigStorage(wxMpConfigStorage());return wxMpService;}
}

三、实现发送信息的功能

@Component
public class WxMsgPush {/*** 微信公众号API的Service*/private final WxMpService wxMpService;Logger logger = LoggerFactory.getLogger(getClass());/*** 构造注入*/WxMsgPush(WxMpService wxMpService) {this.wxMpService = wxMpService;}/*** 发送微信模板信息** @param openId 接受者openId* @return 是否推送成功*/public Boolean SendWxMsg(String openId) {// 发送模板消息接口WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder()// 接收者openid.toUser(openId)// 模板id.templateId("********************************")// 模板跳转链接(自定义).url("http://www.baidu.com").build();// 添加模板数据templateMessage.addData(new WxMpTemplateData("first", "*****", "#FF00FF")).addData(new WxMpTemplateData("keyword1", "2021-01-28至2021-02-07", "#A9A9A9")).addData(new WxMpTemplateData("keyword2", "***", "#FF00FF")).addData(new WxMpTemplateData("keyword3","*****")).addData(new WxMpTemplateData("remark", "这还是个测试", "#000000"));String msgId = null;try {// 发送模板消息msgId = wxMpService.getTemplateMsgService().sendTemplateMsg(templateMessage);} catch (WxErrorException e) {e.printStackTrace();}logger.warn("·==++--·推送微信模板信息:{}·--++==·", msgId != null ? "成功" : "失败");return msgId != null;}
}

模板id:

没有可以先添加:

四、创建Controller层

@RestController
@RequestMapping(value = "/api/wxaccount",method = RequestMethod.POST)
public class SendWxAccountApi {/*** 微信消息推送*/private WxMsgPush wxMsgPush;/*** 构造注入*/protected SendWxAccountApi(WxMsgPush wxMsgPush) {this.wxMsgPush = wxMsgPush;}/*** 发送微信模板消息*/@ApiOperation("发送微信模板消息")@ApiImplicitParams({@ApiImplicitParam(name = "openId", value = "接受者openId", dataType = "String", paramType = "query")})@PostMapping("sendWxInfo")public void sendWxInfo(String openId) {// 执行发送Boolean aBoolean = wxMsgPush.SendWxMsg(openId);System.out.println(aBoolean);}}

Java微信公众号消息推送相关推荐

  1. 微信公众号消息推送开发(模板消息):点击推送消息跳转到网页或者小程序(三)

    需求场景: 点击推送的消息后跳转到小程序中的某个页面,或者跳转到某一个网页上,例如有这样一个需求,在商城平台购买产品后,需要通过公众号给用户推送订单详细并且点击消息可以看到对应的订单详情.以下我将在微 ...

  2. 微信公众号消息推送流

    一.前期准备工作: 1.需要申请私人/公司的测试号-- 参考这篇文章 ,微信公众平台测试帐号申请 - 简书 (jianshu.com) 1.1.需要响应微信发送的Token请求: 注意:这里的端口必须 ...

  3. 专属微信公众号消息推送(java版)

    前言:专属女朋友的微信推送消息,简单的写个文档. gitee地址:消息推送 所用框架及Api springboot搭建应用 天行数据Api(彩虹屁.早安语句.天气) 前置条件 申请微信公众号测试号及微 ...

  4. java 实现微信公众号消息推送

    注册微信公众号 这里主要用测试账号来演示:测试账号注册地址 正式账号注册地址:微信公众平台 设置消息模板 可参考微信公众号文档:微信公众号文档 模板根据需求设置(注意:参数长度不能超出微信规定,否则将 ...

  5. 微信公众号-消息推送

    ********步骤******** 1.登录微信公众号开发平台,进行企业认证. 2.获取appid.appsecret 3.查找相应的接口 *所有的操作都需要带有accessToken *可以先利用 ...

  6. 尝试开发微信公众号消息推送功能并且和小程序关联

    之前写了几篇关于微信小程序的开发实践,总的来说没啥难度,感兴趣的请移步:使用Mpvue配合Weui开发面试题题库微信小程序,并且发布到正式环境,这一次我们来尝试开发一下微信公众号,那么公众号和小程序到 ...

  7. html消息推送微信,调用微信公众号消息推送

    在微信公众号中对指定的已关注的用户进行消息推送 资源下载此资源下载价格为2D币,请先登录 资源文件列表 惟安在线设备数量监控 -/App.config , 458 惟安在线设备数量监控 -/bin/D ...

  8. 微信公众号消息推送-模板消息发送

    先注册一个微信公众号;或者申请接口测试号来进行开发: 接口测试号申请链接: https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login ...

  9. 微信公众号消息推送【专属早安】,五分钟快速实现,不会编程也可以 【--网站已修复】

    效果演示 提前准备 申请一个微信公众号测试号.地址:测试号申请 扫码登陆注册,注册成功后就会生成微信公号的appID和appsecret.[最后步骤需要] 页面往下滑 有一个测试号二维码,[需要接收消 ...

最新文章

  1. PI校正环节的程序实现推导过程
  2. svg转css font,css – 如何将.svg文件转换为字体?
  3. 今天的捉蝴蝶真有趣的 格式工厂
  4. VINS System::ProcessBackEnd()
  5. C语言--学生管理系统--(完整代码)
  6. pytorch torchvision.transforms.Resize
  7. [转]Android--多线程之Handler
  8. MSSQL生成连续的时间
  9. 测试显卡用什么软件最好,显卡测试用什么软件 怎么测试显卡性能
  10. 面试案例(2019)一
  11. 一二线城市互联网公司汇总,助你拿高薪!
  12. MySQL入门系列:MySQL数据类型
  13. 05 hex 格式_hex文件格式总结
  14. 方直发展冲刺港股上市:利润连增、债务高企,董事长陈专持股95%
  15. 安卓TV开发(九) Android模拟事件 遥控器变身成鼠标来操作TV
  16. 电阻的温度系数需要考虑么
  17. 无线网络呗主服务器限制网速怎么办,怎么设置限制别人wifi网速,wifi限制网速设置多少...
  18. 手把手教你制作新手引导图片
  19. 国际原子时、协调世界时、世界时和GPS时间系统之间的关系
  20. pwd python 安装 模块_python pwd和grp模块

热门文章

  1. Python学习之3D柱形图
  2. QTimer使用不当崩溃
  3. ajax中post传值,ajax post传值
  4. 10- SVM支持向量机 (SVC) (算法)
  5. 【计算机网络】OSI七层模型
  6. 中国铁塔南京分公司副总经理程毅一行到访
  7. 看看我当年23岁如何书写的休学申请书
  8. python用字典实现倒排索引_一文掌握“倒排索引”创建方法
  9. wav格式怎么转换?教你这三招实现音频格式转换
  10. 乐高四光感巡线思路解说