.Net 实现微信公共服务平台开发的认证,认证成为开发者,具体内容如下
这些代码也就开始认证的时候用一次,以后就不用了:
const string Token = "XXXXX";//你的token protected voID Page_Load(object sender,EventArgs e) { string poststr = ""; if (Request.httpMethod.Tolower() == "post") { System.IO.Stream s = System.Web.httpContext.Current.Request.inputStream; byte[] b = new byte[s.Length]; s.Read(b,(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> private bool CheckSignature() { string signature = Request.queryString["signature"].ToString(); string timestamp = Request.queryString["timestamp"].ToString(); string nonce = Request.queryString["nonce"].ToString(); 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; } } .private voID ValID() { string echoStr = Request.queryString["echoStr"].ToString(); if (CheckSignature()) { if (!string.IsNullOrEmpty(echoStr)) { Response.Write(echoStr); Response.End(); } } } /// <summary> /// 写日志(用于跟踪) /// </summary> private voID WriteLog(string strMemo) { string filename = Server.MapPath("/logs/log.txt"); if (!Directory.Exists(Server.MapPath("//logs//"))) Directory.CreateDirectory("//logs//"); StreamWriter sr = 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(); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。
总结以上是内存溢出为你收集整理的微信公众平台开发之认证全部内容,希望文章能够帮你解决微信公众平台开发之认证所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)