Maison  >  Article  >  développement back-end  >  Développement C# du portail et de l'application WeChat (3) Réponse aux messages texte et aux messages image

Développement C# du portail et de l'application WeChat (3) Réponse aux messages texte et aux messages image

黄舟
黄舟original
2017-06-18 10:27:541966parcourir

Cet article présente principalement en détail la deuxième partie du développement C# du portail et de l'application WeChat, ainsi que la réponse aux messages texte et graphiques WeChat. Il a une certaine valeur de référence. Les amis intéressés peuvent s'y référer

. Les applications WeChat battent leur plein et de nombreuses entreprises espèrent accéder à l'information express. Il s'agit donc d'une opportunité commerciale et d'une direction technique. Par conséquent, la recherche et l'apprentissage du développement lié à WeChat lorsque vous en avez le temps sont devenus l'un des arrangements prévus. . 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 connexe de WeChat dans une perspective étape par étape, dans l'espoir de donner à chacun une compréhension du processus de développement pertinent.

Dans les deux articles précédents, il y a deux essais « Développement du portail et de l'application WeChat en C# (1) - Commencer à utiliser l'interface WeChat » et « Développement du portail et de l'application WeChat en C# (2) - Traitement et réponse aux messages WeChat". J'y présente grossièrement le cadre architecture de mon application WeChat. Cet essai continue d'introduire ce sujet et introduit le processus de réponse textuelle et de réponse graphique dans la réponse au message.

Nous savons que l'envoi de messages de réponse aux utilisateurs de téléphones mobiles peut être divisé de plusieurs manières, telles que répondre aux messages texte, répondre aux messages photo, répondre aux messages vocaux, répondre aux messages vidéo, répondre aux messages musicaux, répondre aux messages photo et texte, etc., comme indiqué ci-dessous.

Parmi eux, les images, les vidéos et les voix nécessitent une authentification WeChat pour envoyer les informations multimédias stockées sur le serveur WeChat aux utilisateurs. Généralement, le public n'a pas de compte ou d'authentification. les comptes de service ne peuvent pas envoyer ce type de contenu.

1. Relations et définitions des informations sur les entités

Dans le dernier essai sur le développement de WeChat, j'ai montré la réception de messages et réponse aux messages Entité d'application classes, ces classes d'entités sont encapsulées au niveau de l'application en fonction de mes besoins et de mes besoins de développement. Par exemple, la relation entre les messages de la réponse est la suivante.

La définition de la classe d'entité de la classe de base de message BaseMessage est la suivante. Elle construit une valeur entière pour la date et a quelques attributs généraux, et il y a aussi un important The. La méthode ToXML est utilisée pour transmettre ces données XML à la méthode.


/// <summary>
  /// 基础消息内容
  /// </summary>
  [XmlRoot(ElementName = "xml")]
  public class BaseMessage
  {
    /// <summary>
    /// 初始化一些内容,如创建时间为整形,
    /// </summary>
    public BaseMessage()
    {
      this.CreateTime = DateTime.Now.DateTimeToInt();
    }

    /// <summary>
    /// 开发者微信号
    /// </summary>
    public string ToUserName { get; set; }

    /// <summary>
    /// 发送方帐号(一个OpenID)
    /// </summary>
    public string FromUserName { get; set; }

    /// <summary>
    /// 消息创建时间 (整型)
    /// </summary>
    public int CreateTime { get; set; }

    /// <summary>
    /// 消息类型
    /// </summary>
    public string MsgType { get; set; }

    public virtual string ToXml()
    {
      this.CreateTime = DateTime.Now.DateTimeToInt();//重新更新
      return MyXmlHelper.ObjectToXml(this);
    }

  }

