zoukankan      html  css  js  c++  java
  • 微信验证

    public class WXverifyController : Controller
        {
            public ActionResult WXverify()
            {
                Load();
                return View();
            }
    
            const string Token = "Aa123456";//你的token  
    
    
            protected void Load()
            {
                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();
                }
            }
    
            public string ResponseMsg(string s)
            {
                return s;
            }
    
            /// <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();
                    }
                }
            }
  • 相关阅读:
    【Ubuntu 笔记】翻译 32.1 Job Control
    【Class 学习笔记】 浮点数的储存,运算
    【Ubuntu学习笔记】 安装篇-锐捷、scim、root改密码
    【Ubuntu学习笔记】安装篇-网络配置遇到的问题
    MySQL增删改查
    Spring MVC详解
    SSH和SSM对比总结
    hibernate工作原理
    JavaBean与xml互转的方法详解
    spring MVC如何获取session传值到前台
  • 原文地址:https://www.cnblogs.com/FH-cnblogs/p/3839940.html
Copyright © 2011-2022 走看看