C# 微信服务号推送模板消息

本文介绍了一种实现微信服务号模板消息推送的方法。通过获取access_token并构造特定格式的消息体,可以向指定用户发送预定义模板的消息。文中详细展示了获取access_token的过程及消息推送的实现代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这两天一直在做微信服务号模板消息推送,以下代码出自https://www.jb51.net/article/118132.htm

这里是封装的调用模板函数,放在项目中直接调用即可。

public string SendTempletMessge()

{

   string strReturn = string.Empty;

   try

   {

     #region 获取access_token

     string apiurl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=你的appid&secret=你的secret";

     WebRequest request = WebRequest.Create(@apiurl);

     request.Method = "POST";

     WebResponse response = request.GetResponse();

     Stream stream = response.GetResponseStream();

     Encoding encode = Encoding.UTF8;

     StreamReader reader = new StreamReader(stream, encode);

     string detail = reader.ReadToEnd();

     var jd = JsonConvert.DeserializeObject<WXApi>(detail);

     string token = (String)jd.access_token;

     #endregion

     #region 组装信息推送,并返回结果(其它模版消息于此类似)

     string url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + token;

     string temp = "{\"touser\": \"" + UserInfo.OpenID + "\"," +

            "\"template_id\": \"f3kRRjJeyLDf4tndtg-OJeRvgEdgjjDxCy4T9kuwM70\", " +

            "\"topcolor\": \"#FF0000\", " +

            "\"data\": " +

            "{\"first\": {\"value\": \"您好,您有一条回款通知信息\"}," +

            "\"keyword1\": { \"value\": \"单位名称\"}," +

            "\"keyword2\": { \"value\": \"日期\"}," +

            "\"keyword3\": { \"value\": \"金额\"}," +

            "\"keyword4\": { \"value\": \"业务员\"}," +

            "\"remark\": {\"value\": \"\" }}}";

     #endregion

   //核心代码

   GetResponseData(temp, @url);

     strReturn = "推送成功";

   }

   catch (Exception ex)

   {

    strReturn = ex.Message;

   }

   return strReturn;

}

/// <summary>

/// 返回JSon数据

/// </summary>

/// <param name="JSONData">要处理的JSON数据</param>

/// <param name="Url">要提交的URL</param>

/// <returns>返回的JSON处理字符串</returns>

public string GetResponseData(string JSONData, string Url)

{

   byte[] bytes = Encoding.UTF8.GetBytes(JSONData);

   HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);

   request.Method = "POST";

   request.ContentLength = bytes.Length;

   request.ContentType = "json";

   Stream reqstream = request.GetRequestStream();

   reqstream.Write(bytes, 0, bytes.Length);

   //声明一个HttpWebRequest请求

   request.Timeout = 90000;

   //设置连接超时时间

   request.Headers.Set("Pragma", "no-cache");

   HttpWebResponse response = (HttpWebResponse)request.GetResponse();

   Stream streamReceive = response.GetResponseStream();

   Encoding encoding = Encoding.UTF8;

   StreamReader streamReader = new StreamReader(streamReceive, encoding);

   string strResult = streamReader.ReadToEnd();

   streamReceive.Dispose();

   streamReader.Dispose();

   return strResult;

}

public class  WXApi

public string access_token { set; get; }

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值