SpringBoot小程序推送信息怎么实现
发表于:2025-01-21 作者:千家信息网编辑
千家信息网最后更新 2025年01月21日,这篇文章主要介绍了SpringBoot小程序推送信息怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringBoot小程序推送信息怎么实现文章都会有所收获,下面
千家信息网最后更新 2025年01月21日SpringBoot小程序推送信息怎么实现
这篇文章主要介绍了SpringBoot小程序推送信息怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringBoot小程序推送信息怎么实现文章都会有所收获,下面我们一起来看看吧。
1.小程序推送信息列如我们去餐厅等位有预约提醒,剩余桌数
首先申请一个小程序,微信开放平台:小程序
2.申请小程序信息,申请信息模板
appid
AppSecret
3.根据开发文档开发
subscribeMessage.send | 微信开放文档
4.代码如下:
引入依赖
org.apache.httpcomponents httpclient 4.5.2
先准备一个HTTP工具类Z
import org.apache.http.HttpEntity;import org.apache.http.client.methods.CloseableHttpResponse;import org.apache.http.client.methods.HttpGet;import org.apache.http.client.methods.HttpPost;import org.apache.http.conn.ssl.NoopHostnameVerifier;import org.apache.http.conn.ssl.SSLConnectionSocketFactory;import org.apache.http.conn.ssl.TrustSelfSignedStrategy;import org.apache.http.entity.StringEntity;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.impl.client.HttpClients;import org.apache.http.ssl.SSLContexts;import org.apache.http.util.EntityUtils; import java.io.IOException; /** * @author lrx * @description: TODO * @date 2021/3/9 9:50 */public class HttpClientUtils { //Http协议GET请求 public static String httpGet(String url) throws IOException { //初始化HttpClient CloseableHttpClient httpClient = HttpClients.createDefault(); //创建HttpGet HttpGet httpGet = new HttpGet(url); //发起请求,获取response对象 CloseableHttpResponse response = httpClient.execute(httpGet); //获取请求状态码 //response.getStatusLine().getStatusCode(); //获取返回数据实体对象 HttpEntity entity = response.getEntity(); //转为字符串 String result = EntityUtils.toString(entity, "UTF-8"); return result; } //Http协议Post请求 public static String httpPost(String url, String json) throws Exception { //初始HttpClient CloseableHttpClient httpClient = HttpClients.createDefault(); //创建Post对象 HttpPost httpPost = new HttpPost(url); //设置Content-Type /* httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded");*/ StringEntity se = new StringEntity(json,"UTF-8"); se.setContentType("application/x-www-form-urlencoded"); httpPost.setEntity(se); //发起请求,获取response对象 CloseableHttpResponse response = httpClient.execute(httpPost); //获取请求码 //response.getStatusLine().getStatusCode(); //获取返回数据实体对象 HttpEntity entity = response.getEntity(); //转为字符串 String result = EntityUtils.toString(entity, "UTF-8"); return result; } //Https协议Get请求 public static String httpsGet(String url) throws Exception { CloseableHttpClient hp = createSSLClientDefault(); HttpGet hg = new HttpGet(url); CloseableHttpResponse response = hp.execute(hg); HttpEntity entity = response.getEntity(); String content = EntityUtils.toString(entity, "UTF-8"); hp.close(); return content; } //Https协议Post请求 public static String httpsPost(String url, String json) throws Exception { CloseableHttpClient hp = createSSLClientDefault(); HttpPost httpPost = new HttpPost(url); httpPost.setHeader("Content-Type", "application/json"); httpPost.setEntity(new StringEntity(json)); CloseableHttpResponse response = hp.execute(httpPost); HttpEntity entity = response.getEntity(); String content = EntityUtils.toString(entity, "UTF-8"); hp.close(); return content; } public static CloseableHttpClient createSSLClientDefault() throws Exception { //如果下面的方法证书还是不过,报错的话试试下面第二种 /* SSLContext sslContext = new SSLContextBuilder().loadTrustMaterial(null, new TrustStrategy(){ //信任所有 public boolean isTrusted(X509Certificate[] chain, String authType) throws CertificateException { return true; } }).build(); SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(sslContext); return HttpClients.custom().setSSLSocketFactory(sslsf).build();*/ SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory( SSLContexts.custom().loadTrustMaterial(null, new TrustSelfSignedStrategy()).build(), NoopHostnameVerifier.INSTANCE); return HttpClients.custom().setSSLSocketFactory(sslsf).build(); }}
测试代码
import com.alibaba.fastjson.JSONObject; import java.io.IOException;import java.util.Date;import java.util.HashMap;import java.util.Map; /** * @author lrx * @description: TODO 小程序推送 * @date 2022/4/11 13:32 */public class TestXCXMain { public static void main(String[] args) throws Exception { String appid = ""; //appid String secret = ""; //secret //登录链接获取token String loginUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=" + appid + "&secret=" + secret; MappayloadMap = JSONObject.parseObject(HttpClientUtils.httpGet(loginUrl)); String token = null; if (payloadMap.containsKey("access_token")) { token = payloadMap.get("access_token").toString(); } System.out.println("获取token" + token); Map qqMap = new HashMap (); qqMap.put("touser", "openid"); //要推送的openid qqMap.put("template_id", ""); //信息模板id qqMap.put("page", "index"); qqMap.put("miniprogram_state", "developer"); qqMap.put("lang", "zh_CN"); //封装信息 Map dataMap = new HashMap (); Map valueMap1 = new HashMap (); valueMap1.put("value", "成功"); Map valueMap2 = new HashMap (); valueMap2.put("value", "成功"); dataMap.put("thing3", valueMap1); dataMap.put("thing1", valueMap2); qqMap.put("data", dataMap); //发送 Map payloadMapData = JSONObject.parseObject(HttpClientUtils.httpPost("https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token="+token,JSONObject.toJSONString(qqMap))); if (payloadMapData.containsKey("errCode")) { System.out.println("返回code码:"+payloadMapData.get("errCode").toString()); } }}
5.推送结果
关于"SpringBoot小程序推送信息怎么实现"这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对"SpringBoot小程序推送信息怎么实现"知识都有一定的了解,大家如果还想学习更多知识,欢迎关注行业资讯频道。
信息
程序
推送
对象
UTF-8
知识
成功
代码
内容
字符
字符串
实体
数据
文档
模板
篇文章
开发
开放
价值
工具
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全中国电信主题
数据库日志恢复哪一项
服务器的管理组怎么删除吗
单片机软件开发项目经验
uml软件开发介绍
建阳区柏诚网络技术有限公司
客服软件开发易聊科技效果好
数据库选型与服务平台建设之路
互联网科技方面的书籍
存储服务器怎么管理
服务器保存文件不了
网络技术毕业心得
网络安全日宣传稿6000字
宁波软件开发 工资
惠普服务器怎么接驱动板
高清录播服务器720
软件开发项目成本包括
卖矿机服务器什么意思1
软件开发属于哪个技术领域
苹果公司服务器会关闭吗
北京昆仑乐享网络技术有限公司
问卷网如何批量删除数据库
进口网络技术开发材料
oracle数据库切换
美国阿里数据库
益阳地区软件开发合同律师哪个好
网络安全重保零报告
软件开发多少钱入无形资产
概括工业网络技术的应用
软件开发学习