asp.net微信开发第九篇----模板消息的使用

 

获取模板列表

获取已添加至帐号下所有模板列表,可在MP中查看模板列表信息,为方便第三方开发者,提供通过接口调用的方式来获取帐号下所有模板信息,具体如下:

接口调用请求说明

http请求方式:GET
https://api.weixin.qq.com/cgi-bin/template/get_all_private_template?access_token=ACCESS_TOKEN

参数说明

参数是否必须说明
access_token 接口调用凭证

返回说明

正确调用后的返回示例:

{	
 "template_list": [{
      "template_id": "iPk5sOIt5X_flOVKn5GrTFpncEYTojx6ddbt8WYoV5s",
      "title": "领取奖金提醒",
      "primary_industry": "IT科技",
      "deputy_industry": "互联网|电子商务",
      "content": "{ {result.DATA} }\n\n领奖金额:{ {withdrawMoney.DATA} }\n领奖  时间:{ {withdrawTime.DATA} }\n银行信息:{ {cardInfo.DATA} }\n到账时间:  { {arrivedTime.DATA} }\n{ {remark.DATA} }",
      "example": "您已提交领奖申请\n\n领奖金额:xxxx元\n领奖时间:2013-10-10 12:22:22\n银行信息:xx银行(尾号xxxx)\n到账时间:预计xxxxxxx\n\n预计将于xxxx到达您的银行卡"
   }]
}

返回参数说明

参数说明
template_id 模板ID
title 模板标题
primary_industry 模板所属行业的一级行业
deputy_industry 模板所属行业的二级行业
content 模板内容
example 模板示例

删除模板

删除模板可在MP中完成,为方便第三方开发者,提供通过接口调用的方式来删除某帐号下的模板,具体如下:

接口调用请求说明

http请求方式post
https://api,weixin.qq.com/cgi-bin/template/del_private_template?access_token=ACCESS_TOKEN

POST数据说明如下:

 {
 “template_id”=”Dyvp3-Ff0cnail_CDSzk1fIc6-9lOkxsQE7exTJbwUE”
 }

参数说明

参数是否必须说明
template_id 公众帐号下模板消息ID

返回说明

在调用接口后,会返回JSON数据包。正常时的返回JSON数据包示例:

{
 "errcode":0,"errmsg":"ok"
}







用户手机微信接收到的模板消息

 

和平时我们微信中关注信用卡官方微信,如果消费了,信用卡官方微信就返回一个模板消息给我们告知,余额还有多少,消费了多少。

 

主要涉及到获取微信模板消息,删除模板消息,同步模板消息,

 

一、同步模板消息:

1.从微信服务器获取模板消息列表,进行本地化存储,

2.本地化存储前,删除本地全部模板消息列表

 

 

 

二、程序获取用户的OpenId,发送模板消息

 

 this.LinkBtnUpdate.Attributes.Add("OnClick", "return confirm('确定修改密码?')");

            if (Request.QueryString["code"] != null)
            {
                string code = Request.QueryString["code"].ToString();
                string codeurl = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" + WeiXinServer.appid.ToString() + "&secret=" + WeiXinServer.secret.ToString()+ "&code=" + code + "&grant_type=authorization_code";

                string content = HttpSendCode.GetPageContent(codeurl, Encoding.UTF8);

                //使用前需药引用Newtonsoft.json.dll文件
                JObject jsonObj = JObject.Parse(content);


                if (jsonObj.ToString().Contains("openid"))
                {
                    //Response.Write(jsonObj["openid"].ToString());
                    Session["openid"] = jsonObj["openid"].ToString();
                    Session.Timeout = 10;//设置session有效时间为10分钟
                }

            }

