重庆小潘seo博客

当前位置:首页 > 重庆网络营销 > 小潘杂谈 >

小潘杂谈

C#开发微信公众号与订阅号接口的实例详解

时间:2020-09-17 15:00:07 作者:重庆seo小潘 来源:
本文实例讲述了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

本文实例讲述了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;}}#endregionpublic bool IsReusable{get{return false;}}}以上就是C#开发微信公众号与订阅号接口的实例详解的详细内容,更多请关注小潘博客其它相关文章!