想要微信開發(fā),首先要有個(gè)服務(wù)器,但是自己沒有。這時(shí)候可以用花生殼,將內(nèi)網(wǎng)映射到公網(wǎng)上,這樣就可以在公網(wǎng)訪問自己的網(wǎng)站了。具體見:https://www.jb51.net/article/83783.htm
然后要寫一個(gè)接入代碼,而微信上只有php是示例。這里附上asp.net的示例。
首先創(chuàng)建一個(gè)Default.aspx。在Page_Load里進(jìn)行檢驗(yàn):(MyLog是日志類,可以忽略) 關(guān)于checkSignature()就和所查到的差不多了。這里貼一下
MyLog.DebugInfo("request default.aspx"); String echoStr = Request.QueryString["echostr"]; MyLog.DebugInfo("echoStr:"+echoStr); if (this.checkSignature()) { if(!string.IsNullOrEmpty(echoStr)){ MyLog.DebugInfo("echostr:" + echoStr); Response.Write(echoStr); Response.End(); } }
最最主要的是那句Response.End(),不加這一句怎么樣都接不進(jìn)去(希望有大神告知)。 關(guān)于checkSignature()就和所查到的差不多了。這里貼一下
private bool checkSignature() { string signature = Request["signature"]; string timestamp = Request["timestamp"]; string nonce = Request["nonce"]; MyLog.DebugInfo(String.Format("signature:{0},timestamp:{1},nonce:{2}", signature, timestamp, nonce)); string token = TOKEN; string[] tmpArr = new string[] { token, timestamp, nonce }; Array.Sort(tmpArr); string tmpStr = string.Join("", tmpArr); //sha1加密 System.Security.Cryptography.SHA1 sha1 = new System.Security.Cryptography.SHA1CryptoServiceProvider(); byte[] secArr = sha1.ComputeHash(System.Text.Encoding.Default.GetBytes(tmpStr)); tmpStr = BitConverter.ToString(secArr).Replace("-", "").ToLower(); MyLog.DebugInfo(String.Format("after parse:{0}", tmpStr)); if (tmpStr == signature) { MyLog.DebugInfo("true"); return true; } else { return false; } }
這里主要是因?yàn)槟莻€(gè)Response.End()的問題,導(dǎo)致我搞了許久,特此記錄一下,希望幫助能幫助到的人。
還有一點(diǎn)可能是因?yàn)槲⑿欧?wù)器的原因Token驗(yàn)證失敗,多點(diǎn)2次即可,別像我這樣只點(diǎn)一次?。。?!
標(biāo)簽:甘肅 海西 臨夏 中衛(wèi) 聊城 清遠(yuǎn) 慶陽
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《微信開發(fā)(一) asp.net接入》,本文關(guān)鍵詞 微信,開發(fā),一,asp.net,接入,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。