其中这个Session["openid"]是根据用户访问了EmploUpdatePwd.aspx这个网页,后台做的一些处理获取到的。

 

   1.//密码修改页面
        public const string updatePwdOAuthUrl = postUrl + "/EmploUpdatePwd.aspx";


        2.//跳转密码修改认证Url
        public  string PwdURL = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + WeiXinServer.appid.ToString() + "&redirect_uri=" + updatePwdOAuthUrl + "&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect";
      3.//微信中的点击菜单修改密码
         postData += "   \"type\":\"view\"," + "\r\n";
                postData += "   \"name\":\"密码修改\", " + "\r\n";
                postData += "   \"url\":\"" + PwdURL + "\"" + "\r\n";

 

 

第二步:发送模板消息

 

                                //发送模板消息,提示密码修改成功
                                WeiXinServer wxs = new WeiXinServer();
                                ///从缓存读取accesstoken
                                string Access_token = Cache["Access_token"] as string;
                                if (Access_token == null)
                                {
                                    //如果为空,重新获取
                                    Access_token = wxs.GetAccessToken();

                                    //设置缓存的数据7000秒后过期
                                    Cache.Insert("Access_token", Access_token, null, DateTime.Now.AddSeconds(7000), System.Web.Caching.Cache.NoSlidingExpiration);
                                }
                                string Access_tokento = Access_token.Substring(17, Access_token.Length - 37);

                                //https请求地址
                                string url = string.Format("https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={0}", Access_tokento);


                                //用户的openId
                                string UserOpenId = Session["openid"].ToString();
                    
                  
                   //官网示范的json串
//{ // "touser":"OPENID", // "template_id":"ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY", // "url":"http://weixin.qq.com/download", // "data":{ // "first": { // "value":"恭喜你购买成功!", // "color":"#173177" // }, // "keynote1":{ // "value":"巧克力", // "color":"#173177" // }, // "keynote2": { // "value":"39.8元", // "color":"#173177" // }, // "keynote3": { // "value":"2014年9月22日", // "color":"#173177" // }, // "remark":{ // "value":"欢迎再次购买!", // "color":"#173177" // } // } // } //string strPostData = "{ \"touser\":\"" + UserOpenId + "\",\"template_id\":\"3yj8V1SauPXkSC9-PoPvOEtvIXaQhFsP6-bjyDs8Ilo\",\"url\":\"http://weixin.deqiaohr.com.cn\", \"data\":{\"channel\":{\"value\":\"微信\",\"color\":\"#173177\"},\"orderNumber\":{\"value\":\"113234\",\"color\":\"#173177\"},\"state\":{\"value\":\"进入收单状态\",\"color\":\"#173177\"},\"doSomething\":{\"value\":\"kantzou将在今天下午三点上门收件\",\"color\":\"#173177\"},\"remark\":{\"value\":\"谢谢您的支持!\",\"color\":\"#173177\"}}}"; string postData = "{ \"touser\":\"" + UserOpenId + "\",\"template_id\":\"3yj8V1SauPXkSC9-PoPvOEtvIXaQhFsP6-bjyDs8Ilo\",\"url\":\"http://weixin.deqiaohr.com.cn/EmploUpdatePwd.aspx\", \"data\":{\"first\":{\"value\":\"恭喜您!你的查询密码已重置成功!\",\"color\":\"#173177\"},\"keyword1\":{\"value\":\"" + euserinfo.EmploName.ToString() + "\",\"color\":\"#173177\"},\"keyword2\":{\"value\":\"NULL\",\"color\":\"#173177\"},\"keyword3\":{\"value\":\"" + euserinfo.EmploIdentityCard.ToString().Substring(6,8)+ "\",\"color\":\"#173177\"},\"remark\":{\"value\":\"如需再次修改密码,请点击进入!!\",\"color\":\"#173177\"}} }"; string result = wxs.GetPage(url, postData);

 

1.template_id:官网后台直接复制的,

 

至于怎么添加的模板,官网有介绍不罗嗦。完成。

 

posted @ 2016-08-23 17:09  将哥  阅读(4131)  评论(3编辑  收藏  举报