Nous allons développer la plateforme publique WeChat, et la première étape est bien sûr d'avoir un compte public. Quoi? Je ne sais pas ce qu'est un compte officiel WeChat, mais il semble qu'il faille d'abord recommencer à s'entraîner, haha. En termes simples, notre plateforme WeChat est comme une grande société, avec des individus et diverses organisations en son sein.
Si vous souhaitez développer WeChat, vous devez d'abord avoir un serveur, mais vous n'en avez pas. À l'heure actuelle, vous pouvez utiliser des coquilles de cacahuètes pour mapper l'intranet au réseau public, afin de pouvoir accéder à votre site Web sur le réseau public.
Ensuite, vous devez écrire un code d'accès, et seul PHP est un exemple sur WeChat. Ci-joint voici un exemple de asp.net.
Créez d'abord un Default.aspx. Enregistrez Page_Load : (MyLog est une classe de journal, qui peut être ignorée) Concernant checkSignature(), c'est presque la même chose que ce que vous avez trouvé. Postez-le ici
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(); } }
La chose la plus importante est la phrase Response.End(). Si vous n'ajoutez pas cette phrase, vous ne pouvez pas la connecter (j'espère que quelqu'un pourra me le dire). Concernant checkSignature(), c'est presque la même chose que ce que j'ai trouvé. Je publierai
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; } }
ici principalement à cause du problème Response.End(), qui m'a fait travailler longtemps dessus. J'aimerais l'enregistrer ici. , dans l'espoir d'aider tous ceux qui le peuvent.
Il existe une autre possibilité que la vérification du jeton ait échoué à cause du serveur WeChat. Cliquez simplement 2 fois de plus, ne cliquez pas une seule fois comme moi ! ! !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!