Heim Backend-Entwicklung C#.Net-Tutorial 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

Jun 18, 2017 am 10:26 AM
.net 处理 应用 开发 消息 门户

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();
   }
  }
Nach dem Login kopieren

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);
    }
Nach dem Login kopieren

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

..............................
  }
Nach dem Login kopieren
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!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Der Betriebsprozess des WIN10-Diensthosts belegt zu viel CPU Der Betriebsprozess des WIN10-Diensthosts belegt zu viel CPU Mar 27, 2024 pm 02:41 PM

1. Zuerst klicken wir mit der rechten Maustaste auf die leere Stelle der Taskleiste und wählen die Option [Task-Manager] oder klicken mit der rechten Maustaste auf das Startlogo und wählen dann die Option [Task-Manager]. 2. In der geöffneten Task-Manager-Oberfläche klicken wir ganz rechts auf die Registerkarte [Dienste]. 3. Klicken Sie in der geöffneten Registerkarte [Dienst] unten auf die Option [Dienst öffnen]. 4. Klicken Sie im sich öffnenden Fenster [Dienste] mit der rechten Maustaste auf den Dienst [InternetConnectionSharing(ICS)] und wählen Sie dann die Option [Eigenschaften]. 5. Ändern Sie im sich öffnenden Eigenschaftenfenster die Option „Öffnen mit“ in „Deaktiviert“, klicken Sie auf „Übernehmen“ und dann auf „OK“. 6. Klicken Sie auf das Startlogo, dann auf die Schaltfläche zum Herunterfahren, wählen Sie [Neustart] und schließen Sie den Neustart des Computers ab.

Vier empfohlene KI-gestützte Programmiertools Vier empfohlene KI-gestützte Programmiertools Apr 22, 2024 pm 05:34 PM

