1.获取Access token

微信开放文档

虽然微信的官方把接口地址,和所需参数都给你了,按理来说直接调用就完事了.但官方并不想按顺序执行.

想要调用发送消息的接口,就必须先获得access token!

虽然appid 和 serect 都是写死的,但是每次返回的access token是不一致的!

 String accessTokenUrl = WechatSendMessageConfig.GET_ACCESSTOKEN_GATEWAY+ "?appid=" + WechatSendMessageConfig.APPID+ "&secret=" + WechatSendMessageConfig.APPSECRET+ "&grant_type=client_credential";String result = null;     result = new HttpClientUtils().get(accessTokenUrl);log.info("获取到的access_token为" + result);Gson gson = new Gson();  //Gson 谷歌的依赖Map<String, Object> resultMap = gson.fromJson(result, HashMap.class);String access_token = (String) resultMap.get("access_token");log.info(access_token);

GSON

  <dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.2</version></dependency>

1.1异常

这里我出现的异常是 40164

解决方案:进入微信公众平台

https://mp.weixin.qq.com/advanced/advanced?action=dev&t=advanced/dev&token=1784003957&lang=zh_CN

配置你后端的服务器地址 localhost是不行的哦!

2.推送模板消息

模板消息 | 微信开放文档

按照文档一步一步来

进入微信公众平台

2.1 按照需求添加模板

2.2 按照需求搜索模板

点击详情进行添加

这是我自己添加的模板

2.3 发送模板消息

接口调用请求说明

http请求方式: POST https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN

POST数据说明

POST数据示例如下:

 {"touser":"OPENID","template_id":"ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY","url":"http://weixin.qq.com/download",  "miniprogram":{"appid":"xiaochengxuappid12345","pagepath":"index?foo=bar"},          "data":{"first": {"value":"恭喜你购买成功!","color":"#173177"},"keyword1":{"value":"巧克力","color":"#173177"},"keyword2": {"value":"39.8元","color":"#173177"},"keyword3": {"value":"2014年9月22日","color":"#173177"},"remark":{"value":"欢迎再次购买!","color":"#173177"}}}

其中参数Url : 写 www.baidu.com后,成功推送消息后点击消息就进入百度首页了,以此类推.

3.代码

相较于微信支付,这个推送消息还是比简单的.但这只是一个Demo具体,给谁推送,在什么时间推送,需要自行编码.比如把每个关注该公众号的用户的openId做持久化...

