Home WeChat Applet WeChat Development .net WeChat public account development news and events

.net WeChat public account development news and events

Mar 08, 2017 pm 04:12 PM
WeChat development

This article introduces how to handle messages and events in the development of WeChat public accounts, including: (1) Overview of messages (events); (2) Verifying the authenticity of messages; (3) Parsing messages; (4) Passively replying to messages; (5) Send other messages.
1 Message (Event) Overview

When an ordinary WeChat user sends a message to the official account or the WeChat server pushes an event to the official account, the WeChat server will POST the XML data packet of the message (event) to The official account server URL filled in by the developer; the official account server then responds to the message.
1.1 Message flow process
In order to facilitate the distinction, we call the message sent by the WeChat server to the official account server a request message; the message sent by the official account server to the WeChat server is called a response (Response) Message; treat push events as special request messages.
The flow process of request and response messages is shown in the figure below:

.net WeChat public account development news and events

1.2 Request message
There are many kinds of request messages, and we have established corresponding ones one by one. The class, the class hierarchy is as shown in the figure below:

.net WeChat public account development news and events

We can respond to some request messages, and some cannot. See the table below for details:

##Voice×√Video×UnknownCannot receive the video message, I don’t know if I can reply passivelyGeographical location ×√Link×√Subscribe√√Unsubscribe √×Scan the QR code√×Report geographical location√×Click the menu pull Get the message√√Click the menu jump link√×Click the menu to scan the QR code to push√×Click the menu to scan the QR code and wait for the reply√√Click the menu and the system will send Picture√UnknownCannot receive the system picture event; WeChat server will send picture message, you can reply Click the menu to take a photo or send a picture to the album√×The WeChat server will send a picture message, you can replyClick the menu Send pictures on WeChat√×The WeChat server will send picture messages, you can replyClick the menu to select the geographical location√×The WeChat server will send geographical location messages and can replyPush group message results√×Push template message result√×

1.3 Response message
The class hierarchy of the response message is as shown below:

.net WeChat public account development news and events


2 Verify the authenticity of the message
After the official account server receives the request from the WeChat server, the first thing to do is to verify the authenticity of the message.
The Utility.CheckSignature method is used to verify whether the message signature is correct.
Examples are as follows:

/// <summary>
    /// 验证消息的有效性
    /// </summary>
    /// <param name="context"></param>
    /// <returns>如果消息有效,返回true;否则返回false。</returns>
    private bool Validate(HttpContext context)
    {
        string username = RequestEx.TryGetQueryString("username");  //在接口配置的URL中加入了username参数,表示哪个微信公众号
        AccountInfo account = AccountInfoCollection.GetAccountInfo(username);
        if (account == null)
            return false;
        string token = account.Token;
        string signature = RequestEx.TryGetQueryString("signature");
        string timestamp = RequestEx.TryGetQueryString("timestamp");
        string nonce = RequestEx.TryGetQueryString("nonce");
        if (string.IsNullOrWhiteSpace(signature) || string.IsNullOrWhiteSpace(timestamp) || string.IsNullOrWhiteSpace(nonce))
            return false;
        return xrwang.weixin.PublicAccount.Utility.CheckSignature(signature, token, timestamp, nonce);
    }

验证消息真实性
Copy after login

Verify message authenticity

3 Parse message

If the message signature passes verification, We need to parse the message text in XML format into a request message object, and the RequestMessageHelper class is used to complete this work.

RequestMessageHelper helper = new RequestMessageHelper(context.Request);
if(helper.Message != null)
{
    //消息解析成功,对它进行处理
}
Copy after login

After the message is successfully parsed, helper.Message is the message base class RequestBaseMessage. We can determine which message it is based on the attributes MsgType and Event. message (event) and converted to the appropriate subtype. For example:

RequestBaseMessage bm=helper.Message;
switch(bm.MsgType)
{
    case RequestMessageTypeEnum.text:  //文本消息
        HandleTextMessage((RequestTextMessage)bm);
        break;
    case RequestMessageTypeEnum.image: //图片消息
        HandleImageMessage((RequestImageMessage)bm);
        break;
    //处理其他消息
    case RequestMessageTypeEnum.event:    //事件
        RequestEventMessage ev=(RequestEventMessage)bm;
        switch(ev.Event)
        {
            case RequestEventTypeEnum.subscribe:    //订阅
                HandleSubscribeMessage((RequestSubscribeMessage)ev);
                break;
            case RequestEventTypeEnum.unsubscribe:    //取消订阅
                HandleUnsubscribeMessage((RequestUnsubscribeMessage)ev);
                break;
            //处理其他事件
        }
        break;
    default:
        break;
}
Copy after login

For details on parsing messages, please refer to the source code: http://git.oschina.net/xrwang2/xrwang.weixin.PublicAccount/blob/master/PublicAccount /RequestMessage/RequestMessageHelper.cs

4 Passive reply message
After receiving the message (event) from the WeChat server, we can directly (passive) within 5 seconds Reply to the message; you can also directly reply with an empty string first, and then reply to the customer service message within 48 hours.
First initialize ResponseXxxMessage, and then use the ToXml method to get the response message content.
An example of a passive reply message is as follows:

