首先申请一个公众号订阅号(个人测试账号)企业可申请服务号

在开发者工具里面申请一个测试账号

url 提供自己服务器地址+通信接口路由  或者在本人博客资源下载个natapp 内网穿透有工具 代理个http地址 我用的内网穿透

token 随便填一个主要用来跟微信服务器测试通信正常

//这个token要跟你填的一致

private static final String TOKEN = "1341321a2s1d23a1s454"

//下面方法就是上面url 里面的IP加路由

@GetMapping("check/token")
public String validate(String signature,String timestamp,String nonce,String echostr){// 1. 将token、timestamp、nonce三个参数进行字典序排序String[] arr = {timestamp, nonce, TOKEN};Arrays.sort(arr);// 2. 将三个参数字符串拼接成一个字符串进行sha1加密StringBuilder sb = new StringBuilder();for (String temp : arr) {sb.append(temp);}// 这里利用了hutool的加密工具类String sha1 = SecureUtil.sha1(sb.toString());// 3. 加密后的字符串与signature对比,如果相同则该请求来源于微信,原样返回echostrif (sha1.equals(signature)){return echostr;}// 接入失败return null;
}

连接成功后配置订阅用户及模板

扫描二维码会得到用户的openId  一会发送消息用到 模板分为固定内容跟模板内容 1为固定内容 23为动态参数内容

接下来代码接入

pom引入

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

//这个sdk比较方便方法 接口路由都封装更好的 用起来更方便

下面代码环节

1实体

授权实体 就是测试号的账号 跟key

@Data
public class WxAuthorization {private String appId;private String appSecret;}

2参数实体 就是发送需要的参数

@Data
public class WxMsgData {// 接收人openIdprivate String receiver;// 消息模板codeprivate String templateCode;// 跳转urlprivate String url;// 模板参数private Map<String, Object> param;}

调用

private void sendMsg(WxAuthorization wxAuthorization, WxMsgData wxMsgData) {WxMpInMemoryConfigStorage wxStorage = new WxMpInMemoryConfigStorage();wxStorage.setAppId(wxAuthorization.getAppId());wxStorage.setSecret(wxAuthorization.getAppSecret());WxMpService wxMpService = new WxMpServiceImpl();wxMpService.setWxMpConfigStorage(wxStorage);WxMpTemplateMessage templateMessage = WxMpTemplateMessage.builder().toUser(wxMsgData.getReceiver()).templateId(wxMsgData.getTemplateCode()).url(wxMsgData.getUrl()).build();if (wxMsgData.getParam()!=null) {for (Map.Entry<String, Object> entry : wxMsgData.getParam().entrySet()) {templateMessage.addData(new WxMpTemplateData(entry.getKey(), (String) entry.getValue(), "#173177"));}}try {String s =  wxMpService.getTemplateMsgService().sendTemplateMsg(templateMessage);} catch (WxErrorException e) {e.printStackTrace();}
}

测试调用

@PostMapping("sendMessage")
public String handleMessage(){WxAuthorization wxAuthorization = new WxAuthorization();wxAuthorization.setAppId("wxce11edb1b0c5e158");wxAuthorization.setAppSecret("62195d67ae1fa8b0b15aaaab47ce507c");WxMsgData wxMsgData = new WxMsgData();wxMsgData.setReceiver("oOM-e52ersdi7a4wZTOQHUQOwGuw");wxMsgData.setTemplateCode("AYZc280-hh7QeO5eM8Usl7SlD5wzQ_I8tQq1e9HlmhQ");wxMsgData.setUrl("https://www.baidu.com/");Map<String,Object> map = new HashMap<>();map.put("username","张三");map.put("projectName","世纪广场");map.put("deviceSN","10086");wxMsgData.setParam(map);sendMsg(wxAuthorization,wxMsgData);return "success";
}

这个url ip 加端口必须是代理过的 或者服务器的 本地的不行

效果示例

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

  1. python训练营微信广告发送机_python实现给微信公众号发送消息的方法

    本文实例讲述了python实现给微信公众号发送消息的方法.分享给大家供大家参考,具体如下: 现在通过发微信公众号信息来做消息通知和告警已经很普遍了.最常见的就是运维通过zabbix调用shell脚本给 ...

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

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

