zoukankan      html  css  js  c++  java
  • 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} }
    
    领奖金额:{ {withdrawMoney.DATA} }
    领奖  时间:{ {withdrawTime.DATA} }
    银行信息:{ {cardInfo.DATA} }
    到账时间:  { {arrivedTime.DATA} }
    { {remark.DATA} }",
          "example": "您已提交领奖申请
    
    领奖金额:xxxx元
    领奖时间:2013-10-10 12:22:22
    银行信息:xx银行(尾号xxxx)
    到账时间:预计xxxxxxx
    
    预计将于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"," + "
    ";
                    postData += "   "name":"密码修改", " + "
    ";
                    postData += "   "url":"" + PwdURL + """ + "
    ";

    第二步:发送模板消息

                                    //发送模板消息,提示密码修改成功
                                    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:官网后台直接复制的,

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

  • 相关阅读:
    java常用问题排查工具
    一次CMS GC问题排查过程(理解原理+读懂GC日志)
    nginx [alert] 12339#0: 1024 worker_connections are not enough
    netstat Recv-Q和Send-Q
    Use of Recv-Q and Send-Q
    LoadRunner 11 error:Cannot initialize driver dll
    perf + Flame Graph火焰图分析程序性能
    nginx 499状态码
    supervisor管理nginx
    supervisor管理php-fpm
  • 原文地址:https://www.cnblogs.com/shaojiang/p/5800144.html
Copyright © 2011-2022 走看看