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

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

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

①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开发这接收微信发过来的消息,再按照一定格式返回

 

上一篇:asp.net 各种下载方式汇总


下一篇:HttpContext, HttpContextBase, HttpContextWrapper之间关系