C#开发微信公众号与订阅号接口实例代码

互联网 17-3-19
这篇文章主要介绍了C#微信公众号与订阅号接口开发示例代码,结合实例形式简单分析了C#针对微信接口的调用与处理技巧,需要的朋友可以参考下

本文实例讲述了C#微信公众号与订阅号接口开发示例代码。分享给大家供大家参考,具体如下:

using System;  using System.Web;  using System.IO;  using System.Text;  using System.Web.Security;  using weixin_api;  public class wxgz_api : IHttpHandler  {    public void ProcessRequest(HttpContext context)    {      context.Response.ContentType = "text/plain";      string postString = string.Empty;      if (HttpContext.Current.Request.HttpMethod.ToUpper() == "POST")      {        //微信服务器对接口消息        using (Stream stream = HttpContext.Current.Request.InputStream)        {          Byte[] postBytes = new Byte[stream.Length];          stream.Read(postBytes, 0, (Int32)stream.Length);          postString = Encoding.UTF8.GetString(postBytes);          Handle(postString);        }      }      else      {        //微信进行的Get测试(开发者认证)        WxAuth();      }    }    /// <summary>    /// 处理信息并应答    /// </summary>    private void Handle(string postStr)    {      messageHelp help = new messageHelp();      string responseContent = help.ReturnMessage(postStr);      HttpContext.Current.Response.ContentEncoding = Encoding.UTF8;      HttpContext.Current.Response.Write(responseContent);    }    #region 微信验证    public void WxAuth()    {      string token = "xxxxxxxx";      if (string.IsNullOrEmpty(token))      {        return;      }      string echoString = HttpContext.Current.Request.QueryString["echostr"];      string signature = HttpContext.Current.Request.QueryString["signature"];      string timestamp = HttpContext.Current.Request.QueryString["timestamp"];      string nonce = HttpContext.Current.Request.QueryString["nonce"];      if (CheckSignature(token, signature, timestamp, nonce))      {        if (!string.IsNullOrEmpty(echoString))        {          HttpContext.Current.Response.Write(echoString);          HttpContext.Current.Response.End();        }      }    }    /// <summary>    /// 验证微信签名    /// </summary>    public bool CheckSignature(string token, string signature, string timestamp, string nonce)    {      string[] ArrTmp = { token, timestamp, nonce };      Array.Sort(ArrTmp);      string tmpStr = string.Join("", ArrTmp);      tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1");      tmpStr = tmpStr.ToLower();      if (tmpStr == signature)      {        return true;      }      else      {        return false;      }    }    #endregion    public bool IsReusable    {      get      {        return false;      }    }  }

以上就是C#开发微信公众号与订阅号接口实例代码的详细内容,更多内容请关注技术你好其它相关文章!

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: 微信公众号
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:利用C#开发微信公众号之接收事件推送与消息排重的方法介绍

相关资讯