Heim  >  Artikel  >  Backend-Entwicklung  >  C#-Entwicklung des WeChat-Portals und der WeChat-Anwendung (2) Grafisches Code-Tutorial für die Verarbeitung und Antwort von WeChat-Nachrichten

C#-Entwicklung des WeChat-Portals und der WeChat-Anwendung (2) Grafisches Code-Tutorial für die Verarbeitung und Antwort von WeChat-Nachrichten

黄舟
黄舟Original
2017-06-18 10:26:531481Durchsuche

Der Artikel stellt hauptsächlich den zweiten Teil der C#-Entwicklung des WeChat-Portals und der WeChat-Anwendung im Detail vor, die Verarbeitung und Antwort von WeChat-Nachrichten, die einen gewissen Referenzwert haben.

Die WeChat-Anwendung ist vollständig Viele Unternehmen hoffen, dass dies eine Geschäftsmöglichkeit und eine technische Richtung ist. Daher ist es zu einer der geplanten Vereinbarungen geworden, sich über die Entwicklung von WeChat 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. Dieser Aufsatz basiert hauptsächlich auf dem vorherigen Artikel „C#-Entwicklung eines WeChat-Portals und einer WeChat-Anwendung (1) – Beginn der Verwendung der WeChat-Schnittstelle“, um eine ausführliche Einführung zu bieten und den Prozess der Verarbeitung und Beantwortung von WeChat-Nachrichten vorzustellen.

1. WeChats Nachrichtenantwortinteraktion

Wir wissen, dass der WeChat-Server durch die Übertragung und Antwort von Nachrichten eine Brücke zwischen dem Mobiltelefon des Kunden und dem Server des Entwicklers baut. Realisiert die Interaktion mit dem Benutzer. Das Folgende ist sein Nachrichtenflussdiagramm.

Die Nachrichten, die WeChat vom Entwicklerserver anfordert, umfassen viele Arten, sind jedoch grundsätzlich in Textnachrichtenverarbeitung, Ereignisnachrichtenverarbeitung, Sprachnachrichtenerkennung und die grundlegende Klassifizierung unterteilt Nachrichtenauthentifizierungsvorgänge, bevor ich Entwickler wurde. Nachfolgend finden Sie ein von mir gezeichnetes Nachrichtenklassifizierungsdiagramm, das diese Beziehungen und ihre jeweiligen Nachrichtenverfeinerungsklassifizierungen vorstellt.

Für diese Nachrichtenanfragen müssen wir bei der Entwicklung der Serverseite die entsprechende Logik für die entsprechende Verarbeitung schreiben und dann auf die Nachricht an die WeChat-Serverplattform antworten.

Im vorherigen Aufsatz habe ich den Code zur Einführung des Eingabevorgangs der WeChat-Nachrichtenverarbeitung veröffentlicht. Der Code lautet wie folgt.


  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); ist die Nachrichtenverarbeitungsfunktion, die die Verteilung und Verarbeitung verschiedener Nachrichten implementiert. '


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

Das WeixinApiDispatch im Inneren ist eine Verteilungsverwaltungsklasse. Es extrahiert den Inhalt der Anforderungsnachricht, erstellt verschiedene Arten von Nachrichtenparametern und übergibt sie an verschiedene Antworten Funktionen verarbeiten es und geben den gekapselten XML-Inhalt als Antwort zurück.

Die spezifische Codeverarbeitungslogik ist in der folgenden Abbildung dargestellt.

Diese Nachrichtenverarbeitungsschnittstelle definiert tatsächlich eine Reihe von Verarbeitungsvorgängen für Anforderungsnachrichten. Die Parameter sind verschiedene Nachrichtenobjekte , insbesondere Die Codedefinition lautet wie folgt (Aus Platzgründen wurden einige Schnittstellen weggelassen. Einzelheiten finden Sie in der Abbildung oben.)


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

..............................
  }
Wie aus dem obigen Code ersichtlich ist, werden unterschiedliche Nachrichten in Form verschiedener Nachrichtenentitätsklassen (

) an die Verarbeitungsfunktion übergeben Hinweis: Die Entitätsklasse wird von mir entsprechend den Anforderungen der Programmentwicklung definiert. Sie ist nicht die Entitätsklasse von WeChat selbst. Dies ist für uns sehr praktisch, um Vorgänge abzuwickeln Jedes Mal können unterschiedliche Nachrichteninhalte auftreten, was sehr schwierig ist. Ein solch stark typisierter Datentyp verbessert die Robustheit und Effizienz unserer WeChat-Anwendungsentwicklung. Die Objekte dieser Entitätsklassen haben eine bestimmte Vererbungsbeziehung, und ihre Vererbungsbeziehung ist wie folgt.

2. WeChats Verwaltungsoberfläche

Die obige Nachrichtenklassifizierung ist ein Nachrichtenanforderungsvorgang, der vom WeChat-Server an den Entwicklerserver gesendet wird Es gibt auch eine Nachricht, bei der es sich um eine Nachrichtenanforderung oder -antwort von unserem Entwicklerserver an den WeChat-Server handelt. Diese wird vorübergehend als WeChat-Verwaltungsschnittstelle bezeichnet und zeigt an, dass wir über diese Schnittstellen entsprechende Nachrichtenantworten oder Datenverwaltungsvorgänge ausführen können. Das Klassifizierungsdiagramm ist unten dargestellt.

Die Antwortnachrichtenverarbeitung von WeChat ist ebenfalls die gleiche wie die Informationen im obigen Abschnitt. Sie wird auch von der BaseMessage-Entitätsklasse geerbt (ähnlich der Entitätsklasse und ihrer Vererbungsbeziehung). In der folgenden Abbildung ist es auch angepasst und praktisch für die Programmentwicklung. Die Beziehung ist wie folgt:

Im Allgemeinen sind Textnachrichten und Grafiken die am häufigsten verwendeten Nachrichten zum Antworten Nachrichten.

Die Wirkung der Textnachricht ist wie folgt.

In grafischen Nachrichten können Sie Bilder und detaillierte Linkseiten hinzufügen, was ein sehr schöner Effekt ist. Für diejenigen, die viel Inhalt haben und bessere Effekte zeigen möchten, ist dies im Allgemeinen der folgende.

Das obige ist der detaillierte Inhalt vonC#-Entwicklung des WeChat-Portals und der WeChat-Anwendung (2) Grafisches Code-Tutorial für die Verarbeitung und Antwort von WeChat-Nachrichten. 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