国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Heim WeChat-Applet WeChat-Entwicklung Entwicklung der ?ffentlichen WeChat-Plattform: MessageHandler verstehen

Entwicklung der ?ffentlichen WeChat-Plattform: MessageHandler verstehen

Feb 27, 2017 pm 12:00 PM
Wechat ?ffentliche Plattform

In Fortsetzung des Codes aus dem vorherigen Artikel fügen wir dem Projekt weiterhin eine CustomMessageHandle.cs-Klasse hinzu:

Entwicklung der ?ffentlichen WeChat-Plattform: MessageHandler verstehen

CustomMessageHandle.cs muss Senparc.Weixin.MP erben .MessageHandlers kann wie folgt lauten:

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Web;
using Senparc.Weixin.MP.Entities;
using Senparc.Weixin.MP.MessageHandlers;
 
namespace Senparc.Weixin.MP.Sample.Weixin
{
    public class CustomMessageHandler : MessageHandler<CustomMessageContext>
    {
        public CustomMessageHandler(Stream inputStream, PostModel postModel)
            : base(inputStream, postModel)
        {
 
        }
 
        public override IResponseMessageBase DefaultResponseMessage(IRequestMessageBase requestMessage)
        {
            var responseMessage = base.CreateResponseMessage<ResponseMessageText>(); //ResponseMessageText也可以是News等其他類型
            responseMessage.Content = "這條消息來自DefaultResponseMessage。";
            return responseMessage;
        }
    }
}

Wir k?nnen sehen, dass die abstrakte Methode, die neu geschrieben und implementiert werden muss, DefaultResponseMessage() hei?t Wenn die WeChat-Nachricht des entsprechenden Typs (z. B. Sprache) vom Code nicht verarbeitet wird, wird das Ergebnis hier standardm??ig zurückgegeben.

In der DefaultResponseMessage()-Methode sehen wir diesen Satz:

var responseMessage = base.CreateResponseMessage<ResponseMessageText>(); //ResponseMessageText也可以是News等其他類型

Die CreateResponseMessage-Methode erstellt hier ein Rückgabeobjekt T, das einem der folgenden Typen entsprechen kann verschiedene Rückgabetypen:

ResponseMessageText – entsprechende Textnachricht

ResponseMessageNews – entsprechende Grafiknachricht

ResponseMessageMusic – entsprechende Musiknachricht

ResponseMessageXXX – Weitere Typen k?nnen abgeleitet werden analog

Zu den Einstellungsmethoden aller oben genannten Parametertypen k?nnen Sie sich die Demo des Open-Source-Projekts ansehen, die hier nicht wiederholt wird: https://github. com/JeffreySu/WeiXinMPSDK.

Wie verarbeiten wir also von Benutzern gesendete Textnachrichten?

Es ist ganz einfach – schreiben Sie einfach eine OnTextRequest-Methode neu:

public override IResponseMessageBase OnTextRequest(RequestMessageText requestMessage)
{
    var responseMessage = base.CreateResponseMessage<ResponseMessageText>();
    responseMessage.Content = "您的OpenID是:" + requestMessage.FromUserName      //這里的requestMessage.FromUserName也可以直接寫成base.WeixinOpenId
                            + "。\r\n您發(fā)送了文字信息:" + requestMessage.Content;  //\r\n用于換行,requestMessage.Content即用戶發(fā)過來的文字內容
    return responseMessage;
}

Sie k?nnen diese Methode frei spielen, z. B. die Datenbank lesen, Schlüsselw?rter beurteilen und sogar verschiedene ResponseMessageXX-Typen zurückgeben ( Wie solange sich die endgültigen Typen unter der IResponseMessageBase-Schnittstelle befinden).

entspricht OnTextRequest. Wenn wir Sprache, geografischen Standort, Menü und andere Arten von Nachrichten verarbeiten m?chten, müssen wir nur die entsprechenden Methoden neu schreiben:

