Maison  >  Article  >  développement back-end  >  Comment utiliser PHP pour développer la fonction de gestion automatique des règles de réponse des comptes publics

Comment utiliser PHP pour développer la fonction de gestion automatique des règles de réponse des comptes publics

WBOY
WBOYoriginal
2023-09-19 11:01:59982parcourir

Comment utiliser PHP pour développer la fonction de gestion automatique des règles de réponse des comptes publics

Comment utiliser PHP pour développer la fonction de gestion des règles de réponse automatique des comptes publics

Avec la popularité des comptes publics WeChat, de nombreuses entreprises et particuliers ont commencé à comprendre et à utiliser les comptes publics WeChat. Le compte officiel WeChat fournit une interface fonctionnelle riche, parmi laquelle la fonction de gestion des règles de réponse automatique est une fonction très importante. Cet article présentera comment utiliser PHP pour développer la fonction de gestion des règles de réponse automatique des comptes publics et fournira des exemples de code spécifiques.

Tout d'abord, nous devons comprendre quelques concepts de base de la fonction de gestion des règles de réponse automatique des comptes officiels WeChat. Sur la page de gestion backend du compte officiel WeChat, nous pouvons définir des menus personnalisés et des règles de réponse automatique par mot clé.

Le menu personnalisé signifie que lorsque l'utilisateur clique sur le menu après avoir suivi le compte officiel, le compte officiel répondra en conséquence en fonction des paramètres du menu. Les menus personnalisés peuvent être divisés en menus de premier niveau et menus de deuxième niveau. Chaque élément de menu peut être configuré pour déclencher un événement après avoir été cliqué, qui peut être un message de réponse, un lien de saut ou un appel d'interface, etc.

Les règles de réponse automatique aux mots-clés signifient que lorsqu'un utilisateur envoie un message contenant un certain mot-clé, le compte officiel répondra conformément aux règles de réponse définies. Les mots clés peuvent être du texte, des images, des liens, etc. Les règles de réponse peuvent consister à répondre à des messages fixes, à répondre à des messages aléatoires ou à appeler des interfaces, etc.

Ensuite, nous commencerons à présenter en détail comment utiliser PHP pour développer la fonction de gestion des règles de réponse automatique des comptes publics.

Tout d'abord, nous devons préparer un environnement de développement PHP, comprenant un serveur Web (comme Apache ou Nginx), un analyseur PHP et une base de données MySQL. Dans cet environnement, nous pouvons utiliser PHP pour développer des applications Web, gérer les requêtes du serveur WeChat et répondre en conséquence.

Ensuite, nous devons obtenir l'AppID et l'AppSecret du compte officiel WeChat. Nous pouvons demander un compte développeur sur la plateforme publique WeChat et créer un compte public. Dans les paramètres du compte officiel, on peut trouver l'AppID et l'AppSecret.

Ensuite, nous devons configurer l'adresse du serveur et le jeton dans les outils de développement de la plateforme publique WeChat. L'adresse du serveur est l'adresse du serveur Web que nous avons nous-mêmes construit et le jeton est une chaîne utilisée pour vérifier l'identité entre le serveur WeChat et notre propre serveur. Une fois la configuration terminée, cliquez sur Confirmer et enregistrez le jeton, dont nous aurons besoin lors de l'écriture du code.

Ensuite, nous pouvons commencer à écrire du code PHP. Tout d'abord, créez un fichier nommé wechat.php et écrivez le code suivant dans le fichier :

<?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;
        }
    }
}

Dans le code ci-dessus, nous définissons d'abord un TOKEN constant pour stocker le Token que nous avons configuré dans les outils de développement WeChat. Ensuite, nous avons créé une classe nommée wechatCallbackAPI et défini deux méthodes, valid() et checkSignature() dans la classe. La méthode

valid() est utilisée pour vérifier l'identité entre le serveur WeChat et notre propre serveur, et renvoyer le résultat de la vérification. Dans la méthode, nous obtenons d'abord le paramètre echostr transmis par le serveur WeChat et l'enregistrons dans la variable $echoStr. Ensuite, appelez la méthode checkSignature() pour l'authentification. Si la vérification réussit, $echoStr est envoyé au client et l'exécution du programme est terminée. La méthode

checkSignature() est utilisée pour vérifier si les paramètres transmis par le serveur WeChat sont valides. Tout d’abord, nous obtenons les paramètres de signature, d’horodatage et de nonce transmis par le serveur WeChat et les enregistrons dans les variables correspondantes. Ensuite, triez le TOKEN, l'horodatage et le nom occasionnel par ordre lexicographique et utilisez l'algorithme SHA1 pour le cryptage. Enfin, la chaîne cryptée est comparée à la signature transmise par le serveur WeChat. Si elles sont égales, la vérification réussit, sinon la vérification échoue.

Ensuite, nous pouvons écrire le code pour la réponse automatique. Par souci de simplicité, nous implémentons ici uniquement la fonction de réponse automatique par mot-clé. Dans le fichier wechat.php, ajoutez le code suivant :

<?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();

Dans le code ci-dessus, nous avons ajouté une méthode nommée ResponseMsg() dans la classe wechatCallbackAPI (utilisée pour traiter les messages des utilisateurs). Dans la méthode, nous obtenons d'abord les données XML POST du serveur WeChat et les enregistrons dans la variable $postStr. Ensuite, les données XML sont converties en un objet SimpleXMLElement via la fonction simplexml_load_string() et enregistrées dans une variable avec la valeur de nœud correspondante.

Ici, nous utilisons la fonction de réponse automatique par mot-clé comme exemple. Si le contenu du message envoyé par l'utilisateur est "Bonjour", le compte officiel répondra "Bonjour ! Bienvenue pour suivre mon compte officiel !", sinon aucune réponse ne sera apportée.

Enfin, nous avons créé un objet $wechatObj à la fin du fichier wechat.php et appelé les méthodes valid() et ResponseMsg() en séquence pour compléter l'authentification entre le serveur WeChat et notre propre serveur, et traiter les requêtes de l'utilisateur. messages .

À ce stade, nous avons terminé l'écriture du code de la fonction de gestion des règles de réponse automatique du compte officiel en PHP. Ensuite, nous pouvons déployer le fichier wechat.php sur notre serveur Web et configurer l'adresse du serveur et le jeton sur la plateforme publique WeChat pour tester si notre code est valide.

En résumé, cet article présente comment utiliser PHP pour développer la fonction de gestion automatique des règles de réponse des comptes publics et fournit des exemples de code spécifiques. J'espère que cela aide tout le monde.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn