Maison  >  Article  >  développement back-end  >  Développement C# du portail et de l'application WeChat (2) Tutoriel de code graphique pour le traitement et la réponse des messages WeChat

Développement C# du portail et de l'application WeChat (2) Tutoriel de code graphique pour le traitement et la réponse des messages WeChat

黄舟
黄舟original
2017-06-18 10:26:531438parcourir

L'article présente principalement en détail la deuxième partie du développement C# du portail et de l'application WeChat, le traitement et la réponse des messages WeChat, qui a une certaine valeur de référence. Les amis intéressés peuvent s'y référer

L'application WeChat est complète. swing , de nombreuses entreprises espèrent accéder à l'information express. Il s'agit d'une opportunité commerciale et d'une orientation technique. C'est donc devenu l'un des arrangements prévus pour étudier et se renseigner sur le développement de WeChat lorsque vous en 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 « Développement C# du portail et de l'application WeChat (1) - Commencer à utiliser l'interface 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 de message texte, traitement de message d'événement, reconnaissance de message vocal et classification de base de 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.


  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. '


    /// <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 réponses. fonctions Traitez-le, puis renvoyez 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 de messages définit en fait une série d'opérations de traitement pour les messages de requête. Les paramètres sont différents objets de message , spécifiquement La définition du code 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).


  /// <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 sont transmis à la fonction de traitement 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 de développement du programme. Ce n'est pas la classe d'entité de WeChat elle-même ). C'est très pratique pour nous de gérer les opérations. un contenu de message différent à chaque fois, ce qui est très difficile. Des problèmes sont susceptibles de survenir. Un type de données aussi fortement typé améliore 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. . Il existe également un message, qui est une demande de message ou une réponse de notre serveur de développeur au serveur WeChat. Ceci est temporairement appelé interface de gestion de WeChat, 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 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é et sa relation d'héritage dans. la figure ci-dessous (Il est également personnalisé et pratique pour le développement de programmes), et sa relation est la suivante :

Les messages les plus couramment utilisés pour répondre sont les messages texte et les messages graphiques .

L'effet du message texte est le suivant.

Dans les messages graphiques, vous pouvez ajouter des images et des pages de liens détaillées, ce qui est un très bel effet. Pour ceux qui ont beaucoup de contenu et souhaitent afficher de meilleurs effets, ceci est généralement utilisé.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn