C#开发微信公众号(4)---模板消息

目录
1、接口说明
2、代码实现
3、效果图
4、代码下载

发送模板消息和创建菜单一模一样。下面详细说明

1、接口文档说明

1、向指定的URL发起一个POST请求,同时附加JSON的格式数据。URL格式如下

https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN

JSON格式数据,就是向模板中的参数,填充的数值
2、模板创建
可以在微信测试公众号中创建模板,如下图所示
C#开发微信公众号(4)---模板消息_第1张图片
在创建方法中需要在预留参数的位置,模板中参数有点类似C#中的占位符。例如:

string test = string.Format("{0}这是一个占位符的演示字符串!", "你好!");
//test将是“你好!这是一个占位符的演示字符串!”

在模板中参数的格式为:{{参数.DATA}},大括弧里面的前半部分是参数名称,其他都是写死的。
所以可以在测试公众号中创建一个模板
3、将JSON数据附加到URL上,用于填充模板中的参数。JSON的数据格式如下:

{
	"touser": "111111111", //要发送给OPENID
	"template_id": "2222222222222", //创建的模板ID
	"url": "http://baidu.com", //点击模板后,界面跳转的URL
	"topcolor": "#FF0000", //颜色
	"data": {
		"myarg": {  // myarg就是我模板中参数的名称
			"value": "hello! world", //参数的内容
			"color": "#173177"
		}
	}
}

将以上JSON推送给URL,OPENID对应的微信号,就会收到消息了

2、代码说明

代码说明:
主方法的代码:

        //发送模板的消息
        private string sendTemplate()
        {
            //1、将推送模板的数据保存到mytemplate.txt了,也可以直接将JSON写成一个string串
            FileStream fs1 = new FileStream(Server.MapPath("~/") + "\\App_Data\\mytemplate.txt", FileMode.Open);
            StreamReader sr = new StreamReader(fs1, Encoding.GetEncoding("GBK"));
            string template_content = sr.ReadToEnd();
            sr.Close();
            fs1.Close();

            //2、获取我的访问令牌
            string my_token = getMyWeChatToken();

            //3、组合成发送模板的URL
            string url = string.Format("https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={0}", my_token);

            //4、调用发送模板的方法,并返回结果
            //因为可以与创建菜单的方法使用同一个,所以发送模板和创建菜单就使用了同一个
            return createMenu(url, template_content);
        }

以上是主方法。JSON数据格式如下:

{
	"touser": "ofh123123hgbYTPa6k",
	"template_id": "jska1sE8123123123gTLWA",
	"url": "http://baidu.com",
	"topcolor": "#FF0000",
	"data": {
		"myarg": {
			"value": "hello! world",
			"color": "#173177"
		}
	}
}

调用以上方法后,效果如下:

3、效果

C#开发微信公众号(4)---模板消息_第2张图片
点击“详情”链接,会跳转到之前设定的URL链接中
C#开发微信公众号(4)---模板消息_第3张图片

4、代码下载

源码下载如下:源码下载

你可能感兴趣的:(微信公众号)