Heim >Backend-Entwicklung >PHP-Tutorial >So entwickeln Sie mit PHP die automatische Antwortregelverwaltungsfunktion für öffentliche Konten

So entwickeln Sie mit PHP die automatische Antwortregelverwaltungsfunktion für öffentliche Konten

WBOY
WBOYOriginal
2023-09-19 11:01:591010Durchsuche

So entwickeln Sie mit PHP die automatische Antwortregelverwaltungsfunktion für öffentliche Konten

So verwenden Sie PHP, um die automatische Antwortregelverwaltungsfunktion für öffentliche Konten zu entwickeln

Mit der Popularität öffentlicher WeChat-Konten haben viele Unternehmen und Einzelpersonen begonnen, öffentliche WeChat-Konten zu verstehen und zu verwenden. Das offizielle WeChat-Konto bietet eine umfangreiche Funktionsoberfläche, unter denen die Funktion zur automatischen Antwortregelverwaltung eine sehr wichtige Funktion ist. In diesem Artikel wird erläutert, wie Sie mit PHP die automatische Antwortregelverwaltungsfunktion für öffentliche Konten entwickeln und spezifische Codebeispiele bereitstellen.

Zunächst müssen wir einige Grundkonzepte der automatischen Antwortregelverwaltungsfunktion offizieller WeChat-Konten verstehen. Auf der Backend-Verwaltungsseite des offiziellen WeChat-Kontos können wir benutzerdefinierte Menüs und Regeln für die automatische Antwort auf Schlüsselwörter festlegen.

Angepasstes Menü bedeutet, dass, wenn der Benutzer auf das Menü klickt, nachdem er dem offiziellen Konto gefolgt ist, das offizielle Konto entsprechend den Einstellungen des Menüs reagiert. Benutzerdefinierte Menüs können in Menüs der ersten Ebene und Menüs der zweiten Ebene unterteilt werden. Jeder Menüpunkt kann so eingestellt werden, dass er nach dem Klicken ein Ereignis auslöst, bei dem es sich um eine Antwortnachricht, einen Sprunglink oder einen Schnittstellenaufruf usw. handeln kann.

Automatische Schlüsselwort-Antwortregeln bedeuten, dass das offizielle Konto gemäß den festgelegten Antwortregeln antwortet, wenn ein Benutzer eine Nachricht mit einem bestimmten Schlüsselwort sendet. Schlüsselwörter können Text, Bilder, Links usw. sein. Antwortregeln können das Antworten auf feste Nachrichten, das Antworten auf zufällige Nachrichten oder das Aufrufen von Schnittstellen usw. sein.

Als Nächstes beginnen wir mit der detaillierten Einführung in die Verwendung von PHP zur Entwicklung der Funktion zur automatischen Verwaltung von Antwortregeln für öffentliche Konten.

Zuerst müssen wir eine PHP-Entwicklungsumgebung vorbereiten, einschließlich eines Webservers (wie Apache oder Nginx), eines PHP-Parsers und einer MySQL-Datenbank. In dieser Umgebung können wir PHP verwenden, um Webanwendungen zu entwickeln, Anfragen vom WeChat-Server zu bearbeiten und entsprechend zu reagieren.

Als nächstes müssen wir die AppID und das AppSecret des offiziellen WeChat-Kontos abrufen. Wir können ein Entwicklerkonto auf der öffentlichen WeChat-Plattform beantragen und ein öffentliches Konto erstellen. In den Einstellungen des offiziellen Kontos finden wir AppID und AppSecret.

Als nächstes müssen wir die Serveradresse und das Token in den Entwicklertools der öffentlichen WeChat-Plattform konfigurieren. Die Serveradresse ist die Adresse des Webservers, den wir selbst erstellt haben, und das Token ist eine Zeichenfolge, die zur Überprüfung der Identität zwischen dem WeChat-Server und unserem eigenen Server verwendet wird. Nachdem die Konfiguration abgeschlossen ist, klicken Sie auf Bestätigen und speichern Sie das Token, das wir zum Schreiben von Code benötigen.

Als nächstes können wir mit dem Schreiben von PHP-Code beginnen. Erstellen Sie zunächst eine Datei mit dem Namen wechat.php und schreiben Sie den folgenden Code in die Datei:

<?php

define("TOKEN", "YOUR_TOKEN");

$wechatObj = new wechatCallbackAPI();
$wechatObj->valid();

class wechatCallbackAPI
{
    public function valid()
    {
        $echoStr = $_GET["echostr"];

        if($this->checkSignature()){
            echo $echoStr;
            exit;
        }
    }

    private function checkSignature()
    {
        $signature = $_GET["signature"];
        $timestamp = $_GET["timestamp"];
        $nonce = $_GET["nonce"];
                
        $token = TOKEN;
        $tmpArr = array($token, $timestamp, $nonce);
        sort($tmpArr);
        $tmpStr = implode( $tmpArr );
        $tmpStr = sha1( $tmpStr );
        
        if( $tmpStr == $signature ){
            return true;
        }else{
            return false;
        }
    }
}

Im obigen Code definieren wir zunächst ein konstantes TOKEN, um das Token zu speichern, das wir in den WeChat-Entwicklertools konfiguriert haben. Als nächstes haben wir eine Klasse namens wechatCallbackAPI erstellt und zwei Methoden, valid() und checkSignature() in der Klasse definiert. Die Methode

valid() wird verwendet, um die Identität zwischen dem WeChat-Server und unserem eigenen Server zu überprüfen und das Überprüfungsergebnis zurückzugeben. In der Methode erhalten wir zunächst den vom WeChat-Server übergebenen echostr-Parameter und speichern ihn in der Variablen $echoStr. Rufen Sie dann die Methode checkSignature() zur Authentifizierung auf. Wenn die Überprüfung erfolgreich ist, wird $echoStr an den Client ausgegeben und die Ausführung des Programms wird beendet. Die Methode

checkSignature() wird verwendet, um zu überprüfen, ob die vom WeChat-Server übergebenen Parameter gültig sind. Zuerst erhalten wir die vom WeChat-Server übergebenen Signatur-, Zeitstempel- und Nonce-Parameter und speichern sie in den entsprechenden Variablen. Sortieren Sie dann TOKEN, Zeitstempel und Nonce in lexikografischer Reihenfolge und verwenden Sie den SHA1-Algorithmus zur Verschlüsselung. Abschließend wird die verschlüsselte Zeichenfolge mit der vom WeChat-Server übergebenen Signatur verglichen. Wenn sie gleich sind, ist die Überprüfung erfolgreich, andernfalls schlägt die Überprüfung fehl.

Als nächstes können wir den Code für die automatische Antwort schreiben. Der Einfachheit halber implementieren wir hier nur die automatische Antwortfunktion für Schlüsselwörter. Fügen Sie in der Datei wechat.php den folgenden Code hinzu:

<?php

// 省略上面的代码

class wechatCallbackAPI
{
    // 省略上面的代码
    
    public function responseMsg()
    {
        // 获取微信服务器POST过来的XML数据
        $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

        if (!empty($postStr)){
            $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
            $fromUsername = $postObj->FromUserName;
            $toUsername = $postObj->ToUserName;
            $content = trim($postObj->Content);
            $time = time();

            if ($content == "你好"){
                $textTpl = "<xml>
";
                $textTpl .= "<ToUserName><![CDATA[%s]]></ToUserName>
";
                $textTpl .= "<FromUserName><![CDATA[%s]]></FromUserName>
";
                $textTpl .= "<CreateTime>%s</CreateTime>
";
                $textTpl .= "<MsgType><![CDATA[text]]></MsgType>
";
                $textTpl .= "<Content><![CDATA[%s]]></Content>
";
                $textTpl .= "</xml>";

                $msgType = "text";
                $replyContent = "你好!欢迎关注我的公众号!";
                $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $replyContent);
                echo $resultStr;
            } else {
                echo "success";
            }
        }else {
            echo "success";
            exit;
        }
    }
}

$wechatObj = new wechatCallbackAPI();
$wechatObj->valid();
$wechatObj->responseMsg();

Im obigen Code haben wir eine Methode namens „responsMsg()“ in der Klasse „wechatCallbackAPI“ hinzugefügt (zur Verarbeitung von Benutzernachrichten). In der Methode erhalten wir zunächst die XML-Daten POST vom WeChat-Server und speichern sie in der Variablen $postStr. Anschließend werden die XML-Daten über die Funktion simplexml_load_string() in ein SimpleXMLElement-Objekt konvertiert und in einer Variablen mit dem entsprechenden Knotenwert gespeichert.

Hier verwenden wir als Beispiel die Keyword-Auto-Reply-Funktion. Wenn der Inhalt der vom Benutzer gesendeten Nachricht „Hallo“ lautet, antwortet das offizielle Konto mit „Hallo! Willkommen, um meinem offiziellen Konto zu folgen!“, andernfalls erfolgt keine Antwort.

Schließlich haben wir am Ende der Datei wechat.php ein $wechatObj-Objekt erstellt und nacheinander die Methoden valid() und ResponseMsg() aufgerufen, um die Authentifizierung zwischen dem WeChat-Server und unserem eigenen Server abzuschließen und die des Benutzers zu verarbeiten Nachrichten.

Zu diesem Zeitpunkt haben wir das Schreiben des Codes für die automatische Antwortregelverwaltungsfunktion des offiziellen Kontos mithilfe von PHP abgeschlossen. Als Nächstes können wir die Datei wechat.php auf unserem Webserver bereitstellen und die Serveradresse und das Token auf der öffentlichen WeChat-Plattform konfigurieren, um zu testen, ob unser Code gültig ist.

Zusammenfassend stellt dieser Artikel vor, wie PHP zum Entwickeln der automatischen Antwortregelverwaltungsfunktion für öffentliche Konten verwendet wird, und stellt spezifische Codebeispiele bereit. Ich hoffe, es hilft allen.

Das obige ist der detaillierte Inhalt vonSo entwickeln Sie mit PHP die automatische Antwortregelverwaltungsfunktion für öffentliche Konten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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