zoukankan      html  css  js  c++  java
  • 微信开发

    1、几个重要的参数:

    URL、Token、AppId、AppSecret

    2、URL签名

    这里我使用的是Senparc工具,使用的是mvc模式。

             /// <summary>
            /// 
            /// </summary>
            /// <param name="signature"></param>
            /// <param name="timestamp"></param>
            /// <param name="nonce"></param>
            /// <param name="echostr"></param>
            /// <returns></returns>
            [HttpGet]
            [ActionName("Index")]
            public ActionResult Index(string signature, string timestamp, string nonce, string echostr)
            {
                if (CheckSignature.Check(signature, timestamp, nonce, Token))
                {
                    return Content(echostr); //返回随机字符串则表示验证通过
                }
                else
                {
                    return Content("failed:" + signature + "," + CheckSignature.GetSignature(timestamp, nonce, Token) + "。如果您在浏览器中看到这条信息,表明此Url可以填入微信后台。");
                }
            }

     加密/校验流程如下:

      1. 将token、timestamp、nonce三个参数进行字典序排序

      2. 将三个参数字符串拼接成一个字符串进行sha1加密

      3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信。

            /// <summary>
            /// 验证微信签名
            /// </summary>
            /// * 将token、timestamp、nonce三个参数进行字典序排序
            /// * 将三个参数字符串拼接成一个字符串进行sha1加密
            /// * 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信。
            /// <returns></returns>
            public static bool CheckSignature(string token)
            {
                string signature = VqiRequest.GetQueryString("signature");
                string timestamp = VqiRequest.GetQueryString("timestamp");
                string nonce = VqiRequest.GetQueryString("nonce");
                string[] ArrTmp = { token, timestamp, nonce };
                Array.Sort(ArrTmp);     //字典排序
                string tmpStr = string.Join("", ArrTmp);
                tmpStr = Utils.HashPasswordForStoringInConfigFile(tmpStr, "SHA1");
                tmpStr = tmpStr.ToLower();
                if (tmpStr == signature)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }    
    人生,总是有一些空城旧事,年华未央;总是有些季节,一季花凉,满地忧伤。许多事,看开了,便会峰回路转;许多梦,看淡了,便会云开日出。学会思索,学会珍藏,微笑领悟,默默坚强。
  • 相关阅读:
    T3054 高精度练习-文件操作 codevs
    0812—①
    T1553 互斥的数 codevs
    T1229 数字游戏 codevs
    T3187 队列练习3 codevs
    Android NDK工程的编译和链接以及使用gdb进行调试
    PE文件附加数据感染之Worm.Win32.Agent.ayd病毒分析
    PE文件加节感染之Win32.Loader.bx.V病毒分析
    Android动态调试so库JNI_Onload函数-----基于IDA实现
    android在JNI_OnLoad入口函数下断点动态调试so库
  • 原文地址:https://www.cnblogs.com/yuzhou133/p/10265231.html
Copyright © 2011-2022 走看看