.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端口才可以。其他的微信文档有步骤的。

 

posted @ 2020-02-28 11:42  剑无尘  阅读(653)  评论(0编辑  收藏  举报