新しい Index.ashx ファイルをバックグラウンドで作成しました。
まず最初にusing System.IOを引用しました
ここでの主なことは、
public class index : IHttpHandler { private readonly string Token = "xxxx";//与微信公众账号后台的Token设置保持一致,区分大小写。 public void ProcessRequest (HttpContext context) { context.Response.ContentType = "text/plain"; string signature = context.Request["signature"]; string timestamp = context.Request["timestamp"]; string nonce = context.Request["nonce"]; string echostr = context.Request["echostr"]; if (context.Request.HttpMethod == "GET") { if (CheckSign(signature, timestamp, nonce)) { context.Response.Output.Write(echostr); } } else { //post method - 当有用户想公众账号发送消息时触发,写事件 } context.Response.End(); }
実際、ここでのアイデアはA/B/を受け取ることです。 C/D、Eはカスタマイズされ、B/C/EはFを生成し、それをAと比較し、それらが等しい場合は出力Dを返します;
public bool CheckSign(string signature, string timestamp, string nonce) { string[] strs = new string[] { Token, timestamp, nonce }; Array.Sort(strs);//排序 string strNew = string.Join("", strs);//连接成字符串 strNew = System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(strNew, "SHA1");//加密 if (signature == strNew.ToLower()) return true; return false; }
書き込みを指摘するのは難しいです。 !
このようにして、受信したデータを判断し、それに対応する操作を行うことができます。
以下に例を示します。あまり抽象的ではないかもしれません。この方法 これは簡単な返信です。
WeChat 開発 asp.net に関連するその他の記事については、PHP 中国語 Web サイトに注目してください。