Heim  >  Artikel  >  Backend-Entwicklung  >  C#-Entwicklung des WeChat-Portals und der WeChat-Anwendung (3) Textnachrichten- und Bildnachrichtenantwort

C#-Entwicklung des WeChat-Portals und der WeChat-Anwendung (3) Textnachrichten- und Bildnachrichtenantwort

黄舟
黄舟Original
2017-06-18 10:27:541923Durchsuche

In diesem Artikel wird hauptsächlich der zweite Teil der C#-Entwicklung des WeChat-Portals und der WeChat-Anwendung sowie die Reaktion auf WeChat-Textnachrichten und Grafiknachrichten vorgestellt. Interessierte Freunde können sich darauf beziehen

WeChat-Anwendungen sind in vollem Gange, und viele Unternehmen hoffen, auf den Informationsexpress zugreifen zu können. Dies ist eine Geschäftsmöglichkeit und eine technische Richtung. Daher ist es zu einer der geplanten Maßnahmen geworden, sich über WeChat-bezogene Entwicklungen zu informieren. . Ziel dieser Artikelserie ist es, den relevanten Entwicklungsprozess und die relevante Erfahrungszusammenfassung von WeChat Schritt für Schritt umfassend vorzustellen und allen ein Verständnis für den relevanten Entwicklungsprozess zu vermitteln.

In den beiden vorherigen Artikeln gibt es zwei Aufsätze „Entwickeln eines WeChat-Portals und einer WeChat-Anwendung in C# (1) – Beginn der Verwendung der WeChat-Schnittstelle“ und „Entwickeln eines WeChat-Portals und einer WeChat-Anwendung in C# (2) – Verarbeitung“. und Antworten auf WeChat-Nachrichten“ Darin stelle ich grob das Framework Architektur meiner WeChat-Anwendung vor. In diesem Aufsatz wird dieses Thema weiter vorgestellt und der Prozess der Textantwort und der grafischen Antwort bei der Nachrichtenantwort vorgestellt.

Wir wissen, dass das Senden von Antwortnachrichten an Mobiltelefonbenutzer auf viele Arten unterteilt werden kann, z. B. Antworten auf Textnachrichten, Antworten auf Bildnachrichten, Antworten auf Sprachnachrichten, Antworten auf Videonachrichten, Antworten auf Musiknachrichten, Beantworten von Bild- und Textnachrichten usw., wie unten gezeigt.

Unter anderem erfordern Bilder, Videos und Stimmen eine WeChat-Authentifizierung, um auf dem WeChat-Server gespeicherte Medieninformationen an Benutzer zu senden. Im Allgemeinen verfügt die Öffentlichkeit nicht über eine Authentifizierung Dienstkonten können diese Art von Inhalten nicht senden.

1. Beziehungen und Definitionen von Entitätsinformationen

Im letzten Aufsatz über die WeChat-Entwicklung habe ich die Anwendungsentität Empfangen von Nachrichten und Beantworten von Nachrichten gezeigt Klassen, diese Entitätsklassen werden entsprechend meinen Anforderungen und Entwicklungsanforderungen auf Anwendungsebene gekapselt. Die Nachrichtenbeziehung der Antwort ist beispielsweise wie folgt.

Die Entitätsklassendefinition der Nachrichtenbasisklasse BaseMessage lautet wie folgt: Sie erstellt einen ganzzahligen Wert für das Datum und verfügt über einige allgemeine Attribute. Außerdem gibt es ein wichtiges Element Die ToXML-Methode wird verwendet, um diese XML-Daten an die Methode zu übergeben.


/// <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);
    }

  }

Der SMS-Entitätsklassencode der Antwort lautet wie folgt: erbt viele gemeinsame Entitätsattribute von und Es gibt auch eine allgemeine Methode von ToXml. Wenn wir es in Antwort-XML konvertieren müssen, können wir einfach diese Methode verwenden.


  /// <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; }
  }

Die grafische Nachrichtenobjektklasse ResponseNews enthält weitere Informationsdefinitionen


  /// <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; }

  }

Die Objekte in der Die Sammlung von Bild- und Textlisten ist ebenfalls ein Entitätstyp und enthält einige Bild- und Textlinks, Titel und andere Informationen, daher werde ich nicht auf Details eingehen.

2. Verarbeitung von Nachrichtenantworten

Textnachrichten können wir auf folgende Weise verarbeiten.


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

Für grafische Nachrichten müssen wir möglicherweise mehr Nachrichten eingeben, um bessere Ergebnisse zu erzielen.

Achten Sie auf die Bild- und Textinformationen. Halten Sie sich am besten an den offiziellen Standard für die Größe des Bildes, da es sonst auf dem Mobiltelefon nicht gut aussieht. Der offizielle Standard scheint zu sein. Pixel in Breite und Höhe


 /// <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;
    }

Werfen wir einen Blick auf das WeChat-Portalmenü meines Unternehmens, sieht es nicht cool aus?

Diese beiden Arten (Textnachrichten und grafische Nachrichten) werden am häufigsten verwendet. Viele WeChat-Portale verwenden hauptsächlich diese beiden Methoden, um zu antworten. Natürlich können wir auch unterschiedliche Verarbeitungen basierend auf verschiedenen Nachrichten durchführen, die von den Mobiltelefonen der Kunden übermittelt werden. Ich habe die Arten von Anforderungsnachrichten im vorherigen Aufsatz vorgestellt, wie unten gezeigt.

Wenn Sie aufpassen müssen, um den Gesamteffekt zu verstehen, können Sie WeChat verwenden, um den QR-Code direkt zu scannen.

Das obige ist der detaillierte Inhalt vonC#-Entwicklung des WeChat-Portals und der WeChat-Anwendung (3) Textnachrichten- und Bildnachrichtenantwort. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn