微信公共服务平台开发(.Net的实现)1 认证“成为开发者”
- http://www.cnblogs.com/freeliver54/p/3725979.html
- http://www.it165.net/pro/html/201402/9459.html
-
这些代码也就开始认证的时候用一次,以后就不用了:
01.conststring Token ="XXXXX";//你的token02.protectedvoidPage_Load(object sender, EventArgs e)03.{04.string postStr ="";05.if(Request.HttpMethod.ToLower() =="post")06.{07.System.IO.Stream s = System.Web.HttpContext.Current.Request.InputStream;08.byte[] b =newbyte[s.Length];09.s.Read(b,0, (int)s.Length);10.postStr = System.Text.Encoding.UTF8.GetString(b);11.if(!string.IsNullOrEmpty(postStr))12.{13.//ResponseMsg(postStr);14.Response.Write(ResponseMsg(postStr));15.Response.End();16.}17.//WriteLog("postStr:" + postStr);18.}19.else20.{21.Valid();22.}23.}24.25./// <summary>26./// 验证微信签名27./// </summary>28./// * 将token、timestamp、nonce三个参数进行字典序排序29./// * 将三个参数字符串拼接成一个字符串进行sha1加密30./// * 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信。31./// <returns></returns>32.privatebool CheckSignature()33.{34.string signature = Request.QueryString["signature"].ToString();35.string timestamp = Request.QueryString["timestamp"].ToString();36.string nonce = Request.QueryString["nonce"].ToString();37.string[] ArrTmp = { Token, timestamp, nonce };38.Array.Sort(ArrTmp);//字典排序39.string tmpStr = string.Join("", ArrTmp);40.tmpStr = FormsAuthentication.HashPass<a href="http://www.it165.net/edu/ebg/"target="_blank"class="keylink">word</a>ForStoringInConfigFile(tmpStr,"SHA1");41.tmpStr = tmpStr.ToLower();42.if(tmpStr == signature)43.{44.returntrue;45.}46.else47.{48.returnfalse;49.}50.}51.52.53.privatevoidValid()54.{55.string echoStr = Request.QueryString["echoStr"].ToString();56.if(CheckSignature())57.{58.if(!string.IsNullOrEmpty(echoStr))59.{60.Response.Write(echoStr);61.Response.End();62.}63.}64.}65.66.67./// <summary>68./// 写日志(用于跟踪)69./// </summary>70.privatevoidWriteLog(string strMemo)71.{72.string filename = Server.MapPath("/logs/log.txt");73.if(!Directory.Exists(Server.MapPath("//logs//")))74.Directory.CreateDirectory("//logs//");75.StreamWriter sr =null;76.try77.{78.if(!File.Exists(filename))79.{80.sr = File.CreateText(filename);81.}82.else83.{84.sr = File.AppendText(filename);85.}86.sr.WriteLine(strMemo);87.}88.catch89.{90.91.}92.finally93.{94.if(sr !=null)95.sr.Close();96.}97.}
浙公网安备 33010602011771号