对了JSONObject 请使用 com.alibaba.fastjson.JSON 依赖

 <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.73</version></dependency>
 /*** 公众号发送缴费提醒模板消息*/public void pushMessage() {String accessTokenUrl = WechatSendMessageConfig.GET_ACCESSTOKEN_GATEWAY+ "?appid=" + WechatSendMessageConfig.APPID+ "&secret=" + WechatSendMessageConfig.APPSECRET+ "&grant_type=client_credential";String result = null;try {result = new HttpClientUtils().get(accessTokenUrl);log.info("获取到的access_token为" + result);Gson gson = new Gson();Map<String, Object> resultMap = gson.fromJson(result, HashMap.class);String access_token = (String) resultMap.get("access_token");log.info(access_token);//发起发送模板消息请求String postUrl = WechatSendMessageConfig.SEND_MESSAGE_GATEWAY+ "?access_token=" + access_token;JSONObject jsonObject = new JSONObject();jsonObject.put("touser", "Российская Федерация"); //贾志伟在戍码助学的openidjsonObject.put("template_id", "-tgKn_kSRCb0Qf-THJER-WWGvfpyX-y1TlZyWOHCU18"); //模板Id  https://mp.weixin.qq.com/advanced/tmplmsg?action=edit&id=-tgKn_kSRCb0Qf-THJER-WWGvfpyX-y1TlZyWOHCU18&token=1784003957&lang=zh_CNjsonObject.put("url", "http://fq.kerchin.xyz");JSONObject data = new JSONObject();JSONObject first = new JSONObject();//firstfirst.put("value", "您好xxx,还款账单已经生成,请前往公众号查看详情,点击菜单跳转到支付页面");first.put("color", "#173177");//keyword1 缴费金额JSONObject keyword1 = new JSONObject();keyword1.put("value", "500元");keyword1.put("color", "#173177");//keyword2 缴费时间JSONObject keyword2 = new JSONObject();keyword2.put("value", "2021年9月16日");keyword2.put("color", "#173177");//remarkJSONObject remark = new JSONObject();remark.put("value", "请您即时缴费");remark.put("color", "#173177");//组装JSONObjectdata.put("first", first);data.put("keyword1", keyword1);data.put("keyword2", keyword2);data.put("remark", remark);jsonObject.put("data", data);//发起发送消息的请求,走你String string = HttpClientUtils.sendPostJsonStr(postUrl, jsonObject.toJSONString());log.info("String===>" + string);JSONObject response = JSON.parseObject(string);Integer errcode = response.getIntValue("errcode");if (errcode == 0) {//发送成功log.info("发送成功");} else {//发送失败log.info("发送失败");}} catch (Exception e) {e.printStackTrace();}}

微信对接推送模板消息相关推荐

  1. python微信推送消息_Python编程之微信推送模板消息功能示例

    本文实例讲述了Python微信推送模板消息功能.分享给大家供大家参考,具体如下: 官方文档:https://mp.weixin.qq.com/wiki?t=resource/res_main& ...

  2. 微信公众号自定义菜单和推送模板消息

    1.微信公众号测试账号: 找到服务号的开发文档,点击进去. Java代码: 准备工作: (1)填写JS接口安全域名 (2)填写接口配置信息: (2)java的Token验证接口 @RequestMap ...

  3. TP5之微信小程序推送模板消息

    TP5之微信小程序推送模板消息 1.获取formId并且存储起来,获取formId方法见: https://blog.csdn.net/u010481239/article/details/78239 ...

  4. 设置微信自动回复,默认回复及推送模板消息

    前一篇文章已经说明基础的一些配置(很基础的)SDK有很多类库具体使用请参考源码 1.默认回复 在自定义MessageHandler类找到DefaultResponseMessage方法,如果没有自行重 ...

  5. python微信推送消息_Python实现微信推送模板消息功能示例

    这篇文章主要介绍了Python编程之微信推送模板消息功能,结合实例形式分析了Python微信推送消息接口的调用相关操作技巧,需要的朋友可以参考下 本文实例讲述了Python微信推送模板消息功能.分享给 ...

  6. 微信小程序云开发通过服务号给用户推送模板消息

    主要参考下面两个文章 1.云函数接收公众号消息推送 | 微信开放社区 ​​​​​​2.微信小程序通过公众号(服务号)推送通知或提醒步骤及代码(一,获取推送前所需信息)_微信小程序推送服务通知_庆登登登 ...

  7. 公众号推送模板消息(JAVA版)

    公众号推送模板消息(JAVA版) 先贴上官方文档 步骤不多:组装请求体,调用接口 接口:(POST)https://api.weixin.qq.com/cgi-bin/message/template ...

  8. 微信推送模板消息的PHP代码整理

    本文为本人原创,未经许可,不可转载.  博主长期从事微信开发,微信开发相关问题和业务请联系qq 2580234897 最近做过一个需要推送消息的系统,就研究了一下微信的模板消息的推送.由于认证过的微信 ...

  9. 微信小程序通过服务号推送模板消息

    前言 公司要做一款新的微信小程序,因为业务需求要加入消息推送.因为之前APP是通过服务号推送给用户消息的,所以微信小程序要做消息推送也是首先想到了通过服务号推送.事实上在使用过程中服务号推送还是非常好 ...

最新文章

  1. 程序员会成为非常内卷的职业吗?
  2. 能买到鸿蒙系统,哪里能买到鸿蒙系统的设备?
  3. 使用 Chrome 开发者工具进行 JavaScript 问题定位与调试
  4. ping github超时问题
  5. 在java中图片随机播放_如何在Java中随机播放列表
  6. Vue移动端项目——搜索联想建议功能的实现(结合watch属性和使用lodash防抖节流)
  7. Fater R-CNN 整体把握
  8. linux系统支持u盘格式,linux下U盘格式化
  9. jquery.eq()
  10. c语言学生综合测评系统_学生综合评价系统
  11. CAD插件学习系列教程(五) 小菜选择易
  12. 可达性分析之三色标记算法详解
  13. 初学者Apache Solr教程
  14. 电感值、电容值的理解(上)
  15. 跳出舒适区发现更大的世界,来社科院杜兰金融管理硕士项目汲取能量挑战自我
  16. Dubbo-接口数据序列化Serialization
  17. HTML实现两行两列单元表
  18. Tomcat 8 性能优化
  19. 元学习—关系网络和匹配网络
  20. Softmax激活函数

热门文章

  1. 对统驭科目和特别总账标志的理解
  2. ABAQUS报错:“ADJUST cannot be used for non-faceted surfaces.”
  3. 有些微信朋友,每天喜欢发早安、图片给别人,这些人是什么心理?
  4. BUUCTF Url编码
  5. matlab 坐标移动,如何移动坐标轴到指定的位置
  6. 中企海外周报 | 银联业务拓展到171个国家和地区;徐工集团向非洲客户提供定制化设备...
  7. Jenkins编辑或替换All view
  8. 伯禹-公益AI学习打卡 Task02
  9. 阿里老兵深度雄文:不懂这些,你的复盘都是白费功夫!
  10. Unity打包的PC项目生成一个EXE文件