springboot小程序开发,spring 小程序

  springboot小程序开发,spring 小程序

  

目录

1.小程序推送信息列如我们去餐厅等位有预约提醒,剩余桌数2.申请小程序信息,申请信息模板3.根据开发文档开发4.代码如下:5.推送结果

 

  

1.小程序推送信息列如我们去餐厅等位有预约提醒,剩余桌数

首先申请一个小程序,微信开放平台:小程序

 

  

2.申请小程序信息,申请信息模板

appid

 

  密钥

  

3.根据开发文档开发

订阅邮件.发送微信开放文档

 

  

4.代码如下:

引入依赖

 

  依赖关系groupIdorg.apache.httpcomponents/groupId artifact id http客户端/artifactId版本4 .5 .2/版本/依赖关系先准备一个超文本传送协议工具类原子序数

  导入org。阿帕奇。http。http实体;导入组织。阿帕奇。http。客户。方法。可关闭的httpresponse导入org。阿帕奇。http。客户。方法。http get导入org。阿帕奇。http。客户。方法。http帖子;导入org。阿帕奇。http。连接SSL。noophostname验证程序;导入组织。阿帕奇。http。连接SSL。SSL connectionsocketfactory导入组织。阿帕奇。http。连接SSL。trustselfsignedstrategy导入org。阿帕奇。http。实体。字符串实体;导入组织。阿帕奇。http。impl。客户。可关闭的http客户端;导入org。阿帕奇。http。impl。客户。http客户端;导入org。阿帕奇。http。SSL。SSL上下文;导入org。阿帕奇。http。util。实体效用;导入Java。io。io异常;/* * * * @作者lrx * @ description : TODO * @ date 2021/3/9 9:50 */public class Http client tutils {//Http协议得到请求公共静态字符串httpGet(字符串网址)引发IOException { //初始化http客户端可关闭的http客户端http客户端=http客户端。创建默认值();//创建http get http get http get=new http get(URL);//发起请求,获取反应对象可关闭的httpresponse响应=http客户端。执行(http get);//获取请求状态码//response.getStatusLine().getStatusCode();//获取返回数据实体对象HttpEntity实体=响应。获取实体();//转为字符串字符串结果=实体实用程序。tostring(实体,‘UTF-8’);返回结果;} //Http协议邮政请求公共静态字符串httpPost(字符串url,字符串json)引发异常{ //初始http客户端可关闭的http客户端http客户端=http客户端。创建默认值();//创建邮政对象http post http post=新http post(URL);//设置内容类型/

  * 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; Map<String, Object> payloadMap = 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<String, Object> qqMap = new HashMap<String, Object>(); 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<String, Object> dataMap = new HashMap<String, Object>(); Map<String, String> valueMap1 = new HashMap<String, String>(); valueMap1.put("value", "成功"); Map<String, String> valueMap2 = new HashMap<String, String>(); valueMap2.put("value", "成功"); dataMap.put("thing3", valueMap1); dataMap.put("thing1", valueMap2); qqMap.put("data", dataMap); //发送 Map<String, Object> 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小程序推送信息内容请搜索盛行IT以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: