关于微信模板消息开发我们已经介绍了四种,相关java开发代码也贴出了不少,只要读者稍微改动一下即可运行测试,具体微信模板消息如何嵌入到自己工程项目中,还需要读者自己组织逻辑,我在这里只是简单介绍调用微信模板接口给关注用户发送模板消息。
但是这里有人会提出能否多次调用微信模板消息接口,群发给关注用户。如果非要发送给多个人,只能多次调接口,但是这样做可能会违反《模板消息运营规范》,有被封号的危险。
代码实现方法
第一步:获取模板ID
通过在模板消息功能的模板库中使用需要的模板,可以获得模板ID。
1,登录微信公众号管理平台中心,进入模板消息列表,然后点击右上角的从模板库中添加
然后搜索待处理通知,在搜索列表中选择相关模板消息类型,在这里微信官方给出了很多模板消息通知类型,读者可根据自己需求选择。
添加成功后,我们就可以在我的模板库中查询到我们刚刚添加的模板ID号,点击详情,我们就可以看到参数个格式,此格式为json格式。
第二步:请求接口
请注意,URL置空,则在发送后,点击模板消息会进入一个空白页面(ios),或无法点击(android)。
POST请求
https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN
请求包为一个json,java代码:
//待处理状态 V型知识库 www.vxzsk.com String params= "{" +"\"touser\":\""+openid+"\""+"," +"\"template_id\":\""+template_id+"\""+"," +"\"url\":\"\""+"," +"\"topcolor\":\"#7B68EE\""+"," +"\"data\":{" +"\"first\":{" +"\"value\":\"您好,曹晚,您有新的待处理事项\\n\""+"," +"\"color\":\"#000000\"" +"}," + "\"keyword1\":{" +"\"value\":\"请审批[深圳咨询实施部]fivest提交的流程\""+"," +"\"color\":\"#000000\"" +"}," + "\"keyword2\":{" +"\"value\":\"fivest\""+"," +"\"color\":\"#000000\"" +"}," + "\"keyword3\":{" +"\"value\":\"2016年9月2日 14:19\""+"," +"\"color\":\"#000000\"" +"}," +"\"remark\":{" +"\"value\":\"请点击详情进行处理\""+"," +"\"color\":\"#173177\"}}}";
openid为用户微信唯一加密串,template_id为上一步获取的模板id
第三步:编写java实现代码
import java.io.BufferedReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.URL; import java.net.URLConnection; /**** * V型知识库 * www.vxzsk.com * */ public class Test7 { public static String sendPost2(String requrl,String param){ URL url; String sTotalString=""; try { url = new URL(requrl); URLConnection connection = url.openConnection(); connection.setRequestProperty("accept", "*/*"); connection.setRequestProperty("connection", "Keep-Alive"); connection.setRequestProperty("Content-Type", "text/xml"); // connection.setRequestProperty("Content-Length", body.getBytes().length+""); connection.setRequestProperty("User-Agent", "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)"); connection.setDoOutput(true); OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream(), "utf-8"); out.write(param); // 向页面传递数据。post的关键所在! out.flush(); out.close(); // 一旦发送成功,用以下方法就可以得到服务器的回应: String sCurrentLine; sCurrentLine = ""; sTotalString = ""; InputStream l_urlStream; l_urlStream = connection.getInputStream(); // 传说中的三层包装阿! BufferedReader l_reader = new BufferedReader(new InputStreamReader( l_urlStream)); while ((sCurrentLine = l_reader.readLine()) != null) { sTotalString += sCurrentLine + "\r\n"; } } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println(sTotalString); return sTotalString; } /** *www.vxzsk.com V型知识库原创 * @param args */ public static void main(String[] args) { String access_token=WeixinUtil.getAccessToken(AppConst.APP_ID, AppConst.APPSECRET).getToken();//有效access_token String openid = "oAwbZjqse0NB7l5QrO8MGD5WhSVo";//用户的openid String template_id="RH88w7Liy_xjwMfEpstL9iJK9HDAYD3jGp0iyXTsiGg";//模板id String url="https://api.weixin.qq.com/cgi-bin/message/template/send?access_token="+access_token; //待处理状态 String params= "{" +"\"touser\":\""+openid+"\""+"," +"\"template_id\":\""+template_id+"\""+"," +"\"url\":\"\""+"," +"\"topcolor\":\"#7B68EE\""+"," +"\"data\":{" +"\"first\":{" +"\"value\":\"您好,曹晚,您有新的待处理事项\\n\""+"," +"\"color\":\"#000000\"" +"}," + "\"keyword1\":{" +"\"value\":\"请审批[深圳咨询实施部]fivest提交的流程\""+"," +"\"color\":\"#000000\"" +"}," + "\"keyword2\":{" +"\"value\":\"fivest\""+"," +"\"color\":\"#000000\"" +"}," + "\"keyword3\":{" +"\"value\":\"2016年9月2日 14:19\""+"," +"\"color\":\"#000000\"" +"}," +"\"remark\":{" +"\"value\":\"请点击详情进行处理\""+"," +"\"color\":\"#173177\"}}}"; String data = Test7.sendPost2(url, params); System.out.println("发送模板消息返回:"+data); } }
1),main方法中,参数access_token的获取请参考获取access_token 。在这里不在累述
2),用户openid即为我们经常用到的微信返回给公众号的用户唯一标识(相当于用户的微信号)。
3),参数template_id即为模板的id号,我们在微信公众管理平台添加模板的时候获得。
4),模板消息支持部分html标签代码,例如我们案例中的字体颜色,字体大小等都可设置。
5)url地址我们在这里设置为空,ios系统点击会跳转一个白色页面,用户体验不是很好。安卓机器点击无响应。
6)topcolor在低版本微信中有效果,高版本微信官方已经取消。
7),data参数就是我们在添加模板消息后,点击详情-详细内容-的格式,具体请查阅模板消息列表中的模板详情。
执行main方法,会返回{"errcode":0,"errmsg":"ok","msgid":xxx},代表模板消息已经成功发送到微信用户,上面代码读者可直接复制运行,不过acesss_token需要用户自行替换。效果图如下
把上述代码复制工程中即可运行,在这里小编不在提供案例源码,见谅。
感觉本站内容不错,读后有收获?小额赞助,鼓励网站分享出更好的教程