微信公众平台开发之认证"成为开发者".Net代码解析
.Net实现微信公共服务平台开发的认证,认证成为开发者,具体内容如下
这些代码也就开始认证的时候用一次,以后就不用了:
conststringToken="XXXXX";//你的token
protectedvoidPage_Load(objectsender,EventArgse)
{
stringpostStr="";
if(Request.HttpMethod.ToLower()=="post")
{
System.IO.Streams=System.Web.HttpContext.Current.Request.InputStream;
byte[]b=newbyte[s.Length];
s.Read(b,0,(int)s.Length);
postStr=System.Text.Encoding.UTF8.GetString(b);
if(!string.IsNullOrEmpty(postStr))
{
//ResponseMsg(postStr);
Response.Write(ResponseMsg(postStr));
Response.End();
}
//WriteLog("postStr:"+postStr);
}
else
{
Valid();
}
}
///<summary>
///验证微信签名
///</summary>
///*将token、timestamp、nonce三个参数进行字典序排序
///*将三个参数字符串拼接成一个字符串进行sha1加密
///*开发者获得加密后的字符串可与signature对比,标识该请求来源于微信。
///<returns></returns>
privateboolCheckSignature()
{
stringsignature=Request.QueryString["signature"].ToString();
stringtimestamp=Request.QueryString["timestamp"].ToString();
stringnonce=Request.QueryString["nonce"].ToString();
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;
}
}
.privatevoidValid()
{
stringechoStr=Request.QueryString["echoStr"].ToString();
if(CheckSignature())
{
if(!string.IsNullOrEmpty(echoStr))
{
Response.Write(echoStr);
Response.End();
}
}
}
///<summary>
///写日志(用于跟踪)
///</summary>
privatevoidWriteLog(stringstrMemo)
{
stringfilename=Server.MapPath("/logs/log.txt");
if(!Directory.Exists(Server.MapPath("//logs//")))
Directory.CreateDirectory("//logs//");
StreamWritersr=null;
try
{
if(!File.Exists(filename))
{
sr=File.CreateText(filename);
}
else
{
sr=File.AppendText(filename);
}
sr.WriteLine(strMemo);
}
catch
{
}
finally
{
if(sr!=null)
sr.Close();
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。