Dieses KI-gestützte Programmiertool hat in dieser Phase der schnellen KI-Entwicklung eine große Anzahl nützlicher KI-gestützter Programmiertools zu Tage gefördert. KI-gestützte Programmiertools können die Entwicklungseffizienz verbessern, die Codequalität verbessern und Fehlerraten reduzieren. Sie sind wichtige Helfer im modernen Softwareentwicklungsprozess. Heute wird Dayao Ihnen 4 KI-gestützte Programmiertools vorstellen (und alle unterstützen die C#-Sprache). https://github.com/YSGStudyHards/DotNetGuide1.GitHubCopilotGitHubCopilot ist ein KI-Codierungsassistent, der Ihnen hilft, Code schneller und mit weniger Aufwand zu schreiben, sodass Sie sich mehr auf Problemlösung und Zusammenarbeit konzentrieren können. Git

So machen Sie das Löschen vom Startbildschirm im iPhone rückgängig So machen Sie das Löschen vom Startbildschirm im iPhone rückgängig Apr 17, 2024 pm 07:37 PM

Sie haben etwas Wichtiges von Ihrem Startbildschirm gelöscht und versuchen, es wiederherzustellen? Es gibt verschiedene Möglichkeiten, App-Symbole wieder auf dem Bildschirm anzuzeigen. Wir haben alle Methoden besprochen, die Sie anwenden können, um das App-Symbol wieder auf dem Startbildschirm anzuzeigen. So machen Sie das Entfernen vom Startbildschirm auf dem iPhone rückgängig. Wie bereits erwähnt, gibt es mehrere Möglichkeiten, diese Änderung auf dem iPhone wiederherzustellen. Methode 1 – App-Symbol in der App-Bibliothek ersetzen Sie können ein App-Symbol direkt aus der App-Bibliothek auf Ihrem Startbildschirm platzieren. Schritt 1 – Wischen Sie seitwärts, um alle Apps in der App-Bibliothek zu finden. Schritt 2 – Suchen Sie das App-Symbol, das Sie zuvor gelöscht haben. Schritt 3 – Ziehen Sie einfach das App-Symbol aus der Hauptbibliothek an die richtige Stelle auf dem Startbildschirm. Dies ist das Anwendungsdiagramm

Die Rolle und praktische Anwendung von Pfeilsymbolen in PHP Die Rolle und praktische Anwendung von Pfeilsymbolen in PHP Mar 22, 2024 am 11:30 AM

Die Rolle und praktische Anwendung von Pfeilsymbolen in PHP In PHP wird das Pfeilsymbol (->) normalerweise verwendet, um auf die Eigenschaften und Methoden von Objekten zuzugreifen. Objekte sind eines der Grundkonzepte der objektorientierten Programmierung (OOP) in PHP. In der tatsächlichen Entwicklung spielen Pfeilsymbole eine wichtige Rolle bei der Bedienung von Objekten. In diesem Artikel werden die Rolle und die praktische Anwendung von Pfeilsymbolen vorgestellt und spezifische Codebeispiele bereitgestellt, um den Lesern ein besseres Verständnis zu erleichtern. 1. Die Rolle des Pfeilsymbols für den Zugriff auf die Eigenschaften eines Objekts. Das Pfeilsymbol kann für den Zugriff auf die Eigenschaften eines Objekts verwendet werden. Wenn wir ein Paar instanziieren

Welcher KI-Programmierer ist der beste? Entdecken Sie das Potenzial von Devin, Tongyi Lingma und SWE-Agent Welcher KI-Programmierer ist der beste? Entdecken Sie das Potenzial von Devin, Tongyi Lingma und SWE-Agent Apr 07, 2024 am 09:10 AM

Am 3. März 2022, weniger als einen Monat nach der Geburt von Devin, dem weltweit ersten KI-Programmierer, entwickelte das NLP-Team der Princeton University einen Open-Source-KI-Programmierer-SWE-Agenten. Es nutzt das GPT-4-Modell, um Probleme in GitHub-Repositorys automatisch zu lösen. Die Leistung des SWE-Agenten auf dem SWE-Bench-Testsatz ist ähnlich wie die von Devin, er benötigt durchschnittlich 93 Sekunden und löst 12,29 % der Probleme. Durch die Interaktion mit einem dedizierten Terminal kann der SWE-Agent Dateiinhalte öffnen und durchsuchen, die automatische Syntaxprüfung verwenden, bestimmte Zeilen bearbeiten sowie Tests schreiben und ausführen. (Hinweis: Der obige Inhalt stellt eine geringfügige Anpassung des Originalinhalts dar, die Schlüsselinformationen im Originaltext bleiben jedoch erhalten und überschreiten nicht die angegebene Wortbeschränkung.) SWE-A

Erfahren Sie, wie Sie mobile Anwendungen mit der Go-Sprache entwickeln Erfahren Sie, wie Sie mobile Anwendungen mit der Go-Sprache entwickeln Mar 28, 2024 pm 10:00 PM

Tutorial zur Entwicklung mobiler Anwendungen in der Go-Sprache Da der Markt für mobile Anwendungen weiterhin boomt, beginnen immer mehr Entwickler damit, sich mit der Verwendung der Go-Sprache für die Entwicklung mobiler Anwendungen zu befassen. Als einfache und effiziente Programmiersprache hat die Go-Sprache auch großes Potenzial für die Entwicklung mobiler Anwendungen gezeigt. In diesem Artikel wird detailliert beschrieben, wie die Go-Sprache zum Entwickeln mobiler Anwendungen verwendet wird, und es werden spezifische Codebeispiele angehängt, um den Lesern den schnellen Einstieg und die Entwicklung eigener mobiler Anwendungen zu erleichtern. 1. Vorbereitung Bevor wir beginnen, müssen wir die Entwicklungsumgebung und die Tools vorbereiten. Kopf

Erfahren Sie, wie Sie mit Sonderzeichen umgehen und einfache Anführungszeichen in PHP konvertieren Erfahren Sie, wie Sie mit Sonderzeichen umgehen und einfache Anführungszeichen in PHP konvertieren Mar 27, 2024 pm 12:39 PM

Im PHP-Entwicklungsprozess ist der Umgang mit Sonderzeichen ein häufiges Problem, insbesondere bei der Zeichenfolgenverarbeitung werden Sonderzeichen häufig mit Escapezeichen versehen. Unter diesen ist die Umwandlung von Sonderzeichen in einfache Anführungszeichen eine relativ häufige Anforderung, da einfache Anführungszeichen in PHP eine gängige Methode zum Umschließen von Zeichenfolgen sind. In diesem Artikel erklären wir, wie man in PHP mit einfachen Anführungszeichen bei der Konvertierung von Sonderzeichen umgeht, und stellen spezifische Codebeispiele bereit. Zu den Sonderzeichen in PHP gehören unter anderem einfache Anführungszeichen ('), doppelte Anführungszeichen ("), Backslash () usw. In Zeichenfolgen

Teilen Sie mehrere .NET-Open-Source-KI- und LLM-bezogene Projekt-Frameworks Teilen Sie mehrere .NET-Open-Source-KI- und LLM-bezogene Projekt-Frameworks May 06, 2024 pm 04:43 PM

Die Entwicklung von Technologien der künstlichen Intelligenz (KI) ist heute in vollem Gange und sie haben in verschiedenen Bereichen großes Potenzial und Einfluss gezeigt. Heute wird Dayao Ihnen 4 .NET Open-Source-KI-Modell-LLM-bezogene Projekt-Frameworks vorstellen und hofft, Ihnen einige Referenzen zu geben. https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.mdSemanticKernelSemanticKernel ist ein Open-Source-Softwareentwicklungskit (SDK), das für die Integration großer Sprachmodelle (LLM) wie OpenAI und Azure entwickelt wurde

See all articles