最近公司的有这个业务需求,又很凑巧让我来完成:

首先想要对接,先要一个公众号,再就是开发文档了:https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Overview.html

不过请注意这一点

ok,我们继续:再来完成公众号的基本配置:

   服务器地址(URL):必须以http://或https://开头,分别支持80端口和443端口。这个URL是很重要的,需要响应微信发送的token验证

    令牌(Token):必须为英文或数字,长度为3-32字符。上面说过做验证的

    消息加解密密钥:可以直接随机生成

    消息加解密方式:明文、兼容、安全  看业务需求选择:我觉得明文省事点(个人见解)

详解微信开发文档:https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Overview.html

如果一直用微信的接口调用,会有点麻烦所以这边我就引用了     ---》WxJava《---

github:https://github.com/Wechat-Group/WxJava

gitee:https://gitee.com/binary/weixin-java-tools

先来看看官方文档对于推送模板消息参数说明:

ok,下一步template_id:模板Id;对于这个可以自己申请 or 选用已有的

选择一个进去添加模板就行了

ok,模板id也拿到了,现在就开始

请大家也详细的看看 WxJava 的文档

---先建立 SpringBoot 项目---

导入wxjava公众号 对应的pom

<!-- WxJava公众号 -->
<dependency><groupId>com.github.binarywang</groupId><artifactId>weixin-java-mp</artifactId><version>3.6.0</version></dependency>

然后就需要配置公众号相关的信息了,我个人比较喜欢在 yml 里面配置

# 微信公众号配置
wx:appid: 11111secret: 22222token: 33333aeskey: 44444

配置了这个就需要对应这个配置的Component了(实体类)

/*** @Date 2021/1/10 15:44**/
@Data
@Component
@ConfigurationProperties(prefix = "wx")
public class WxMpProperties {/*** 公众号appId*/private String appId;/*** 公众号appSecret*/private String secret;/*** 公众号token*/private String token;/*** 公众号aesKey*/private String aesKey;
}

先给大家一步一步分析

刚刚我们选择的模板,这些key都一个一个参数,文档上面说的很明白,赋值替换!!! 明白了这点就ok了。

好,再来回头看 WxJava

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

需要自己写个config,把这个实现类@Bean注入

/*** @Date 2021/1/11 09:23**/
@Configuration
public class WxConfig {/*** 声明实例** @return*/@Beanpublic WxMpService wxMpService() {WxMpService wxMpService = new WxMpServiceImpl();return wxMpService;}

好了,知道了对应方法的作用,终于可以推送了。但是但是,到现在,我才想起一件事情,我配置的公众号信息,他能自己读?很显然我们少配置了信息。

/*** @Date 2021/1/11 09:23**/
@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;}

ok,主要 code 部分都完成了,开始测试吧。请自己建一个Controller

/*** 微信消息推送*/
private final WxMsgPush wxMsgPush;/*** 构造注入*/
protected PushMsgApi(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);}

ok!推送完成!!完整代码可以去这:https://download.csdn.net/download/weixin_44364444/20934413

Java对接微信公众号模板消息推送相关推荐

  1. Java对接微信公众号模板消息推送(架包WxJava)

    内容有点多,请耐心! 最近公司的有这个业务需求,又很凑巧让我来完成: 首先想要对接,先要一个公众号,再就是开发文档了:https://developers.weixin.qq.com/doc/offi ...

  2. Java实现微信公众号模板消息推送给用户

    创建消息模板实体对象 package com.htdz.ydkx.wxModelMsg.entity;public class Content {private String value;//消息内容 ...

  3. Nodejs + express 开发微信公众号模板消息推送功能

    第一步:申请测试号 1.打开微信测试号申请平台 http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login 2.点击"登录&q ...

  4. 微信公众号模板消息推送问题汇总

    总结:经常遇到的微信模版消息推送返回失败情况! 1.{"errcode":40037,"errmsg":"invalid template_id hi ...

  5. 【Java中实现微信公众号模板消息推送】

    主要流程: 1.在微信公众测试平台上注册账号,关注测试公众号,新增消息模板 2.拿到需要的参数openId appId appsecret 模板Id后进行开发 微信公众平台测试号管理地址 https: ...

  6. 微信公众号模板消息推送(附上完整代码)

    官方文档 会用到的调用函数 import logging import requests import time from pickle import dumps, loadsfrom request ...

  7. 微信公众号模板消息推送(PHP)

    1.发送模板消息 public function send_notice(){$access_token = '';//模板消息$json_template = $this->json_temp ...

  8. 该微信用户未开启“公众号安全助手”的消息接收功能,请先开启后再绑定,Java微信公众号开发消息推送公众号用户绑定问题 的解决办法

    问题概述 在进行微信公众号开发的时候遇到的这个问题,通过Web开发公众号的模板消息推送,在调试的过程中,需要进行开发者接口联调&调试,在调试之前需要将当前的公众号与用户的微信号进行绑定, 绑定 ...

  9. 实现微信公众号H5消息推送的超级详细步骤

    前言 前段时间在项目中做了一个给H5消息推送的功能,特此记录一下,感兴趣或者有需要的小伙伴可以查阅一下,因为其实代码并不难,我觉得对于初学者来说难的是一些概念和具体实现的过程,所以我会先使用微信提供的 ...

最新文章

  1. 去除iphone图标的半弧高亮效果
  2. 自己动手做一个小Linux-2
  3. JavaScript—ES6 元编程(5)
  4. 嵌入式linux webkit,嵌入式平台arm linux 之qt 4.5交叉编译到webkit时出错解决方法
  5. C# NPOCO 轻量级ORM框架(进阶)
  6. 2013年35真棒恭贺新禧 - 壁纸
  7. python中post请求太慢_AJAX post请求每秒钟慢一次[Django]
  8. Swagger3、SpringBoot学习、使用复盘
  9. 单一IP地址静态NAT实验环境
  10. sharepoint 使用命令行注册dll文件到gac的方法
  11. sse java8_Java SSE 服务器推送WEB页面接收数据
  12. Apache .htaccess Rewrite解决问号匹配的写法
  13. 纯css+js打造返回顶部代码
  14. 【钉钉-场景化能力包】家校沟通
  15. 计算机常见故障判断与排除,计算机常见故障的诊断与排除PPT课件.ppt
  16. WEBRTC中VAD算法及思想的数学解析
  17. python爬取网站大数据_基于腾讯位置大数据平台的全球移动定位数据获取(Python爬取)...
  18. 微信小程序实现长文本分段播放
  19. Qt::QLocale
  20. 【解决问题】修复虚拟机报错,写入文件时出错,请确认您有访问该目录的权限

热门文章

  1. 站控层设备种类和对时方式
  2. RDLC打印或导出Word的 分页设置 页边距和页面大小
  3. 仿QQ2011界面 MFC
  4. Python 印章代码(附有解析)
  5. mysql扩展之mysqli
  6. 电源模块KIM-3R35L 超越KIS3R33S YEC-SD200 KIW3312S
  7. Java中new的作用
  8. 实现微信自动向附近的人打招呼,收到指定账户推送文章时自动进入微信打开链接
  9. 用Python分析许嵩的歌,带你追忆青春时的懵懂
  10. FM铁电存储器 eg:fm24cl16等等