ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

.net core 3.1 mvc 微信公众号开发所遇到的问题

2020-09-18 16:33:49  阅读:204  来源: 互联网

标签:sort core 微信 token mvc var 服务器 HttpContext


1登录公众号.进行相关的配置(一般进行了微信认证,接口权限都会有,个人的就很多没有权限)

①AppID唯一标识,AppSecret(自动生成),生成access_token需要用到不能泄露,与微信服务器验证,ip白名单(踩了一个坑,我设置了一个ip地址,然后后续微信服务器发消息过来我这边一直收不到)

②服务器地址:开发者的url,需微信服务器能够访问的(不能是本地的),进行绑定和后续微信发消息都是发到这个url中(绑定是get,发消息是post)

token 这个开发者服务器也需要保存,用来验证是否是微信服务器发过来的,消息加密秘钥和加密方式自己随意设置

2开发者服务器设置

在微信开发文档中的接入指南有详细步骤,这里就不细说了 (验证通过就可以进行后续的开发了)

       public string Test()
        {
            _logger.LogInformation("开始调试");
            var methodType = HttpContext.Request.Method;

            _logger.LogInformation(methodType);
            if (methodType.Contains("GET"))
            {
                var signature = HttpContext.Request.Query["signature"];
                var timestamp = HttpContext.Request.Query["timestamp"];
                var nonce = HttpContext.Request.Query["nonce"];
                var echostr = HttpContext.Request.Query["echostr"];
                var token = _configuration.Token;   //这个就是上面说的在微信配置的token
                SortedDictionary<string, string> sort = new SortedDictionary<string, string>();
                sort.Add("token", token);    
                sort.Add("timestamp", timestamp);
                sort.Add("nonce", nonce);
                var str = "";
                foreach (var item in sort.OrderBy(c => c.Value))
                {
                    str += item.Value;
                }
                SHA1 sHA1 = SHA1.Create();
                var hash = sHA1.ComputeHash(Encoding.UTF8.GetBytes(str));
                string shaStr = BitConverter.ToString(hash);
                shaStr = shaStr.Replace("-", "");
                if (signature == shaStr.ToLower())
                {
                    return echostr;
                }
                return "";
            }

3开发这接收微信发过来的消息,再按照一定格式返回

 

标签:sort,core,微信,token,mvc,var,服务器,HttpContext
来源: https://www.cnblogs.com/carlpeng/p/13691990.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有