SpringBoot小程序推送信息怎么实现
发表于:2024-10-18 作者:千家信息网编辑
千家信息网最后更新 2024年10月18日,这篇文章主要介绍了SpringBoot小程序推送信息怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringBoot小程序推送信息怎么实现文章都会有所收获,下面
千家信息网最后更新 2024年10月18日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安全错误
数据库的锁怎样保障安全
服务器如何换电源
兰州一得网络技术有限责任公司
软件开发过程客户的需求
沭阳进口网络技术诚信服务
青岛好搜网络技术有限公司
网络安全的不可否认性是指什么
关于大学生网络安全调查
中铁三局网络安全
博山财务软件开发价格
2020中国网络安全50强
服务器乱码
switch如何删除服务器数据
服务器的削峰错误
架设ssh代理服务器
db数据库编辑
数据库中可存储的数据类型
微信支付软件开发避税
数据库数据迁移工具
网络安全不是他们的事情
mysql 数据库 监控
中旅新世纪网络技术
软件显示服务器超时是什么意思
分布式数据库顶级会议
poe 台服数据库
网络安全培训描述
网络安全考研参考教程
护苗网络安全课 报道
手机成瘾的网络安全
数据库的内部类型
数据库插入一句话