使用C# .net开发微信公众号之给用户发送模板消息
来源:互联网 发布:河北 知乎 编辑:程序博客网 时间:2024/04/29 23:02
发送模板消息微信开发手册中是这样描述的:
发送模板消息
接口调用请求说明
http请求方式: POSThttps://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN
POST数据说明
POST数据示例如下:
{ "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" } } }
返回码说明
在调用模板消息接口后,会返回JSON数据包。正常时的返回JSON数据包示例:
{ "errcode":0, "errmsg":"ok", "msgid":200228332 }
使用效果
根据文档说明得知 我们要向这个地址https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKENPost如下数据 来发送模板:
{ "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" } } }上面这个数据 只是一个示例,具体的内容要根据公众号后台模板详情里的内容来:
比如我们要发送如上图所示的模板内容则要把模板示例写成这样:
{ "touser":"OPENID", "template_id":"ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY", "url":"http://weixin.qq.com/download", "data":{ "first": { "value":"恭喜你购买成功!", "color":"#173177" }, "name":{ "value":"巧克力", "color":"#173177" }, "remark":{ "value":"欢迎再次购买!", "color":"#173177" } } }
POST数据说明:
touser对应的值为用户的 openid
template_id 对应的值为 公众号后台的模板ID
大家也可以来获取模板ID 具体的方法大家可以参考我的另一篇文章:
使用C# .net开发微信公众号之获取模板ID
然后我们还需要另外一个参数就是post路径后面带的那个参数 ACCESS_TOKEN
获取ACCESS_TOKEN的方法大家可以参考我的另一篇文章:
使用C# .net开发微信公众号之获取AccessToken
注:发送的模板必须是公众号申请过的,不然会有相应的错误码返回,在公众号后台可以看如图所示:
然后我们就可以写代码了,我把自己的代码贴出来供大家参考:
/// <summary> /// 发送模板消息 /// </summary> /// <param name="accessToken">AccessToken</param> /// <param name="data">发送的模板数据</param> /// <returns></returns> public static string SendTemplateMsg(string accessToken, string data) { string url = string.Format("https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={0}", accessToken); HttpWebRequest hwr = WebRequest.Create(url) as HttpWebRequest; hwr.Method = "POST"; hwr.ContentType = "application/x-www-form-urlencoded"; byte[] payload; payload = System.Text.Encoding.UTF8.GetBytes(data); //通过UTF-8编码 hwr.ContentLength = payload.Length; Stream writer = hwr.GetRequestStream(); writer.Write(payload, 0, payload.Length); writer.Close(); var result = hwr.GetResponse() as HttpWebResponse; //此句是获得上面URl返回的数据 string strMsg = WebResponseGet(result); return strMsg; }
获取Response:
public static string WebResponseGet(HttpWebResponse webResponse) { StreamReader responseReader = null; string responseData = ""; try { responseReader = new StreamReader(webResponse.GetResponseStream()); responseData = responseReader.ReadToEnd(); } catch { throw; } finally { webResponse.GetResponseStream().Close(); responseReader.Close(); responseReader = null; } return responseData; }
返回码说明
在调用模板消息接口后,会返回JSON数据包。正常时的返回JSON数据包示例:
{ "errcode":0, "errmsg":"ok", "msgid":200228332 }
错误的话会返回相应的错误码,大家可以去手册里查 微信的 全局返回码说明
此方式或许有不妥之处,热烈欢迎大家吐槽。。。 错误之处也请大家指正,谢谢 ----- WeepingWeeper
谢谢大家观看参考,让我们一同进步。
微信的其他接口调用在持续更新中。。。欢迎关注持续关注。。
0 0
- 使用C# .net开发微信公众号之给用户发送模板消息
- 微信公众号开发之[发送模板消息]
- 使用微信公众号模板消息发送(基于.NET开发)
- Java微信公众平台开发之发送模板消息
- Java微信公众平台开发之发送模板消息
- Java微信公众平台开发之发送模板消息
- Java微信公众平台开发之发送模板消息
- Java微信公众平台开发之发送模板消息
- 【微信开发】给用户发送模板消息
- 使用C# .net开发微信公众号之获取模板列表
- 使用C# .net开发微信公众号之获取模板ID
- 使用C# .net开发微信公众号之删除模板
- 使用shell通过微信公众号发送模板消息
- 微信公众号发送模板消息
- 微信公众号发送模板消息
- 微信公众号发送模板消息
- 微信公众号开发-----微信模板消息接口-----发送模板消息
- 微信公众号的开发之 向用户发送消息(三)
- 在IAR调试stm32中断偏移的奇怪现象
- COGS 1008 贪婪大陆
- 简单通俗地理解Hash哈希存储
- eclipse运行最简单的.jsp
- jQuery 往table添加新内容有以下四个方法:
- 使用C# .net开发微信公众号之给用户发送模板消息
- undefined reference to `__android_log_print'解决
- SwipeRefreshPlusLayout
- Ubuntu 14.04 LTS 终端常用的快捷键
- 用C写出来的几个坑人游戏
- oop(一)基础知识总
- 自定义歌词View的优化(二)
- python 多线程(threading)
- 100天土鸡饲养计划(14)