微信推送模板消息

微信公众号向用户推送模板消息
首先需要在微信公众号平台添加自己要推送的模板(这边就以测试公众号为例)
在这里插入图片描述
根据添加的模板内容与格式数据

接下来就是根据api的接口去调用 官方文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1433751277
(由于网页显示问题 图片截取不全 详细请看官方文档)
在这里插入图片描述
模板有了 参数格式也知道了 接下来就是实现!
首先就是获取accessToken
既然要发送模板消息了 那么accessToken肯定也知道如何获取 这里就不再说明了

String accessToken="";
				try{
					//获取accessToken
					accessToken=AccessTokenInfo.accessToken.getAccessToken();
				}catch (Exception e) {
					logger.error("获取token错误:"+e);
				}
				
				// 设置模板id
				String template_id = "nSOD0y4L_ILp8a_MvVmddLSPPeiuQ6KTi0uZGin8PmQ";
				//设置发送模板的格式
				Map<String, Object> map=new HashMap<>();
				//设置要发送的用户openid
				map.put("touser", "");
				//设置模板id
				map.put("template_id", template_id);
				Map<String, Object> data=new HashMap<>();
				Map<String, Object> contentMap=new HashMap<>();
				//设置内容 和颜色
				contentMap.put("value", "测试内容");
				contentMap.put("color", "#173177");
				Map<String, Object> remarkMap=new HashMap<>();
				//设置内容和颜色
				remarkMap.put("value", "测试备注");
				remarkMap.put("color", "#173177");
				//根据模板内容的key 对应content.DATA
				data.put("content", contentMap);
				//根据模板内容的key 对应remark.DATA
				data.put("remark", remarkMap);
				//设置数据
				map.put("data", data);
				//请求的url
				String tmpurl = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="
						+ accessToken;
				//将数据格式为json数据
				String jsonString = new Gson().toJson(map).toString();
				// 使用POST请求发送数据
				String result = HttpUtil.postData(tmpurl, jsonString, "POST");
				//打印返回的数据
				System.out.println(result);
				if(result!=null && !result.equals("")) {
					JSONObject json2 = JSONObject.parseObject(result.toString());
				}

下面附加post请求工具类

public class HttpUtil {
    //private static final Log logger = Logs.get();  
       private final static int CONNECT_TIMEOUT = 5000; // in milliseconds  
       private final static String DEFAULT_ENCODING = "UTF-8";  

       public static String postData(String urlStr, String data){  
           return postData(urlStr, data, null);  
       }  

       public static String postData(String urlStr, String data, String contentType){ 
    	   //将字符流放入缓存中,先把字符读到缓存里,到缓存满了或者你flush的时候,再读入内存
           BufferedReader reader = null;  
           try {   
        	   //创建URL class的实例
               URL url = new URL(urlStr);
               //打开URL连接
               URLConnection conn = url.openConnection();  
               //URL 连接可用于输入和/或输出。如果打算使用 URL 连接进行输入,则将 DoInput 标志设置为 true;如果不打算使用,则设置为 false。默认值为 true。
               conn.setDoOutput(true);  
               //设置连接主机超时(单位:毫秒)
               conn.setConnectTimeout(CONNECT_TIMEOUT);  
               //设置从主机读取数据超时(单位:毫秒)
               conn.setReadTimeout(CONNECT_TIMEOUT); 
               if(contentType != null)  
                   conn.setRequestProperty("content-type", contentType);  
               OutputStreamWriter writer = new OutputStreamWriter(conn.getOutputStream(), DEFAULT_ENCODING);  
               if(data == null)  
                   data = "";  
               writer.write(data);   
               writer.flush();  
               writer.close();    

               reader = new BufferedReader(new InputStreamReader(conn.getInputStream(), DEFAULT_ENCODING));  
               StringBuilder sb = new StringBuilder();  
               String line = null;  
               while ((line = reader.readLine()) != null) {  
                   sb.append(line);  
                   sb.append("\r\n");  
               }  
               return sb.toString();  
           } catch (IOException e) {  
               //logger.error("Error connecting to " + urlStr + ": " + e.getMessage());  
           } finally {  
               try {  
                   if (reader != null)  
                       reader.close();  
               } catch (IOException e) {  
               }  
           }  
           return null;  
       }  
}

搞定!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值