Le code de classe d'entité de message texte de réponse est le suivant. Nous pouvons voir qu'il hérite de nombreux attributs d'entité communs de , et il y en a. également une méthode générale de ToXml Lorsque nous devons le convertir en réponse XML, nous pouvons simplement utiliser cette méthode.


  /// <summary>
  /// 回复文本消息
  /// </summary>
  [System.Xml.Serialization.XmlRoot(ElementName = "xml")]
  public class ResponseText : BaseMessage
  {
    public ResponseText()
    {
      this.MsgType = ResponseMsgType.Text.ToString().ToLower();
    }

    public ResponseText(BaseMessage info) : this()
    {
      this.FromUserName = info.ToUserName;
      this.ToUserName = info.FromUserName;
    }

    /// <summary>
    /// 内容
    /// </summary>    
    public string Content { get; set; }
  }

La classe d'objets de message graphique ResponseNews contient plus de définitions d'informations


  /// <summary>
  /// 回复图文消息
  /// </summary>
  [System.Xml.Serialization.XmlRoot(ElementName = "xml")]
  public class ResponseNews : BaseMessage
  {
    public ResponseNews()
    {
      this.MsgType = ResponseMsgType.News.ToString().ToLower();

      this.Articles = new List<ArticleEntity>();
    }
    public ResponseNews(BaseMessage info) : this()
    {
      this.FromUserName = info.ToUserName;
      this.ToUserName = info.FromUserName;
    }

    /// <summary>
    /// 图文消息个数,限制为10条以内
    /// </summary>
    public int ArticleCount
    {
      get
      {
        return this.Articles.Count;
      }
      set
      {
        ;//增加这个步骤才出来XML内容
      }
    }

    /// <summary>
    /// 图文列表。
    /// 多条图文消息信息,默认第一个item为大图,注意,如果图文数超过10,则将会无响应
    /// </summary>
    [System.Xml.Serialization.XmlArrayItem("item")]
    public List<ArticleEntity> Articles { get; set; }

  }

Les objets dans le La collection de listes d'images et de textes est également un type d'entité et contient des liens d'images et de texte, des titres et d'autres informations, qui ne seront pas décrits en détail.

2. Traitement des réponses aux messages

Pour les messages texte, nous pouvons les traiter des manières suivantes.


ResponseText response = new ResponseText(info);
response.Content = "抱歉,此功能暂未开通。";
result = response.ToXml();

Pour les messages graphiques, nous devrons peut-être saisir plus de messages pour obtenir de meilleurs résultats.

Faites attention aux informations sur l'image et le texte. Il est préférable de suivre la norme officielle pour la taille de l'image, sinon elle n'aura pas fière allure sur le téléphone mobile. La norme officielle semble être (360 200). pixels en largeur et en hauteur


 /// <summary>
    /// 订阅或者显示公司信息
    /// </summary>
    /// <param name="info"></param>
    /// <returns></returns>
    private string ShowCompanyInfo(BaseMessage info)
    {
      string result = "";
      //使用在微信平台上的图文信息(单图文信息)
      ResponseNews response = new ResponseNews(info);
      ArticleEntity entity = new ArticleEntity();
      entity.Title = "广州爱奇迪软件科技有限公司";
      entity.Description = "欢迎关注广州爱奇迪软件--专业的单位信息化软件和软件开发框架提供商,我们立志于为客户提供最好的软件及服务。\r\n";
      entity.Description += "我们是一家极富创新性的软件科技公司,从事研究、开发并销售最可靠的、安全易用的技术产品及优质专业的服务,帮助全球客户和合作伙伴取得成功。\r\n......(此处省略1000字,哈哈)";
      entity.PicUrl = "http://www.iqidi.com/WeixinImage/company.png";
      entity.Url = "http://www.iqidi.com";

      response.Articles.Add(entity);
      result = response.ToXml();

      return result;
    }

Jetons un coup d'œil au menu du portail WeChat de mon entreprise, n'est-ce pas cool ?

Ces deux types (messages texte et messages graphiques) sont les plus utilisés. De nombreux portails WeChat utilisent principalement ces deux méthodes pour répondre. Bien entendu, nous pouvons également effectuer différents traitements en fonction des différents messages soumis par les téléphones mobiles des clients. J'ai présenté les types de messages de demande dans l'essai précédent, comme indiqué ci-dessous.

Si vous devez faire attention pour comprendre l'effet global, vous pouvez utiliser WeChat pour scanner directement le code QR.

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