Maison > Article > Applet WeChat > Développement WeChat asp.net
J'ai créé un nouveau fichier index.ashx en arrière-plan, ce qui est plus rapide ;
Tout d'abord Les principales citations
en utilisant System.IO
en utilisant System.Xml
La première consiste à recevoir le flux de fichiers XML, et l'autre consiste à traiter le fichier XML plus tard ;
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(); }
Définissez d'abord le jeton et recevez divers paramètres. La méthode de requête est envoyée par get
L'essentiel ici est le CheckSign. () fonction ;
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; }
En fait, la conscience ici doit recevoir A/B/C/D, E est personnalisé, B/C/E génère F, le compare avec A et renvoie le sortie D si égal ;
string xmlFromWeChat = new StreamReader(context.Request.InputStream).ReadToEnd();//读取XML流 XmlDocument xmldocument = new XmlDocument(); xmldocument.LoadXml(xmlFromWeChat);加载字符串 string fromContent = xmldocument.GetElementsByTagName("Content").Item(0).InnerText; string fromMsgType = xmldocument.GetElementsByTagName("MsgType").Item(0).InnerText;
Veuillez indiquer si l'écriture n'est pas bonne ! !
De cette façon, nous pouvons juger les données reçues et effectuer les opérations correspondantes. Le plus important est de se familiariser avec l'interface
Ce qui suit est un exemple ; . , peut-être pas très abstrait :
public string receiveText(string xmlFromWeChat) { XmlDocument xmlText = new XmlDocument(); xmlText.LoadXml(xmlFromWeChat); string content; string xmlStr; string keyword = xmlText.GetElementsByTagName("Content").Item(0).InnerText.Trim(); content = "欢迎关注xxx!"; string[] defArray = { xmlText.GetElementsByTagName("FromUserName").Item(0).InnerText, xmlText.GetElementsByTagName("ToUserName").Item(0).InnerText, ConvertDateTimeInt(DateTime.Now).ToString(), content}; xmlStr = transmitText(defArray); } return xmlStr; }
public string transmitText(string[] xmlArray) { string xmlstring = @"<xml> <tousername></tousername> <fromusername></fromusername> <createtime>{2}</createtime> <msgtype></msgtype> <content></content> </xml>"; string xmlstr = string.Format(xmlstring, xmlArray); return xmlstr; }
C'est une réponse simple
Pour plus d'articles liés au développement WeChat asp.net, veuillez faire attention au site Web PHP chinois !