首页 > 编程 > C# > 正文

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

2019-10-29 21:26:32
字体:
来源:转载
供稿:网友

本文实例讲述了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#教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表