微信对接推送模板消息
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();}}
微信对接推送模板消息相关推荐
- python微信推送消息_Python编程之微信推送模板消息功能示例
本文实例讲述了Python微信推送模板消息功能.分享给大家供大家参考,具体如下: 官方文档:https://mp.weixin.qq.com/wiki?t=resource/res_main& ...
- 微信公众号自定义菜单和推送模板消息
1.微信公众号测试账号: 找到服务号的开发文档,点击进去. Java代码: 准备工作: (1)填写JS接口安全域名 (2)填写接口配置信息: (2)java的Token验证接口 @RequestMap ...
- TP5之微信小程序推送模板消息
TP5之微信小程序推送模板消息 1.获取formId并且存储起来,获取formId方法见: https://blog.csdn.net/u010481239/article/details/78239 ...
- 设置微信自动回复,默认回复及推送模板消息
前一篇文章已经说明基础的一些配置(很基础的)SDK有很多类库具体使用请参考源码 1.默认回复 在自定义MessageHandler类找到DefaultResponseMessage方法,如果没有自行重 ...
- python微信推送消息_Python实现微信推送模板消息功能示例
这篇文章主要介绍了Python编程之微信推送模板消息功能,结合实例形式分析了Python微信推送消息接口的调用相关操作技巧,需要的朋友可以参考下 本文实例讲述了Python微信推送模板消息功能.分享给 ...
- 微信小程序云开发通过服务号给用户推送模板消息
主要参考下面两个文章 1.云函数接收公众号消息推送 | 微信开放社区 2.微信小程序通过公众号(服务号)推送通知或提醒步骤及代码(一,获取推送前所需信息)_微信小程序推送服务通知_庆登登登 ...
- 公众号推送模板消息(JAVA版)
公众号推送模板消息(JAVA版) 先贴上官方文档 步骤不多:组装请求体,调用接口 接口:(POST)https://api.weixin.qq.com/cgi-bin/message/template ...
- 微信推送模板消息的PHP代码整理
本文为本人原创,未经许可,不可转载. 博主长期从事微信开发,微信开发相关问题和业务请联系qq 2580234897 最近做过一个需要推送消息的系统,就研究了一下微信的模板消息的推送.由于认证过的微信 ...
- 微信小程序通过服务号推送模板消息
前言 公司要做一款新的微信小程序,因为业务需求要加入消息推送.因为之前APP是通过服务号推送给用户消息的,所以微信小程序要做消息推送也是首先想到了通过服务号推送.事实上在使用过程中服务号推送还是非常好 ...
最新文章
- 程序员会成为非常内卷的职业吗?
- 能买到鸿蒙系统,哪里能买到鸿蒙系统的设备?
- 使用 Chrome 开发者工具进行 JavaScript 问题定位与调试
- ping github超时问题
- 在java中图片随机播放_如何在Java中随机播放列表
- Vue移动端项目——搜索联想建议功能的实现(结合watch属性和使用lodash防抖节流)
- Fater R-CNN 整体把握
- linux系统支持u盘格式,linux下U盘格式化
- jquery.eq()
- c语言学生综合测评系统_学生综合评价系统
- CAD插件学习系列教程(五) 小菜选择易
- 可达性分析之三色标记算法详解
- 初学者Apache Solr教程
- 电感值、电容值的理解(上)
- 跳出舒适区发现更大的世界,来社科院杜兰金融管理硕士项目汲取能量挑战自我
- Dubbo-接口数据序列化Serialization
- HTML实现两行两列单元表
- Tomcat 8 性能优化
- 元学习—关系网络和匹配网络
- Softmax激活函数
热门文章
- 对统驭科目和特别总账标志的理解
- ABAQUS报错:“ADJUST cannot be used for non-faceted surfaces.”
- 有些微信朋友,每天喜欢发早安、图片给别人,这些人是什么心理?
- BUUCTF Url编码
- matlab 坐标移动,如何移动坐标轴到指定的位置
- 中企海外周报 | 银联业务拓展到171个国家和地区;徐工集团向非洲客户提供定制化设备...
- Jenkins编辑或替换All view
- 伯禹-公益AI学习打卡 Task02
- 阿里老兵深度雄文:不懂这些,你的复盘都是白费功夫!
- Unity打包的PC项目生成一个EXE文件