[微信小程序]向指定用户推送模版消息(c#代码)亲测可用
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | 调用:SubscribeMessageToUser( "用户openid字符串" );<br>官方比较坑:限制必须点击授权按钮的时候才能执行否则就会提示:<br>{ "errcode" :43101, "errmsg" : "user refuse to accept the msg rid: 5f66d001-785045b2-5443a9f9" }<br>翻译解释为:用户拒绝接收信息<br>小程序向指定用户推送模版消息(c#代码) [HttpPost] public JsonResult SubscribeMessageToUser( string openid, string title= null , string content= null ) { AjaxResult res = new AjaxResult(); res.state = false ; try { AccessTokenModel AccessTokenModel = xcx_Get_Token(); //获取access_token string _url = string .Format( "https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token={0}" , AccessTokenModel.access_token); //json参数 string jsonParam = Newtonsoft.Json.JsonConvert.SerializeObject( new { touser = openid, //用戶openid template_id = "模版ID" , // 模版template_id page = "pages/index/index" , //miniprogram_state = "developer", lang = "zh_CN" , data = new { thing1 = new { value = "签到提醒" }, time5 = new { value = DateTime.Now.ToString( "yyyy-MM-dd hh:mm:ss" ) }, thing2 = new { value = "点击签到" } } }); var request = (HttpWebRequest)WebRequest.Create(_url); request.Method = "POST" ; request.ContentType = "application/json;charset=UTF-8" ; byte [] byteData = Encoding.UTF8.GetBytes(jsonParam); int length = byteData.Length; request.ContentLength = length; Stream writer = request.GetRequestStream(); writer.Write(byteData, 0, length); writer.Close(); var response = (HttpWebResponse)request.GetResponse(); var responseString = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding( "utf-8" )).ReadToEnd(); JavaScriptSerializer js = new JavaScriptSerializer(); //实例化一个能够序列化数据的类 AccessTokenModel_Err ErrInfo = js.Deserialize<AccessTokenModel_Err>(responseString); //AccessTokenModel_Err ErrInfo = (AccessTokenModel_Err)JsonConvert.DeserializeObject(responseString); res.message = ErrInfo.errmsg; if (ErrInfo.errcode==0) res.state = true ; //return responseString.ToString(); } catch (Exception ex) { res.state = false ; res.message = ex.Message; } return Json(res, JsonRequestBehavior.AllowGet); } |
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· C++代码改造为UTF-8编码问题的总结
· DeepSeek 解答了困扰我五年的技术问题
· 为什么说在企业级应用开发中,后端往往是效率杀手?
· 用 C# 插值字符串处理器写一个 sscanf
· [翻译] 为什么 Tracebit 用 C# 开发
· 腾讯ima接入deepseek-r1,借用别人脑子用用成真了~
· Deepseek官网太卡,教你白嫖阿里云的Deepseek-R1满血版
· DeepSeek崛起:程序员“饭碗”被抢,还是职业进化新起点?
· RFID实践——.NET IoT程序读取高频RFID卡/标签