专栏首页pangguomingC#微信接口之推送模板消息功能示例

C#微信接口之推送模板消息功能示例

本文实例讲述了C#微信接口之推送模板消息功能。分享给大家供大家参考,具体如下:

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; }
}

更多关于C#相关内容感兴趣的读者可查看本站专题:《C#常见控件用法教程》、《WinForm控件用法总结》、《C#数据结构与算法教程》、《C#面向对象程序设计入门教程》及《C#程序设计之线程使用技巧总结

希望本文所述对大家C#程序设计有所帮助。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 全面理解面向对象的 JavaScript

    前言 当今 JavaScript 大行其道,各种应用对其依赖日深。web 程序员已逐渐习惯使用各种优秀的 JavaScript 框架快速开发 Web 应用,从而...

    庞小明
  • 整合spring cloud云架构 - SSO单点登录之OAuth2.0登录认证(1)

    之前写了很多关于spring cloud的文章,今天我们对OAuth2.0的整合方式做一下笔记,首先我从网上找了一些关于OAuth2.0的一些基础知识点,帮助大...

    庞小明
  • Xcode添加库文件framework (转)

    首先来看什么是库,库(Library)说白了就是一段编译好的二进制代码,加上头文件就可以供别人使用。

    庞小明
  • C# 实现快递鸟API接口 数据签名通用方法

    接口对接常见的问题基本上是数据签名错误导致的接口联调失败,大家在电商平台调用快递鸟接口时,为了提供对接效率,给大家提供一些方法供大家参考。

    老杨占线
  • 从语音通话和视频通话两个方面搭建专属于自己的私有化部署的视频会议通话系统

    召开远程视频会议,可大大提高工作效率,节省与会人员的工作时间和会议费用。视频会议通话系统应用在政府、军队、教育、金融、交通、能源、医疗等行业及跨国、跨地区的企业...

    EasyNVR
  • 阿里云天池每周限时赛(内测版) 第3场

    用户7727433
  • S3请求来了,该怎么处理?

    ? 小新 职场新人,存储小白 立志成为职场老鸟,存储专家; 影视迷,东野迷。 前言 对于RGW而言,请求处理的过程是我们最关注的,因此在这一部分主要是归纳整理...

    腾讯云TStack
  • C++ OpenCV视频操作之稠密光流对象跟踪

    我们在学习完稀疏光流跟踪完后,我们再学习一下稠密光流对象跟踪,稠密光流算法(即图像上所有像素点的光流都计算出来),由于要计算图像上所有点的光流,故计算耗时,速度...

    Vaccae
  • 字符串问题-LeetCode 392、383、386、384、396、937(字符串)

    你可以认为 s 和 t 中仅包含英文小写字母。字符串 t 可能会很长(长度 ~= 500,000),而 s 是个短字符串(长度 <=100)。

    算法工程师之路
  • 谈谈 Linux 假死现象

    所谓假死现象,是指 Linux 内核 Alive,但是其上的某个或所有操作的响应变得很慢的现象。

    iMike

扫码关注云+社区

领取腾讯云代金券