Heim > Backend-Entwicklung > PHP-Tutorial > So schreiben Sie mit PHP ein automatisches Antwortprogramm für öffentliche WeChat-Konten

So schreiben Sie mit PHP ein automatisches Antwortprogramm für öffentliche WeChat-Konten

PHPz
Freigeben: 2023-05-13 13:02:01
Original
1383 Leute haben es durchsucht

Mit der rasanten Entwicklung des mobilen Internets ist WeChat zu einem unverzichtbaren sozialen Werkzeug im Leben der Menschen geworden. Auch in öffentlichen WeChat-Konten ist die automatische Antwortfunktion ein unverzichtbarer Bestandteil. In diesem Artikel wird erläutert, wie Sie mit PHP ein automatisches Antwortprogramm für öffentliche WeChat-Konten schreiben.

  1. Vorbereitung

Zunächst benötigen Sie ein öffentliches WeChat-Konto. Wenn Sie noch keins haben, können Sie eines beantragen. Zweitens müssen Sie auch über grundlegende Kenntnisse in der PHP-Programmierung verfügen.

  1. Holen Sie sich den Entwickler-API-Schlüssel der öffentlichen WeChat-Plattform

Auf der öffentlichen WeChat-Plattform müssen Sie den Entwickler-API-Schlüssel erhalten um die API zum Senden und Empfangen von Nachrichten zu verwenden. Rufen Sie auf der öffentlichen WeChat-Plattform das Entwicklerzentrum auf, wählen Sie die Grundkonfiguration aus und holen Sie sich dann Ihren eigenen Entwickler-API-Schlüssel.

  1. Code schreiben

Das Folgende ist ein Beispielcode für einen einfachen WeChat-Autoresponder für öffentliche Konten:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

<?php

//获取开发者API密钥

define("TOKEN", "your_token");

 

//验证开发者服务器

if (isset($_GET["echostr"])) {

    $echoStr = $_GET["echostr"];

    if ($this->checkSignature()) {

        echo $echoStr;

        exit;

    }

}

 

//处理接收到的消息

$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];

if (!empty($postStr)) {

    $postObj = simplexml_load_string($postStr,'SimpleXMLElement');

    $fromUsername = $postObj->FromUserName;

    $toUsername = $postObj->ToUserName;

    $type = $postObj->MsgType;

    $content = trim($postObj->Content);

 

    //文本消息

    if($type == "text") {

        if($content == "hello") {

            $msgContent = "您好,欢迎关注我的公众号!";

        } else {

            $msgContent = "您好,我是自动回复机器人,我还在学习中,暂时无法回复您的消息,敬请谅解!";

        }

        $time = time();

        $textTpl = "<xml>

                    <ToUserName><![CDATA[%s]]></ToUserName>

                    <FromUserName><![CDATA[%s]]></FromUserName>

                    <CreateTime>%s</CreateTime>

                    <MsgType><![CDATA[text]]></MsgType>

                    <Content><![CDATA[%s]]></Content>

                    <FuncFlag>0</FuncFlag>

                    </xml>";

        $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgContent);

        echo $resultStr;

        exit;

    }

}

 

//验证开发者服务器

private function checkSignature()

{

    $signature = $_GET["signature"];

    $timestamp = $_GET["timestamp"];

    $nonce = $_GET["nonce"];

 

    $token = TOKEN;

    $tmpArr = array($token, $timestamp, $nonce);

    sort($tmpArr, SORT_STRING);

    $tmpStr = implode($tmpArr);

    $tmpStr = sha1($tmpStr);

    if ($tmpStr == $signature) {

        return true;

    } else {

        return false;

    }

}

?>

