亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

[原創] ASP.NET WEBAPI 接入微信公眾平臺 總結,Token驗證失敗解決辦法

2019-11-17 01:54:03
字體:
來源:轉載
供稿:網友

[原創] asp.net WEBAPI 接入微信公眾平臺 總結,Token驗證失敗解決辦法

首先,請允許我說一句:shit!

因為這個問題不難,但是網上有關 ASP.NET WEBAPI的資料太少。都是php等等的。

我也是在看了某位大神的博客后有啟發,一點點研究出來的。

來看正題!

1.微信公眾平臺的接入方法,無非4個參數(signature, timestamp, nonce, echostr)加1個Token(兩邊對應)

2.Token, timestamp, nonce字典排序后,按照字符串“SHA1”加密。得出一串字符串 tmpStr(轉化為小寫)

3.然后比對 tmpStr 是否等于 signature,如果相等,則表示此次請求是來自于微信。

4.確定請求來自于微信,則已經完成一大步了。剩下一個,將echostr參數傳出給微信公眾平臺的工作了。(也正是這一步,耗費了3、4個小時)

PHP的代碼就不說了,有例子,網上資料也很多。值得一提的是 ASP.NET MVC的操作,給個鏈接自己去看:Senparc.Weixin.MP SDK 微信公眾平臺開發教程 索引

下面結合代碼來詳細解釋我的 ASP.NET WebAPI 對微信公眾平臺接入的操作。

1.獲取四個參數,此處可以看Log能否輸出獲取到的4個參數

        ///聲明Log全局變量     PRivate static log4net.ILog Log = LogManager.GetLogger("WeChatConnect");     ///聲明Token        public readonly string Token = "weixin";//與微信公眾賬號后臺的Token設置保持一致,區分大小寫。        ///申請消息        [HttpGet]        public HttpResponseMessage ConnWeChat(string signature, string timestamp, string nonce, string echostr)        {            try            {                Log.Debug("測試輸出: echostr = " + echostr);                Log.Debug("測試輸出: nonce = " + nonce);                Log.Debug("測試輸出: timestamp = " + timestamp);                Log.Debug("測試輸出: signature = " + signature);                string EchoStr = Valid(signature, timestamp, nonce, echostr);                if (!string.IsNullOrEmpty(EchoStr))                {                    Log.Debug("驗證成功!");                    return JsonTools.ToHttpMsgForWeChat(echostr);                }                else                {                    Log.Debug("驗證失敗!");                    return JsonTools.ToHttpMsgForWeChat("驗證失敗!");                }            }            catch (Exception ex)            {                Log.Error("Log 測試輸出:異常!", ex);                return JsonTools.ToHttpMsgForWeChat(ex.ToString());            }        }

2.Token, timestamp, nonce字典排序后,按照字符串“SHA1”加密。得出一串字符串 tmpStr(轉化為小寫),

比對 tmpStr 是否等于 signature,如果相等,則表示此次請求是來自于微信。

        private string Valid(string signature, string timestamp, string nonce, string echostr)        {            if (CheckSignature(signature,timestamp,nonce))            {                if (!string.IsNullOrEmpty(echostr))                {                    return echostr;                }            }            return "";        }        /// <summary>        /// 驗證微信簽名        /// </summary>        /// * 將token、timestamp、nonce三個參數進行字典序排序        /// * 將三個參數字符串拼接成一個字符串進行sha1加密        /// * 開發者獲得加密后的字符串可與signature對比,標識該請求來源于微信。        /// <returns></returns>        private bool CheckSignature(string signature,string timestamp,string nonce)        {            string[] ArrTmp = { Token, timestamp, nonce };            Array.Sort(ArrTmp); //字典排序            string tmpStr = string.Join("", ArrTmp);            tmpStr = FormsAuthentication.HashPassWordForStoringInConfigFile(tmpStr, "SHA1");            tmpStr = tmpStr.ToLower();            if (tmpStr == signature)            {                return true;            }            else            {                return false;            }        }

3.確定請求來自于微信,則只剩下將echostr參數傳出給微信公眾平臺了。

//來看看我上面代碼中的輸出方式:HttpResponseMessage        public HttpResponseMessage ConnWeChat(string signature, string timestamp, string nonce, string echostr)                //輸出語句        return JsonTools.ToHttpMsgForWeChat(echostr);        //返回字符串調用方法: 
 public static HttpResponseMessage ToHttpMsgForWeChat(string strMsg) { HttpResponseMessage result = new HttpResponseMessage { Content = new StringContent(strMsg, Encoding.GetEncoding("UTF-8"), "application/x-www-form-urlencoded") }; return result; }
此處要強調一下,參照PHP的 echo $echoStr , WebFrom 的 Response.Write(echoStr)等。一次次的調試判斷出微信的接受方式,只會以 "application/x-www-form-urlencoded" 來接受,所以我用HttpResponseMessage來指定其輸出方式。最后測試成功!

網上各位大神給出的接入方法足以研究出接入規則,我通過某大神給的工具:Ngrok工具,成功部署本機80端口開放給外網,更加便于調試。感謝!

博客開了3年,第一次規規矩矩的寫一次技術博文。不足的地方,望大家多多諒解。

專注于研究ASP.NET技術,最近迷上ASP.NET WebAPI。

個人網站正在搭建中:http://Amoysec.com,準備使用bootstrap + knockoutjs + MVC +WebAPI + EF6.0來做,其中對knockoutjs也算有不少的了解了,雖然比不上博客園的湯姆大叔,但也全憑自己對一份chm文檔摸索出了不少。歡迎一起探討!

