微信公众平台模板消息开发之购买失败通知(第4篇)

2017年09月12日 15:19 | 1996次浏览 作者原创 版权保护

为了保证用户不受到骚扰,在开发者出现需要主动提醒、通知用户时,才允许开发者在公众平台网站中模板消息库中选择模板,选择后获得模板ID,再根据模板ID向用户主动推送提醒、通知消息。

前面我们介绍了微信模板消息的三种类型,购买成功通知、支付成功通知、支付失败通知,本章节介绍微信模板消息中的购买失败通知。

具体调用方法

第一步:获取模板ID

通过在模板消息功能的模板库中使用需要的模板,可以获得模板ID。

1,登录微信公众号管理平台中心,进入模板消息列表,然后点击右上角的从模板库中添加


然后搜索购买失败 在搜索结果列表中选择一项,点击添加


添加成功后,我们就可以在我的模板库中查询到我们刚刚添加的模板ID号,点击详情,我们就可以看到参数个格式,此格式为json格式。

红色圆圈部分即为接口参数的格式。此参数格式为json字符串。红色箭头部分即为获取到的模板id


第二步:请求接口

请注意,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\":{"
		           
                             + "\"name\":{"
		                       +"\"value\":\"微信影城影票\\n订单号:15456456454645\""+","
		                       +"\"color\":\"#173177\""
		                       +"},"
		                         
		                   +"\"remark\":{"
		                       +"\"value\":\"我们将在24小时内为您退款。退款事宜请联系客服\""+","
		                       +"\"color\":\"#173177\"}}}";

openid为用户微信唯一加密串,template_id为上一步获取的模板id


第三步:编写java实现代码

1,获取access_token请参考https://www.vxzsk.com/28.html

2,  完整的java类代码,请注意main方法实现

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 = "oAwbZjqse0ssx37lss8MGD5ssSVo";//用户的openid
		String template_id="nHkNvBeXxnQssss33O3r_1yramye7th0SeHkC0";//模板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\":{"
		           
                             + "\"name\":{"
		                       +"\"value\":\"微信影城影票\\n订单号:15456456454645\""+","
		                       +"\"color\":\"#173177\""
		                       +"},"
		                         
		                   +"\"remark\":{"
		                       +"\"value\":\"我们将在24小时内为您退款。退款事宜请联系客服\""+","
		                       +"\"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需要用户自行替换。效果图如下


小说《我是全球混乱的源头》
此文章本站原创,地址 https://www.vxzsk.com/182.html   转载请注明出处!谢谢!

感觉本站内容不错,读后有收获?小额赞助,鼓励网站分享出更好的教程