Cet article présente principalement le processus de traitement et de réponse aux messages WeChat dans le portail WeChat à l'aide de l'interface WeChat en c#. Les amis dans le besoin peuvent s'y référer
Les applications WeChat battent leur plein et de nombreuses entreprises. J'espère rattraper l'information Express, c'est une opportunité commerciale et une direction technique. Par conséquent, c'est devenu l'un des arrangements prévus pour étudier et se renseigner sur le développement lié à WeChat lorsque vous avez le temps. Cette série d'articles espère présenter de manière exhaustive le processus de développement pertinent et le résumé de l'expérience pertinente de WeChat dans une perspective étape par étape, dans l'espoir de donner à chacun une compréhension du processus de développement pertinent. Cet essai est principalement basé sur l'article précédent « C# utilisant l'interface WeChat pour développer une application de portail WeChat » pour fournir une introduction approfondie et présenter le processus de traitement et de réponse aux messages WeChat.
1. Interaction de réponse aux messages de WeChat
Nous savons que le serveur de WeChat construit un pont entre le téléphone mobile du client et le serveur du développeur, via la transmission et la réponse des messages, réalise l'interaction avec l'utilisateur, voici son organigramme de messages.
Les messages demandés par WeChat au serveur du développeur incluent de nombreux types, mais ils sont essentiellement divisés en traitement des messages texte, traitement des messages d'événement, reconnaissance des messages vocaux et classification de base des opérations d'authentification des messages avant de devenir développeur. Vous trouverez ci-dessous un diagramme de classification des messages que j'ai dessiné, qui présente ces relations et leurs classifications respectives de raffinement des messages.
Pour ces demandes de message, lorsque nous développons le côté serveur, nous devons écrire une logique pertinente pour le traitement correspondant, puis répondre au message à la plate-forme serveur WeChat.
Dans l'essai précédent, j'ai posté le code pour présenter l'opération de saisie du traitement des messages WeChat. Le code est le suivant.
Le code est le suivant :
public void ProcessRequest(HttpContext context) { //WHC.Framework.Commons.LogTextHelper.Info("测试记录"); string postString = string.Empty; if (HttpContext.Current.Request.HttpMethod.ToUpper() == "POST") { using (Stream stream = HttpContext.Current.Request.InputStream) { Byte[] postBytes = new Byte[stream.Length]; stream.Read(postBytes, 0, (Int32)stream.Length); postString = Encoding.UTF8.GetString(postBytes); } if (!string.IsNullOrEmpty(postString)) { Execute(postString); } } else { Auth(); } }
Execute(postString) est la fonction de traitement des messages, qui implémente la distribution et le traitement de différents messages.
Le code est le suivant :
/// <summary> /// 处理各种请求信息并应答(通过POST的请求) /// </summary> /// <param name="postStr">POST方式提交的数据</param> private void Execute(string postStr) { WeixinApiDispatch dispatch = new WeixinApiDispatch(); string responseContent = dispatch.Execute(postStr); HttpContext.Current.Response.ContentEncoding = Encoding.UTF8; HttpContext.Current.Response.Write(responseContent); }
Le WeixinApiDispatch à l'intérieur est une classe de gestion de distribution. Il extrait le contenu du message de requête, construit différents types de paramètres de message et les transmet. différentes fonctions de réponse. Traiter, puis renvoyer le contenu XML encapsulé en réponse.
La logique spécifique de traitement du code est présentée dans la figure ci-dessous.
Cette interface de traitement des messages définit en fait une série d'opérations de traitement pour les messages de demande. Les paramètres sont des objets de message différents. La définition du code spécifique est la suivante (pour des raisons d'espace, certaines interfaces sont omises, veuillez vous référer à la figure ci-dessus pour plus de détails).
Le code est le suivant :
/// <summary> /// 客户端请求的数据接口 /// </summary> public interface IWeixinAction { /// <summary> /// 对文本请求信息进行处理 /// </summary> /// <param name="info">文本信息实体</param> /// <returns></returns> string HandleText(RequestText info); /// <summary> /// 对图片请求信息进行处理 /// </summary> /// <param name="info">图片信息实体</param> /// <returns></returns> string HandleImage(RequestImage info); /// <summary> /// 对订阅请求事件进行处理 /// </summary> /// <param name="info">订阅请求事件信息实体</param> /// <returns></returns> string HandleEventSubscribe(RequestEventSubscribe info); /// <summary> /// 对菜单单击请求事件进行处理 /// </summary> /// <param name="info">菜单单击请求事件信息实体</param> /// <returns></returns> string HandleEventClick(RequestEventClick info); }
Comme le montre le code ci-dessus , différents messages , lorsqu'il s'agit de la fonction de traitement, elle est transmise sous la forme de différentes classes d'entités de message (Remarque : la classe d'entité est définie par moi en fonction des besoins du développement du programme, pas la classe d'entité de WeChat lui-même), ce qui est très pratique pour traiter les opérations, sinon nous devons analyser différents contenus de message à chaque fois, ce qui causera facilement des problèmes. De tels types de données fortement typés améliorent la robustesse et l'efficacité du développement de notre application WeChat. Les objets de ces classes d'entités ont une certaine relation d'héritage, et leur relation d'héritage est la suivante.
2. Interface de gestion de WeChat
La classification des messages ci-dessus est une opération de demande de message envoyée par le serveur WeChat au serveur du développeur. , qui est la demande de message ou la réponse faite par notre serveur de développeur au serveur WeChat est temporairement appelée interface de gestion WeChat, ce qui montre que nous pouvons effectuer des réponses aux messages ou des opérations de gestion de données associées via ces interfaces. Son diagramme de classification est présenté ci-dessous.
Le traitement des messages de réponse de WeChat est également le même que les informations de la section ci-dessus. Il est également hérité de la classe d'entité BaseMessage (De même, la classe d'entité dans la figure ci-dessous. et sa relation d'héritage Il est également personnalisé et pratique pour le développement de programmes), et sa relation est la suivante
Pour répondre aux messages, les messages les plus couramment utilisés sont le texte messages et messages graphiques.
L'effet du message texte est le suivant.
Messages graphiques, vous pouvez ajouter des images, et vous pouvez également ajouter des pages de liens détaillées. C'est un très bel effet pour certains contenus, j'espère montrer de meilleurs effets. , ceci est généralement utilisé, et l'effet est le suivant.
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!