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#程序设计有所帮助。