Wir werden die öffentliche WeChat-Plattform entwickeln, und der erste Schritt besteht natürlich darin, ein öffentliches Konto zu haben. Was? Ich weiß nicht, was ein offizielles WeChat-Konto ist, aber es scheint, als müsste man zuerst wieder üben, haha. Laienhaft ausgedrückt ist unsere WeChat-Plattform wie eine große Gesellschaft mit einzelnen Menschen und verschiedenen Organisationen.
Wenn Sie WeChat entwickeln möchten, müssen Sie zunächst einen Server haben, aber Sie haben keinen. Zu diesem Zeitpunkt können Sie Erdnussschalen verwenden, um das Intranet dem öffentlichen Netzwerk zuzuordnen, sodass Sie über das öffentliche Netzwerk auf Ihre Website zugreifen können.
Dann müssen Sie einen Zugangscode schreiben, und nur PHP ist ein Beispiel für WeChat. Im Anhang finden Sie ein Beispiel für asp.net.
Erstellen Sie zunächst eine Default.aspx. Checken Sie Page_Load ein: (MyLog ist eine Protokollklasse, die ignoriert werden kann) In Bezug auf checkSignature() ist es fast dasselbe wie das, was Sie gefunden haben. Posten Sie es hier
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(); } }
Das Wichtigste ist der Satz Response.End(). Wenn Sie diesen Satz nicht hinzufügen, können Sie ihn nicht verbinden (ich hoffe, jemand kann es mir sagen). In Bezug auf checkSignature() ist es fast dasselbe wie das, was ich gefunden habe. Ich werde
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; } }
hier hauptsächlich wegen des Response.End()-Problems posten, das mich dazu veranlasst hat, lange daran zu arbeiten. Ich möchte es hier aufzeichnen , in der Hoffnung, jedem zu helfen, der es kann.
Es besteht eine weitere Möglichkeit, dass die Token-Verifizierung aufgrund des WeChat-Servers fehlgeschlagen ist. Klicken Sie einfach noch zweimal. ! !
Das obige ist der detaillierte Inhalt vonEinführung in die asp.net-Zugriffsmethode für die WeChat-Entwicklung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!