站内搜索

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

这篇文章主要介绍了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#开发微信公众号与订阅号接口实例代码的详细内容,更多请关注php中文网其它相关文章!

  • 上一篇:利用C#开发微信公众号之接收事件推送与消息排重的方法介绍
  • 下一篇:利用Yii2微信后台开发的详细介绍