位置: IT常识 - 正文

JAVA微信公众号订阅消息推送(java微信公众号开发源码)

编辑:rootadmin
1、前期准备 1.申请微信公众号测试号及微信模板配置 2.申请一个微信公众号测试号。测试号申请:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login 3.扫码登陆注册,注册成功后就会生成微信公号的appID和appsecret ... 1、前期准备

推荐整理分享JAVA微信公众号订阅消息推送(java微信公众号开发源码),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:java微信公众号授权 拦截器,java微信公众号开发流程,java微信公众号授权 拦截器,java微信公众号登录接口,java微信公众号文章推送,java微信公众号关注事件,java微信公众号开发流程,java微信公众号文章推送,内容如对您有帮助,希望把文章链接给更多的朋友!

1.申请微信公众号测试号及微信模板配置

2.申请一个微信公众号测试号。测试号申请:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login

3.扫码登陆注册,注册成功后就会生成微信公号的appID和appsecret

4.需要接收消息的人微信扫码关注 测试号二维码,微信会返回我们的openid,这个openid在推送时接收消息的用户id。

JAVA微信公众号订阅消息推送(java微信公众号开发源码)

5.新增消息模板(模板ID是调用推送消息接口的重要参数),模板中参数内容必须以".DATA"结尾,否则视为保留字,模板保留符号"{{ }}"; 例如{{date.DATA}

6.配置之后就完成了微信公众号的配置

2、实现逻辑

1.获取微信基础accessToken

调用微信的接口,access_token肯定是需要的。access_token可以参考一下官方:https://developers.weixin.qq.com/miniprogram/dev/framework/server-ability/backend-api.html。accessToken有效期只有两小时(下面简称token),因此当调用一下方法一次后,就可以将其放入redis中,设置过期时间(低于两小时);

public void getAccessToken(){ String appId = "wxbac840efxxxxxxxx"; String appIdSecret = "dbf4aadaae8dab4e699xxxxxxxxxxxxx"; String requestUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+ appId +"&secret=" + appIdSecret; String res = HttpUtil.get(requestUrl); JSONObject jsonObject = JSONObject.fromObject(res); String accessToken = jsonObject.getString("access_token"); log.info("accessToken:{}", accessToken);}

2.获取关注公众号用户

public void getUserList(){ RestTemplate restTemplate = new RestTemplate(); String accessToken = "63_3G96dUuGl-r0rGQsD7Nh3IgoEi60z-hmfNqSHjbFTatwdDhlHRgKVwuzMzxzTenlEWoARYE3hgRgQF5yyCNbr9TWFYX7s_ABin_IxR6cROYnjwTkJ-VydFxHd_UQKBgAFAEYP"; String requestUrl = "https://api.weixin.qq.com/cgi-bin/user/get?access_token="+ accessToken; ResponseEntity<String> response = restTemplate.postForEntity(requestUrl, null, String.class); log.info("结果是: {}",response.getBody()); com.alibaba.fastjson.JSONObject result = com.alibaba.fastjson.JSONObject.parseObject(response.getBody()); com.alibaba.fastjson.JSONArray openIdJsonArray = result.getJSONObject("data").getJSONArray("openid"); Iterator iterator = openIdJsonArray.iterator(); if (iterator.hasNext()){ log.debug("用户openid:"+iterator.next()); } }

3.消息推送的消息体

public class WeChatTemplateMsg { /** * 消息 */ private String value; /** * 消息颜色 */ private String color; public WeChatTemplateMsg(String value) { this.value = value; this.color = "#173177"; } public WeChatTemplateMsg(String value, String color) { this.value = value; this.color = color; }}

4.消息推送

通过以上获取的 openId, accessToken 和 前期准备的模板id即可,再调用官方url即可,公众号模板推送接口:POST https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN

public void sendMessage(){ // 模板参数 Map<String, WeChatTemplateMsg> sendMag = new HashMap<String, WeChatTemplateMsg>(); // openId代表一个唯一微信用户,即微信消息的接收人 String openId = "ogwdJ6w7Om9sKtFc9mxxxxxxxxxx"; // 公众号的模板id(也有相应的接口可以查询到) String templateId = "yBVd_hZR1q5-hko3eP9BsuFfpYnFxxxxxxxxxxxxxx"; // 微信的基础accessToken String accessToken = "63_3G96dUuGl-r0rGQsD7Nh3IgoEi60z-hmfNqSHjbFTatwdDhlHRgKVwuzMzxzTenlEWoARYE3hgRgQF5yyCNbr9TWFYX7s_ABin_IxR6cROYnjwTkJ-VydFxHd_UQKBgAFAEYP"; String requestUrl = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + accessToken; sendMag.put("city", new WeChatTemplateMsg("广州")); RestTemplate restTemplate = new RestTemplate(); //拼接base参数 Map<String, Object> sendBody = new HashMap<>(); sendBody.put("touser", openId); // openId sendBody.put("url", "https://www.baidu.com"); //跳转网页url sendBody.put("data", sendMag); // 模板参数 sendBody.put("template_id", templateId); // 模板Id ResponseEntity<String> response = restTemplate.postForEntity(requestUrl, sendBody, String.class); log.info("结果是: {}",response.getBody()); com.alibaba.fastjson.JSONObject jsonObject = com.alibaba.fastjson.JSONObject.parseObject(response.getBody()); String messageCode = jsonObject.getString("errcode"); String msgId = jsonObject.getString("msgid"); System.out.println("messageCode : " + messageCode + ", msgId: " +msgId);}5.请求参数{"touser":"ogwdJ6w7Om9sKtFc9xxxxxxxx","template_id":"yBVd_hZR1q5-hko3eP9BsuFfxxxxxxxxxx","url":"www.baidu.com","data":{"city":{"value":"广州"}}}6.效果
本文链接地址:https://www.jiuchutong.com/zhishi/304655.html 转载请保留说明!

上一篇:网站在线客服聊天系统源码(网站客服系统在线)

下一篇:Golang 动态脚本调研(golang 调用动态库)

  • iqoo新系统originos ocean怎么切换

    iqoo新系统originos ocean怎么切换

  • 计算机中裸机是指什么(计算机的裸机指的是什么)

    计算机中裸机是指什么(计算机的裸机指的是什么)

  • 拼多多回复率什么补救(拼多多回复率什么时候开始计算)

    拼多多回复率什么补救(拼多多回复率什么时候开始计算)

  • oppo手机怎么投屏投到电视(oppo手机怎么投屏到电脑)

    oppo手机怎么投屏投到电视(oppo手机怎么投屏到电脑)

  • qq旋风为什么没了(qq旋风为什么没有了)

    qq旋风为什么没了(qq旋风为什么没有了)

  • 华为手机扫描功能在哪(华为手机扫描功能在哪里mate30pro)

    华为手机扫描功能在哪(华为手机扫描功能在哪里mate30pro)

  • 淘宝直播购物车在哪(淘宝直播购物车链接怎么弄)

    淘宝直播购物车在哪(淘宝直播购物车链接怎么弄)

  • 拼多多帮砍不了怎么办(拼多多为什么帮砍不了)

    拼多多帮砍不了怎么办(拼多多为什么帮砍不了)

  • p30pro灭屏显示能更改样式么(p30pro设置灭屏显示内容)

    p30pro灭屏显示能更改样式么(p30pro设置灭屏显示内容)

  • 华为nova6se微信怎么开美颜(华为nova6se微信怎么分身)

    华为nova6se微信怎么开美颜(华为nova6se微信怎么分身)

  • 电视usb读取不了手机(电视usb读取不了手机华为)

    电视usb读取不了手机(电视usb读取不了手机华为)

  • 相机连接电脑拍照同步(相机连接电脑拍照 x-A5)

    相机连接电脑拍照同步(相机连接电脑拍照 x-A5)

  • 电信4g套餐能用5g网络吗(电信用5g手机4g套餐能用5g吗)

    电信4g套餐能用5g网络吗(电信用5g手机4g套餐能用5g吗)

  • 华为微信深色模式如何关闭(华为微信深色模式为什么只有一点)

    华为微信深色模式如何关闭(华为微信深色模式为什么只有一点)

  • 西瓜视频一天可以发几个视频(西瓜视频一天可以刷多少金币)

    西瓜视频一天可以发几个视频(西瓜视频一天可以刷多少金币)

  • 苹果icloud储存有什么用(苹果icloud储存空间有什么影响)

    苹果icloud储存有什么用(苹果icloud储存空间有什么影响)

  • 抖音可以拉黑人吗(抖音可以拉黑人吗是不是就搜不到他的抖音号了)

    抖音可以拉黑人吗(抖音可以拉黑人吗是不是就搜不到他的抖音号了)

  • 小米手机红包助手在哪(小米手机红包助手怎么设置)

    小米手机红包助手在哪(小米手机红包助手怎么设置)

  • 淘宝签到红包怎么没有了(淘宝签到红包怎么签才能大一点)

    淘宝签到红包怎么没有了(淘宝签到红包怎么签才能大一点)

  • 木马病毒怎么清除(木马病毒怎么清除手机)

    木马病毒怎么清除(木马病毒怎么清除手机)

  • app自动续费(app自动续费没有在苹果订阅中)

    app自动续费(app自动续费没有在苹果订阅中)

  • 基于web的网上图书商城的设计与实现/图书购物系统(基于web的网站设计与实现)

    基于web的网上图书商城的设计与实现/图书购物系统(基于web的网站设计与实现)

  • 运输公司税率和税种
  • 无形资产摊销完后有余额吗
  • 注册资本 投资比例
  • 土地交易服务费属于非税收入吗
  • 计提减值准备是什么凭证
  • 行政单位总账科目
  • 财务费用属于什么科目借贷方向
  • 工资发放凭证由谁出具
  • 合并抵消分录的原理是什么
  • 房地产企业预缴增值税如何申报
  • 出口企业退税分录
  • 房产公司要交房产税吗
  • 销售返利增值税按哪个税率
  • 原材料供销合同和电子汇划收款回单金额不一样
  • 置换回房产怎么过户
  • 工企业用地土地使用税怎么征收?
  • 我国的税收管理体制和方向
  • 普通发票打歪了可以用吗
  • 往年的企业所得税季报可以更正吗
  • 保险公司如何计算车辆折旧
  • 河道工程维护管理费征收
  • 国产设备购置投资由设备原价与什么构成
  • 不锈钢材料开票
  • 个税免税收入和不征税收入
  • 会计新手入门
  • 个人所得税申请免税条件
  • 加计抵减怎么做账务处理小企业会计准则
  • ecshop怎么用
  • php中字符串函数
  • 利息股息红利个税计算表
  • wordpress介绍
  • php imagecopymerge
  • 应付福利费和应付职工薪酬的关系
  • nginx ss
  • 事业单位资产管理中存在的问题及整改措施
  • 数据库设计框架
  • thinkphp3.x中display方法及show方法的用法实例
  • 财务人离职了怎么说
  • vue的mvvm模型
  • java单点登录token
  • Vue(ref和$refs属性介绍与使用)
  • dex源码提取
  • 计算机专业的毕业设计作品新颖
  • css设置背景图片填充
  • 接受非货币性资产投资会计处理
  • 发票开错时,如何做账务处理?
  • 不动产集体产权证什么意思
  • 城市维护建设税,教育费附加,地方教育费附加
  • mysql存储过程语句
  • 企业增资相关知识点
  • 对公账户一直没有对账,会有什么后果吗?
  • 厂部管理人员的工资属于制造费用吗
  • 增值税税负率是多少
  • 车辆检验收费
  • 支付借款利息需要交税吗
  • w10 2021年更新
  • Centos系统里screen命令如何使用?Centos系统里screen命令的使用方法
  • Windows XP英文版序列号
  • yum下载已安装的包
  • win7 host文件路径
  • linux操作系统入门教程
  • win10正式版多少钱
  • 使用jquery操作dom
  • vue中使用node
  • [置顶]津鱼.我爱你
  • django分层
  • .material design
  • android studio代码写在哪
  • vim命令详解
  • javascript如何学
  • jquery中如何获取元素?
  • javascript indexOf函数使用说明
  • flappy bird攻略
  • web开发工程师需要学什么
  • 税务局着装规定文件
  • 登录""增值税发票选择确认平台""时提示""打开设备
  • 关于成品油的吨油换算
  • 苏州税务系统
  • 南京国民政府统治和开辟革命新道路
  • 广州代理记账公司注册
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设