摘要:微信公众号回复给用户的消息不仅包含图文消息,文本消息,图片消息,地理位置消息,音频消息等,由于公众号针对的是企业用户,所以企业有大量需求需要一个美观的消息模板回复给用户,例如支付成功通知消息,购买成功通知消息,支付失败通知消息,会员消费通知消息等,微信不负所托,给微信公众号开发者提供了一套自定义的模本消息类型。本章介绍如何调用模板消息接口对用户支付成功后进行通知。
模板消息调用时主要需要模板ID和模板中各参数的赋值内容。请注意:
1.模板中参数内容必须以".DATA"结尾,否则视为保留字;
2.模板保留符号"{{ }}"
流程,调用模板消息方法流程如下
第一步:获取模板ID
通过在模板消息功能的模板库中使用需要的模板,可以获得模板ID。
微信公众号管理平台->首页左上角模板消息(如果没有点击插件添加)->从模板库中添加
添加后我们在我的模板列表中可以看到添加的模板和模板id号
第二步:请求接口
请注意,URL置空,则在发送后,点击模板消息会进入一个空白页面(ios),或无法点击(android)。
POST请求https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN
第三步:编写代码
在我的模板列表中,点击支付成功通知模板详情链接,查看详情。红色圈的部分即为接口参数json格式
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; } /** * @param args */ public static void main(String[] args) { String access_token="";//有效access_token String openid = "";//用户的openid String template_id="";//模板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\":\"http://www.xxx.com/xxx/weixin/xy.do?params=oAwbZjqse0NB7l5QrO8MGD5WhSVo\""+"," +"\"topcolor\":\"#7B68EE\""+"," +"\"data\":{" +"\"first\":{" +"\"value\":\"恭喜你支付成功!\""+"," +"\"color\":\"#fff000\""+"," +"\"font-size\":\"32px\"" +"}," + "\"orderMoneySum\":{" +"\"value\":\"69.00元\""+"," +"\"color\":\"#173177\"" +"}," +"\"orderProductName\": {" +"\"value\":\"订单号:233333333\""+"," +"\"color\":\"#173177\"" +"}," +"\"remark\":{" +"\"value\":\"欢迎再次来V型知识库支付!\""+"," +"\"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标签代码,例如我们案例中的字体颜色,字体大小等都可设置
运行main方法,会返回{"errcode":0,"errmsg":"ok","msgid":xxx},代表着已发送成功通知消息给用户。如下图收到的订单支付成功通知消息
感觉本站内容不错,读后有收获?小额赞助,鼓励网站分享出更好的教程