/// <summary>
    /// 处理微信的POST请求
    /// </summary>
    /// <param name="context"></param>
    /// <returns>返回xml响应</returns>
    private string HandlePost(HttpContext context)
    {
        RequestMessageHelper helper = new RequestMessageHelper(context.Request);
        if (helper.Message != null)
        {
            ResponseBaseMessage responseMessage = HandleRequestMessage(helper.Message);
            return responseMessage.ToXml(helper.EncryptType);
        }
        else
            return string.Empty;
    }

    /// <summary>
    /// 处理请求消息,返回响应消息
    /// </summary>
    /// <returns>返回响应消息</returns>
    private ResponseBaseMessage HandleRequestMessage(RequestBaseMessage requestMessage)
    {
        ResponseTextMessage response = new ResponseTextMessage(requestMessage.FromUserName, requestMessage.ToUserName, 
            DateTime.Now, string.Format("自动回复,请求内容如下:\r\n{0}", requestMessage));
        return response;
    }
Copy after login


## 5 Send other messages

In addition to passive In addition to replying to messages, we can also send customer service messages, group messages, and template messages. These contents will be discussed one by one in subsequent articles.


Message type Whether the event can passively reply Remarks
Text ×
Picture ×

The above is the detailed content of .net WeChat public account development news and events. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

PHP WeChat development: How to implement message encryption and decryption PHP WeChat development: How to implement message encryption and decryption May 13, 2023 am 11:40 AM

PHP is an open source scripting language that is widely used in web development and server-side programming, especially in WeChat development. Today, more and more companies and developers are starting to use PHP for WeChat development because it has become a truly easy-to-learn and easy-to-use development language. In WeChat development, message encryption and decryption are a very important issue because they involve data security. For messages without encryption and decryption methods, hackers can easily obtain the data, posing a threat to users.

Using PHP to develop WeChat mass messaging tools Using PHP to develop WeChat mass messaging tools May 13, 2023 pm 05:00 PM

With the popularity of WeChat, more and more companies are beginning to use it as a marketing tool. The WeChat group messaging function is one of the important means for enterprises to conduct WeChat marketing. However, if you only rely on manual sending, it is an extremely time-consuming and laborious task for marketers. Therefore, it is particularly important to develop a WeChat mass messaging tool. This article will introduce how to use PHP to develop WeChat mass messaging tools. 1. Preparation work To develop WeChat mass messaging tools, we need to master the following technical points: Basic knowledge of PHP WeChat public platform development Development tools: Sub

PHP WeChat development: How to implement user tag management PHP WeChat development: How to implement user tag management May 13, 2023 pm 04:31 PM

In the development of WeChat public accounts, user tag management is a very important function, which allows developers to better understand and manage their users. This article will introduce how to use PHP to implement the WeChat user tag management function. 1. Obtain the openid of the WeChat user. Before using the WeChat user tag management function, we first need to obtain the user's openid. In the development of WeChat public accounts, it is a common practice to obtain openid through user authorization. After the user authorization is completed, we can obtain the user through the following code

PHP WeChat development: How to implement group message sending records PHP WeChat development: How to implement group message sending records May 13, 2023 pm 04:31 PM

As WeChat becomes an increasingly important communication tool in people's lives, its agile messaging function is quickly favored by a large number of enterprises and individuals. For enterprises, developing WeChat into a marketing platform has become a trend, and the importance of WeChat development has gradually become more prominent. Among them, the group sending function is even more widely used. So, as a PHP programmer, how to implement group message sending records? The following will give you a brief introduction. 1. Understand the development knowledge related to WeChat public accounts. Before understanding how to implement group message sending records, I

Steps to implement WeChat public account development using PHP Steps to implement WeChat public account development using PHP Jun 27, 2023 pm 12:26 PM

How to use PHP to develop WeChat public accounts WeChat public accounts have become an important channel for promotion and interaction for many companies, and PHP, as a commonly used Web language, can also be used to develop WeChat public accounts. This article will introduce the specific steps to use PHP to develop WeChat public accounts. Step 1: Obtain the developer account of the WeChat official account. Before starting the development of the WeChat official account, you need to apply for a developer account of the WeChat official account. For the specific registration process, please refer to the official website of WeChat public platform

PHP WeChat development: How to implement voting function PHP WeChat development: How to implement voting function May 14, 2023 am 11:21 AM

In the development of WeChat public accounts, the voting function is often used. The voting function is a great way for users to quickly participate in interactions, and it is also an important tool for holding events and surveying opinions. This article will introduce you how to use PHP to implement WeChat voting function. Obtain the authorization of the WeChat official account. First, you need to obtain the authorization of the WeChat official account. On the WeChat public platform, you need to configure the API address of the WeChat public account, the official account, and the token corresponding to the public account. In the process of our development using PHP language, we need to use the PH officially provided by WeChat

PHP WeChat development: How to implement customer service chat window management PHP WeChat development: How to implement customer service chat window management May 13, 2023 pm 05:51 PM

WeChat is currently one of the social platforms with the largest user base in the world. With the popularity of mobile Internet, more and more companies are beginning to realize the importance of WeChat marketing. When conducting WeChat marketing, customer service is a crucial part. In order to better manage the customer service chat window, we can use PHP language for WeChat development. 1. Introduction to PHP WeChat development PHP is an open source server-side scripting language that is widely used in the field of Web development. Combined with the development interface provided by WeChat public platform, we can use PHP language to conduct WeChat

How to use PHP for WeChat development? How to use PHP for WeChat development? May 21, 2023 am 08:37 AM

With the development of the Internet and mobile smart devices, WeChat has become an indispensable part of the social and marketing fields. In this increasingly digital era, how to use PHP for WeChat development has become the focus of many developers. This article mainly introduces the relevant knowledge points on how to use PHP for WeChat development, as well as some of the tips and precautions. 1. Development environment preparation Before developing WeChat, you first need to prepare the corresponding development environment. Specifically, you need to install the PHP operating environment and the WeChat public platform

See all articles