网站首页  汉语字词  英语词汇  考试资料  写作素材  旧版资料

请输入您要查询的考试资料:

 

标题 微信公众平台开发之认证“成为开发者”.Net代码解析
内容
    .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, 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> 
    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(); 
      } 
    }
    以上就是本文的全部内容,希望对大家的学习有所帮助
随便看

 

在线学习网考试资料包含高考、自考、专升本考试、人事考试、公务员考试、大学生村官考试、特岗教师招聘考试、事业单位招聘考试、企业人才招聘、银行招聘、教师招聘、农村信用社招聘、各类资格证书考试等各类考试资料。

 

Copyright © 2002-2024 cuapp.net All Rights Reserved
更新时间:2025/5/18 4:03:17