WeChat-Anwendungen sind in vollem Gange, und viele Unternehmen hoffen, in den Informationsexpress aufgenommen zu werden. Dies ist eine Geschäftsmöglichkeit und eine technische Richtung. Daher ist es zu einer der Möglichkeiten geworden, sich über WeChat-bezogene Entwicklungen zu informieren geplante Arrangements. 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 des WeChat-Portals und der WeChat-Anwendung (1) – Beginnen Sie mit der Verwendung der WeChat-Schnittstelle“, um eine ausführliche Einführung zu bieten und den Prozess der Verarbeitung und Beantwortung von WeChat-Nachrichten vorzustellen.
Wir wissen, dass der WeChat-Server eine Brücke zwischen dem Mobiltelefon des Kunden und dem Server des Entwicklers baut und die Kommunikation mit Benutzern durch die Übertragung und Antwort von Nachrichten realisiert Das Folgende ist das Nachrichtenflussdiagramm der Operation.
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 erstelltes 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); }
Der WeixinApiDispatch im Inneren ist eine verteilte Verwaltungsklasse, die den Inhalt der Anforderungsnachricht extrahiert und verschiedene Arten von erstellt Die Nachrichtenparameter werden zur Verarbeitung an verschiedene Antwortfunktionen übergeben und anschließend wird der gekapselte XML-Inhalt als Antwort zurückgegeben.
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 unterschiedliche Nachrichtenobjekte. Die spezifische Codedefinition lautet wie folgt (Aus Platzgründen). Einige Schnittstellen werden weggelassen. Weitere Informationen 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 gemäß den Anforderungen der Programmentwicklung definiert, nicht die Entitätsklasse von WeChat selbst ). Dies ist für uns sehr praktisch, um Vorgänge abzuwickeln, andernfalls müssen wir sie analysieren Jedes Mal unterschiedliche Nachrichten. Der Inhalt ist anfällig für Probleme. 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.
Die obige Nachrichtenklassifizierung ist ein Nachrichtenanforderungsvorgang, der vom WeChat-Server an den Entwicklerserver gesendet wird Dies ist die Nachrichtenanforderung oder -antwort unseres Entwicklerservers an den WeChat-Server, die vorübergehend als WeChat-Verwaltungsschnittstelle bezeichnet wird. Dies zeigt, dass wir über diese Schnittstellen entsprechende Nachrichtenantworten oder Datenverwaltungsvorgänge ausführen können. Das Klassifizierungsdiagramm ist unten dargestellt.
Die Antwortnachrichtenverarbeitung von WeChat ist die gleiche wie die Informationen im obigen Abschnitt. Sie wird auch von der BaseMessage-Entitätsklasse geerbt (Ähnlich ist die Entitätsklasse in Abbildung unten und Seine Vererbungsbeziehung ist ebenfalls angepasst, um die Programmentwicklung zu erleichtern), und seine Beziehung ist wie folgt
Im Allgemeinen werden Textnachrichten und grafische Nachrichten am häufigsten zum Antworten auf Nachrichten verwendet.
Die Wirkung der Textnachricht ist wie folgt.
Grafische Nachrichten, Sie können Bilder hinzufügen und Sie können auch detaillierte Linkseiten hinzufügen, was ein sehr schöner Effekt ist. Bei einigen Inhalten hoffe ich, bessere Effekte zu erzielen. Dies wird im Allgemeinen verwendet und der Effekt ist wie folgt.
Weitere C#-Entwicklung von WeChat-Portalen und -Anwendungen (2) – WeChat-Nachrichtenverarbeitung und -antwort. Für verwandte Artikel achten Sie bitte auf die chinesische PHP-Website!