public virtual IResponseMessageBase OnImageRequest(RequestMessageImage requestMessage);
        public virtual IResponseMessageBase OnLinkRequest(RequestMessageLink requestMessage);
        public virtual IResponseMessageBase OnLocationRequest(RequestMessageLocation requestMessage);
        public virtual IResponseMessageBase OnTextRequest(RequestMessageText requestMessage);
        public virtual IResponseMessageBase OnVoiceRequest(RequestMessageVoice requestMessage);
        public virtual IResponseMessageBase OnVideoRequest(RequestMessageVideo requestMessage);


        public virtual IResponseMessageBase OnEvent_ClickRequest(RequestMessageEvent_Click requestMessage);
        public virtual IResponseMessageBase OnEvent_ViewRequest(RequestMessageEvent_View requestMessage);
        public virtual IResponseMessageBase OnEvent_EnterRequest(RequestMessageEvent_Enter requestMessage);
        public virtual IResponseMessageBase OnEvent_LocationRequest(RequestMessageEvent_Location requestMessage);
        public virtual IResponseMessageBase OnEvent_SubscribeRequest(RequestMessageEvent_Subscribe requestMessage);
        public virtual IResponseMessageBase OnEvent_UnsubscribeRequest(RequestMessageEvent_Unsubscribe requestMessage);
        public virtual IResponseMessageBase OnEvent_ScanRequest(RequestMessageEvent_Scan requestMessage)
        public virtual IResponseMessageBase OneEvent_MassSendJobFinisRequest(RequestMessageEvent_MassSendJobFinish requestMessage)

Wobei OnEvent_XX dem Untertyp der Ereignisanforderung entspricht.

Beim Festlegen der Basisklasse von CustomMessageHandler haben wir gesehen, dass ein generischer Name namens MessageContext verwendet wird (MessageHandler). Dieser MessageContext ist eine vom SDK bereitgestellte Standardklasse für die Nachrichtenkontextverarbeitung Wenn Ihre Anwendung nicht sehr komplex ist, verwenden Sie diese Klasse einfach direkt. Wenn das Projekt komplexer ist, k?nnen Sie auch eine eigene Klasse entsprechend Ihren Anforderungen schreiben (die IMessageContext-Schnittstelle erben) oder diese Klasse erben, um einige weitere Attribute zu erweitern (z. B. Workflow und verteilter Cache usw.).

Bisher haben wir MassageHandler verwendet, um alle von WeChat-Benutzern gesendeten Anfragen zu bearbeiten.

Hier sind einige der ?Geheimwaffen“ von MassageHandler.

OnExecuting() und OnExecuted()

Wir k?nnen diese beiden Methoden direkt überschreiben. OnExecuting wird ausgeführt, bevor alle Nachrichtenverarbeitungsmethoden (wie OnTextRequest, OnVoiceRequest usw.) ausgeführt werden. W?hrend dieses Vorgangs k?nnen wir CancelExecute auf true setzen, um die Ausführung aller nachfolgenden Methoden (einschlie?lich OnExecuted) zu unterbrechen, zum Beispiel:

public override void OnExecuting()
{
    if (RequestMessage.FromUserName == "olPjZjsXuQPJoV0HlruZkNzKc91E")
    {
        CancelExcute = true; //終止此用戶的對話
     
        //如果沒有下面的代碼,用戶不會收到任何回復,因為此時ResponseMessage為null
 
        //添加一條固定回復
        var responseMessage = CreateResponseMessage<ResponseMessageText>();
        responseMessage.Content = "Hey!你已經被拉黑啦!";
 
        ResponseMessage = responseMessage;//設置返回對象
    }
}

Wenn es bei OnExecuting keine Unterbrechung gibt, wenn beispielsweise die OnTextRequest-Methode ausgeführt wird (oder die Standardmethode ausgeführt wird), wird die OnExecuted()-Methode ausgel?st, und wir k?nnen sie auch entsprechend umschreiben . Es ist zu beachten, dass ResponseMessage innerhalb der Methode OnExecuted() ein Rückgabewert zugewiesen wurde.

Mehr zur Entwicklung der ?ffentlichen WeChat-Plattform: Um mehr über MessageHandler-bezogene Artikel zu erfahren, achten Sie bitte auf die chinesische PHP-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

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

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.

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)

Hei?e Themen

PHP-Tutorial
1502
276