• .NET微信开发 配置微信公众号基本配置的几种方法


          自己最近搞了公众号,记录一下。

    目的就是为了在微信公众号里启用服务器配置。 微信文档

     其实微信文档已经写得很清楚了,也很简单。(微信的目的就是它发送一个get请求,希望我们能接受一下,然后给微信回个数据告诉它)

    方法一:用WebApi,MVC架构(注意Controller里的这个Action不要去添加视图)

    微信发给我们四个参数:signature timestamp nonce echostr  我们通过微信要求之后把echostr这个字符串再发给微信。(最最简单的办法就是,我们啥都不做,接收echostr参数,直接返回这个参数。嘿嘿嘿)

     在Controller里这样写,也是能通过的。API架构加个路由,get请求。弄好后自己可以用postman测试一下(真的是啥都不用写)

    按照微信要求来:微信官方流程图

     我们拿到数据需要处理一下:代码如下

            /// <summary>
            /// 验证微信签名 wuchen
            /// </summary>
            /// <returns></returns>
            /// * 将token、timestamp、nonce三个参数进行字典序排序
            /// * 将三个参数字符串拼接成一个字符串进行sha1加密
            /// * 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信。
            public  bool CheckSignature()
            {
                var WeChat_Token = "TokenCrCool";
                //从微信服务器接收传递过来的数据
                string signature = VqiRequest.GetQueryString("signature"); //微信加密签名
                string timestamp = VqiRequest.GetQueryString("timestamp");//时间戳
                string nonce = VqiRequest.GetQueryString("nonce");//随机数
                
                string[] ArrTmp = { WeChat_Token, timestamp, nonce };
                Array.Sort(ArrTmp);     //字典排序
                string tmpStr = string.Join("", ArrTmp);//将三个字符串组成一个字符串
                tmpStr = FormsAuthentication.HashPasswordForStoringInConfigFile(tmpStr, "SHA1");//进行sha1加密
                tmpStr = tmpStr.ToLower();
                //加过密的字符串与微信发送的signature进行比较,一样则通过微信验证,否则失败。
                if (tmpStr == signature)
                {
                    return true;
                }
                else
                {
                    return false;
                }
            }

    返回true,然后再返回echostr字符串。

     方法二:三层架构的aspx页面(注意把前端页面删除干净,确保自己用postman测试的时候,只返回echostr)

    就是这么简单粗暴。前端页面代码要删除干净的,像这样

    方法三:一般处理程序 就两行代码。

    三种方法都是可行的,完成之后发布在自己的云服务器上。使用80,443端口才可以。其他的微信文档有步骤的。

  • 相关阅读:
    大厂前端带来css3动画transition的使用和介绍全新认识动画
    js事件冒泡和事件捕获详解
    css3动画讲解,关于css3的@keyframes和animation
    [bug] Hive:java.net.ConnectException: Connection refused
    [bug] Hive:User root is not allowed to impersonate anonymous
    [bug] Hive:Permission denied: user=anonymous, access=EXECUTE, inode=”/tmp”
    [bug] Hive:Error: FUNCTION 'NUCLEUS_ASCII' already exists. (state=X0Y68,code=30000)
    [Python] 环境
    [Java] Web
    [计算机科学] 编程语言
  • 原文地址:https://www.cnblogs.com/cr-cool/p/12376468.html
Copyright © 2020-2023  润新知