1. 程式人生 > 實用技巧 >.net core 3.1 mvc 微信公眾號開發所遇到的問題

.net core 3.1 mvc 微信公眾號開發所遇到的問題

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開發這接收微信發過來的訊息,再按照一定格式返回