This article mainly introduces the process of processing and responding to WeChat messages in the WeChat portal using the WeChat interface in c#. Friends in need can refer to it
WeChat applications are in full swing, and many companies hope to catch up with the information Express, this is a business opportunity and a technical direction. Therefore, it has become one of the planned arrangements to study and learn about WeChat-related development when you have time. This series of articles hopes to comprehensively introduce the relevant development process and related experience summary of WeChat from a step-by-step perspective, hoping to give everyone an understanding of the relevant development process. This essay is mainly based on the previous article "C# Using WeChat Interface to Develop WeChat Portal Application" to provide an in-depth introduction and introduce the process of processing and responding to WeChat messages.
1. WeChat’s message response interaction
We know that WeChat’s server builds a bridge between the customer’s mobile phone and the developer’s server, through the transmission and response of messages. , realizes the interaction with the user, the following is its message flow chart.
The messages WeChat requests from the developer server include many types, but basically they are divided into text message processing, event message processing, voice message recognition, and The basic classification of message authentication operations before becoming a developer. Below is a message classification diagram I drew, which introduces these relationships and their respective message refinement classifications.
For these message requests, when we develop the server side, we need to write relevant logic for corresponding processing, and then respond to the message to the WeChat server platform.
In the previous essay, I posted the code to introduce the entry operation of WeChat message processing. The code is as follows.
The code is as follows:
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); is the message processing function, which implements the distribution and processing of different messages.
The code is as follows:
/// <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); }
The WeixinApiDispatch inside is a distribution management class. It extracts the content of the request message, constructs different types of message parameters, and passes them to different response functions for processing. Then return the encapsulated XML content as a response.
The specific code processing logic is shown in the figure below.
This message processing interface actually defines a series of processing operations for request messages. The parameters are different message objects. The specific code definition is as follows ( Due to space reasons, some interfaces are omitted, please refer to the figure above for details).
The code is as follows:
/// <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); }
Note: The entity class is defined by me according to the needs of program development, not the entity class of WeChat itself), which is very convenient for us to process Operation, otherwise different message content needs to be parsed each time, and problems may easily occur. Such a strongly typed data type improves the robustness and efficiency of our WeChat application development. The objects of these entity classes have a certain inheritance relationship, and their inheritance relationship is as follows.
2. WeChat’s management interface The above message classification is a message request operation sent by the WeChat server to the developer server. There is also a message, which is The message request or response made by our developer server to the WeChat server is temporarily called the WeChat management interface, which shows that we can perform related message replies or data management operations through these interfaces. Its classification diagram is shown below.WeChat’s reply message processing is the same as the information in the above section. It is also inherited from the BaseMessage entity class (Similarly, the entity class in the figure below and its inheritance relationship It is also customized and convenient for program development), and its relationship is as follows
Reply messages, generally the most commonly used are text messages and graphic messages .
The effect of the text message is as follows.
Graphic messages, you can add pictures, and you can also add detailed link pages. It is a very beautiful effect. For some content that is relatively large, I hope to show better effects. , this is generally used, and the effect is as follows.
The above is the detailed content of Introduction to the method of processing and responding to WeChat messages in c# using WeChat interface to develop WeChat portal applications. For more information, please follow other related articles on the PHP Chinese website!