  3. Java微信公众号发送消息-保姆级教程附源码

    目录 1. 概念说明: 2. 开发准备: 3. 测试demo(更改配置信息即可使用) 3.1. 服务器配置 3.1.1.配置填写说明 3.1.2.校验服务器有效性: 3.1.3.URL后端接口代码和校 ...

  4. 实现微信公众号发送消息给指定用户

    一.前言 在实际项目开发中,需要实现消息中心向关注微信公众号的指定用户发送消息通知,在翻阅了网上很多资料及微信官方开发文档后,最终顺利完成功能开发,但是其中走过的路艰辛且曲折,因此特将开发过程中踩过的 ...

  5. 小程序发送订阅消息,微信公众号发送消息模板

    首先讲两个注意事项 1.小程序和微信公众号的用户openid是不同的. 2.小程序需要用户手动授权订阅消息通知(一次性订阅是订阅一次发一次,长期订阅可以多发). 关于小程序和公众号AppID和AppS ...

  6. 微信公众号发送消息通知

    微信申请测试公众号 申请测试号 微信公众平台接口调试工具 接口调试工具 如何获取用户的openid 获取用户的openid 4.通过微信公众号后台聊天获取用户的openid 测试平台获取appID,a ...

  7. 微信公众号 java发送消息_微信公众号发送消息模板(java)

    这段时间接触公众号开发,写下向用户发送消息模板的接口调用 先上接口代码 1 public staticJSONObject sendModelMessage(ServletContext contex ...

  8. python微信接口发送消息_Python 微信公众号发送消息

    #pip3 install requests importrequestsimportjsondefget_access_token():"""获取微信全局接口的凭证(默 ...

  9. Java后端发送微信公众号模版消息自创建公用类

    微信公众号模版消息 肯定很多人都被微信的开放平台折磨,我也一样无一例外,也是根据公司的业务踩的坑,后来花时间研究了几个小时算是搞明白了. 下边不多说直接上详细说明和demo 首先打开微信开发平台 微信 ...

最新文章

  1. 使用logrotate管理nginx日志文件
  2. Altium designer快捷键汇总
  3. Java17-day08【File(创建和删除文件、判断和获取功能、遍历目录)、IO流(字节流写数据、异常处理、字节流读数据、复制文本文件、复制图片)】
  4. addroid 自定义布局
  5. java dfs_Java数据结构与算法 深搜(DFS)的简单使用(一)之排列组合
  6. iis属于中间件吗_今天设计一套高可用高并发、海量存储可伸缩的消息中间件生产架构...
  7. [处理数据的心得][1]--相关矩阵的可视化
  8. docker run -di -p 日志_docker随手笔记第十一节 portainer.io安装使用,比k8s简单
  9. win7 可以装matlab 吗,win7系统怎么安装matlab软件(图文教程)
  10. C++计算圆柱体的表面积
  11. Whai_springmvc笔记
  12. 【JIRA 学习】JIRA 配置缺陷的reopen 次数
  13. 用python画一个动态樱花
  14. 【K8S系列】深入解析 k8s:入门指南(一)
  15. html文字段落缩进,CSS text-indent段落首行文字缩进分享
  16. rxswift_RxSwift
  17. Handling 2 trigger(s) that missed their scheduled fire-time,JobPersistenceException: Couldn't store
  18. Unity3D学习笔记——RigidBody(刚体)
  19. 算法导论读书笔记(19)
  20. Java程序员面试笔记pdf,JqGrid完整例子

热门文章

  1. 华硕笔记本r414u怎么安装键盘_华硕r414uv7200笔记本安装win7系统操作教程
  2. Java常见算法(五)【二叉树:morris遍历】
  3. 身份证很快将不用随身带了
  4. 2007-1-14日 周日 agilepoint的讲座
  5. 手动安装Eclipse插件
  6. 虚拟机VMware下安装RedHat Linux 9.0 图解
  7. ubuntu离线安装wireshark
  8. 详细解读阿里云开源PolarDB总体架构和企业级特性
  9. 华工软院IBM LinuxONE Community Cloud云计算实验文档
  10. 授受不亲?中国古代男女浪漫社交