轉載請注明出處,謝謝:http://www.49028c.com/mose/p/4136417.html


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91精品国产色综合久久不卡98口| 亚洲福利小视频| 亚洲一区二区在线| 亚洲人成网7777777国产| 欧美在线不卡区| 欧美亚洲午夜视频在线观看| 国产一区二区三区在线播放免费观看| 久久综合伊人77777蜜臀| 精品视频在线播放色网色视频| 国产一区二中文字幕在线看| 欧美性色19p| 38少妇精品导航| 成人免费看吃奶视频网站| 啪一啪鲁一鲁2019在线视频| 97精品久久久中文字幕免费| 国产精品日韩精品| 色综合老司机第九色激情| 日韩精品在线观看视频| 91精品国产综合久久久久久蜜臀| 91在线色戒在线| 法国裸体一区二区| 在线观看日韩www视频免费| 国产精品普通话| 亚洲国产精品系列| 91av中文字幕| 综合网中文字幕| 国产精品电影一区| 欧美俄罗斯乱妇| 成人xvideos免费视频| 日韩av不卡电影| 中文字幕日韩在线播放| 久操成人在线视频| 热99精品里视频精品| 欧美精品日韩www.p站| 日韩中文字幕网址| 欧美色欧美亚洲高清在线视频| 中文字幕日韩在线视频| 欧美日韩国产在线看| 欧美成人三级视频网站| 国产精品一区专区欧美日韩| 国产精品高清在线观看| 成人黄色免费网站在线观看| 亚洲欧美第一页| 日本午夜人人精品| 国产亚洲人成网站在线观看| 国产精品成久久久久三级| 久久天天躁夜夜躁狠狠躁2022| 日本久久久久亚洲中字幕| 色偷偷91综合久久噜噜| 亚洲精品美女久久久久| 在线免费看av不卡| 高清一区二区三区四区五区| 日韩中文字幕不卡视频| 国产91免费观看| 国产深夜精品福利| 国内外成人免费激情在线视频| 欧美日韩国产中文字幕| 91精品国产免费久久久久久| 欧美精品免费在线观看| 亚洲男人天堂2023| 久久精品亚洲94久久精品| 日韩精品中文字幕在线| 亚洲天堂2020| 国产欧美 在线欧美| 国产亚洲激情在线| 亚洲已满18点击进入在线看片| 久久久久久伊人| 精品动漫一区二区| 日韩欧美一区二区在线| 国产91在线播放| 尤物yw午夜国产精品视频| 国产精品夜间视频香蕉| 91精品视频大全| 国产精品网红福利| 91天堂在线观看| 久久久精品国产网站| 日韩www在线| 日韩久久精品成人| 亚洲精品国精品久久99热一| 久久琪琪电影院| 久久亚洲精品毛片| 亚洲国产古装精品网站| 国产精品高潮粉嫩av| 日韩在线视频线视频免费网站| 一区二区三区国产视频| 亚洲欧洲中文天堂| 亚洲毛片在线免费观看| 亚洲天天在线日亚洲洲精| 亚洲欧美日韩精品| 亚洲精品免费在线视频| 亚洲国产精品系列| 亚洲网站视频福利| 国产主播精品在线| 富二代精品短视频| 久热精品视频在线免费观看| 伊人久久久久久久久久| 欧美色另类天堂2015| 91精品国产高清久久久久久久久| 欧美日韩亚洲视频一区| 免费成人高清视频| 亚洲深夜福利视频| 成人h猎奇视频网站| 91精品视频在线播放| 日本高清视频一区| 欧美黑人巨大精品一区二区| 亚洲区bt下载| 国产日韩中文在线| 久久福利网址导航| 亚洲一区第一页| 欧美日韩激情网| 亚洲图片在区色| 一本色道久久综合狠狠躁篇怎么玩| 91国语精品自产拍在线观看性色| 亚洲一区二区国产| 高清欧美性猛交xxxx| 国产精品18久久久久久首页狼| 青青青国产精品一区二区| 92国产精品视频| 欧美激情手机在线视频| 亚洲一区二区三区毛片| 性色av香蕉一区二区| 亚洲肉体裸体xxxx137| 久久精品亚洲国产| 5566日本婷婷色中文字幕97| 日韩一区二区三区国产| 91网站在线免费观看| 91精品视频免费| 91av视频在线观看| 在线观看国产精品日韩av| 亚洲精品日韩欧美| 国产精品美女免费| 久久精品视频在线播放| 亚洲国产欧美日韩精品| 日本a级片电影一区二区| 国模精品视频一区二区三区| 欧美国产日本高清在线| 91成人国产在线观看| 亚洲国产日韩欧美在线99| 日韩亚洲一区二区| 国产精品高潮呻吟久久av无限| 亚洲天堂av在线播放| 国产精品视频26uuu| 成人精品视频久久久久| 91福利视频在线观看| 国产免费一区二区三区在线观看| 岛国视频午夜一区免费在线观看| 日韩免费在线视频| 富二代精品短视频| 久久影视三级福利片| 欧美激情xxxx性bbbb| 欧美激情一区二区三区在线视频观看| 久久久日本电影| 8050国产精品久久久久久| 久久精品福利视频| 欧美肥臀大乳一区二区免费视频| 日韩一区二区三区xxxx| 国产精品激情av电影在线观看| 欧美日韩一区二区在线| 久久久伊人欧美| 成人两性免费视频| 91麻豆国产语对白在线观看| 国产网站欧美日韩免费精品在线观看| 午夜精品久久久久久久99热浪潮| 久久精品视频中文字幕|