Nach dem Login kopieren
#🎜🎜 # Code-Erklärung:

  1. Entwickler-API-Schlüssel definieren

    1

    define("TOKEN", "your_token");

    Nach dem Login kopieren

    Sie müssen „your_token“ durch Ihren eigenen Entwickler-API-Schlüssel ersetzen.

  2. Verification Developer Server

    1

    2

    3

    4

    5

    6

    7

    if (isset($_GET["echostr"])) {

     $echoStr = $_GET["echostr"];

     if ($this->checkSignature()) {

         echo $echoStr;

         exit;

     }

    }

    Nach dem Login kopieren

    Wenn die öffentliche WeChat-Plattform eine Verifizierungsanfrage an den Entwicklerserver sendet, ist eine Verifizierung erforderlich.

  3. Verarbeiten Sie die empfangene Nachricht.

    1

    2

    3

    4

    5

    $postObj = simplexml_load_string($postStr,'SimpleXMLElement');

    $fromUsername = $postObj->FromUserName;

    $toUsername = $postObj->ToUserName;

    $type = $postObj->MsgType;

    $content = trim($postObj->Content);

    Nach dem Login kopieren

    Verarbeiten Sie die von der öffentlichen WeChat-Plattform empfangene Nachricht und erhalten Sie den Nachrichtentyp und den Nachrichteninhalt.

  4. Textnachrichtenverarbeitung

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    if($type == "text") {

     if($content == "hello") {

         $msgContent = "您好,欢迎关注我的公众号!";

     } else {

         $msgContent = "您好,我是自动回复机器人,我还在学习中,暂时无法回复您的消息,敬请谅解!";

     }

     $time = time();

     $textTpl = "<xml>

                 <ToUserName><![CDATA[%s]]></ToUserName>

                 <FromUserName><![CDATA[%s]]></FromUserName>

                 <CreateTime>%s</CreateTime>

                 <MsgType><![CDATA[text]]></MsgType>

                 <Content><![CDATA[%s]]></Content>

                 <FuncFlag>0</FuncFlag>

                 </xml>";

     $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgContent);

     echo $resultStr;

     exit;

    }

    Nach dem Login kopieren

    Wenn eine Textnachricht empfangen wird, wird der Antwortinhalt basierend auf dem Nachrichteninhalt generiert.

  5. Entwicklerserver überprüfen

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    private function checkSignature()

    {

     $signature = $_GET["signature"];

     $timestamp = $_GET["timestamp"];

     $nonce = $_GET["nonce"];

     

     $token = TOKEN;

     $tmpArr = array($token, $timestamp, $nonce);

     sort($tmpArr, SORT_STRING);

     $tmpStr = implode($tmpArr);

     $tmpStr = sha1($tmpStr);

     if ($tmpStr == $signature) {

         return true;

     } else {

         return false;

     }

    }

    Nach dem Login kopieren
    Methode zur Überprüfung des Entwicklerservers.

    Code bereitstellen
  6. Laden Sie den geschriebenen Code auf den Server hoch und legen Sie die Schnittstellenkonfigurationsinformationen auf der öffentlichen WeChat-Plattform fest. Vervollständigen Sie die Serveradresse, den Entwickler-API-Schlüssel und die Schnittstellenkonfigurationsinformationen und speichern Sie sie.

      Testen Sie das automatische Antwortprogramm
    Senden Sie im offiziellen WeChat-Konto eine Nachricht an das offizielle Konto antwortet automatisch mit dem entsprechenden Inhalt.

    Zusammenfassung

    In diesem Artikel wird kurz vorgestellt, wie Sie mit PHP ein automatisches Antwortprogramm für öffentliche WeChat-Konten schreiben. Nach dem einfachen Schreiben, Debuggen und Bereitstellen von Code kann ein einfaches automatisches Antwortprogramm implementiert werden. Natürlich handelt es sich bei diesem Beispiel nur um ein Einstiegsprogramm. Wenn Sie komplexere Geschäftslogik benötigen, müssen Sie den Code selbst schreiben und erweitern.

    Das obige ist der detaillierte Inhalt vonSo schreiben Sie mit PHP ein automatisches Antwortprogramm für öffentliche WeChat-Konten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage