C#微信公众号与订阅号接口开发示例代码
本文实例讲述了C#微信公众号与订阅号接口开发示例代码。分享给大家供大家参考,具体如下:
usingSystem; usingSystem.Web; usingSystem.IO; usingSystem.Text; usingSystem.Web.Security; usingweixin_api; publicclasswxgz_api:IHttpHandler { publicvoidProcessRequest(HttpContextcontext) { context.Response.ContentType="text/plain"; stringpostString=string.Empty; if(HttpContext.Current.Request.HttpMethod.ToUpper()=="POST") { //微信服务器对接口消息 using(Streamstream=HttpContext.Current.Request.InputStream) { Byte[]postBytes=newByte[stream.Length]; stream.Read(postBytes,0,(Int32)stream.Length); postString=Encoding.UTF8.GetString(postBytes); Handle(postString); } } else { //微信进行的Get测试(开发者认证) WxAuth(); } } ///<summary> ///处理信息并应答 ///</summary> privatevoidHandle(stringpostStr) { messageHelphelp=newmessageHelp(); stringresponseContent=help.ReturnMessage(postStr); HttpContext.Current.Response.ContentEncoding=Encoding.UTF8; HttpContext.Current.Response.Write(responseContent); } #region微信验证 publicvoidWxAuth() { stringtoken="xxxxxxxx"; if(string.IsNullOrEmpty(token)) { return; } stringechoString=HttpContext.Current.Request.QueryString["echostr"]; stringsignature=HttpContext.Current.Request.QueryString["signature"]; stringtimestamp=HttpContext.Current.Request.QueryString["timestamp"]; stringnonce=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> publicboolCheckSignature(stringtoken,stringsignature,stringtimestamp,stringnonce) { string[]ArrTmp={token,timestamp,nonce}; Array.Sort(ArrTmp); stringtmpStr=string.Join("",ArrTmp); tmpStr=FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr,"SHA1"); tmpStr=tmpStr.ToLower(); if(tmpStr==signature) { returntrue; } else { returnfalse; } } #endregion publicboolIsReusable { get { returnfalse; } } }
更多关于C#相关内容感兴趣的读者可查看本站专题:《C#常见控件用法教程》、《WinForm控件用法总结》、《C#数据结构与算法教程》、《C#面向对象程序设计入门教程》及《C#程序设计之线程使用技巧总结》
希望本文所述对大家C#程序设计有所帮助。