本文主要是介绍一日一技:微信开发-发送模板消息,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
概述
模板消息仅用于公众号向用户发送重要的服务通知,只能用于符合其要求的服务场景中,如信用卡刷卡通知,商品购买成功通知等。不支持广告等营销类消息以及其它所有可能对用户造成骚扰的消息。
建立模板的方式具体见
https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Template_Message_Interface.html
下面来说说具体的代码实现。
文档定义
接口调用请求说明
http请求方式: POST https://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", "miniprogram":{"appid":"xiaochengxuappid12345","pagepath":"index?foo=bar"}, "data":{"first": {"value":"恭喜你购买成功!","color":"#173177"},"keyword1":{"value":"巧克力","color":"#173177"},"keyword2": {"value":"39.8元","color":"#173177"},"keyword3": {"value":"2014年9月22日","color":"#173177"},"remark":{"value":"欢迎再次购买!","color":"#173177"}}}
实现方式
1、定义组织模板数据
Template_Id = TemplateIditem.TemplateId.FirstOrDefault(o => o.type == "Disconnected").value;var Data = new{first = new TemplateDataItem() { value = "您已解除连接!" },keyword1 = new TemplateDataItem() { value = userMgmtExtra.EMail },keyword2 = new TemplateDataItem() { value = DateTime.Now.ToString("yyyy年MM月dd日") },remark = new TemplateDataItem() { value = "您已解除微信绑定,若要持续接收xxxxxx系统信息,请至xxxx账户重新绑定,感谢您的使用" }};TemplateData = JsonConvert.SerializeObject(Data);
if (item.OpenId != null && Template_Id != null && TemplateData != null){return new TemplateSendParam(){OpenId = item.OpenId,Template_Id = Template_Id,TemplateData = TemplateData};}
2、post请求微信api
private static Tuple<TemplateSendInfo, string, string> TemplateSend(string AppId, string Appsecret, string OPENID, string template_id, string TemplateData, bool isResh){string jsonstr = "{\"touser\":\"" + OPENID + "\",\"template_id\":\"" + template_id + "\", \"data\":" + TemplateData + " }";var accessToken = TryGetAccessToken(AppId, Appsecret, isResh);string url = APIConfig.Templatesend(accessToken);string str = APIConfig.CreatePostHttpResponse(url, jsonstr);_logger.Debug("发送模板消息\r\n" + "输入:" + url + "\r\n" + jsonstr + "\r\n输出:" + str);return new Tuple<TemplateSendInfo, string, string>(JsonConvert.DeserializeObject<TemplateSendInfo>(str), url, jsonstr);}
效果
这篇关于一日一技:微信开发-发送模板消息的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!