zoukankan      html  css  js  c++  java
  • 微信公共服务平台开发(.Net 的实现)1-------认证“成为开发者”

    这些代码也就开始认证的时候用一次,以后就不用了:

    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();
    }
    }

  • 相关阅读:
    阿里妈妈又做了新工具,帮你把 Vue2 代码改成 Vue3 的
    gulp安装出错
    js操作select
    linux基本命令说明参数
    Linux基础——vim编辑器的使用
    常见报错——Uncaught TypeError: document.getElementsByClassName(...).addEventListener is not a function
    IE浏览器hack方法总结之条件注释判断
    浏览器兼容
    安好
    jQuery调整表列(左右拉动调整列宽)插件__colResizable,动态列如何使用
  • 原文地址:https://www.cnblogs.com/lyl6796910/p/3661097.html
Copyright © 2011-2022 走看看