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;
                }
            }    
    人生,总是有一些空城旧事,年华未央;总是有些季节,一季花凉,满地忧伤。许多事,看开了,便会峰回路转;许多梦,看淡了,便会云开日出。学会思索,学会珍藏,微笑领悟,默默坚强。
  • 相关阅读:
    jQuery里的$.ajax()方法详解
    express框架使用axios进行post请求, 两次请求问题
    electron-vue 报错 Unresolved node modules: bufferutil, utf-8-validate, canvas
    electron-vue离线打包
    个推技术:性能提升60%↑ 成本降低50%↓ Spark性能调优看这篇就够了!
    百亿级日志流分析实践 | 剖析个推后效分析功能实现原理
    iOS开发常用国外网站清单
    一篇文章搞定Git——Git代码管理及使用规范
    音视频技术入门——音频处理
    Java内存空间知识点梳理
  • 原文地址:https://www.cnblogs.com/yuzhou133/p/10265231.html
Copyright © 2011-2022 走看看