Maison  >  Article  >  développement back-end  >  Comment utiliser PHP pour écrire un programme de réponse automatique pour les comptes publics WeChat

Comment utiliser PHP pour écrire un programme de réponse automatique pour les comptes publics WeChat

PHPz
PHPzoriginal
2023-05-13 13:01:361283parcourir

Avec le développement rapide de l'Internet mobile, WeChat est devenu un outil social indispensable dans la vie des gens. Dans les comptes publics WeChat, la fonction de réponse automatique est également un élément indispensable. Cet article explique comment utiliser PHP pour écrire un programme de réponse automatique pour les comptes publics WeChat.

  1. Préparation

Tout d'abord, vous devez avoir un compte public WeChat. Si vous n’en avez pas, vous pouvez en demander un. Deuxièmement, vous devez également avoir des compétences de base en programmation PHP.

  1. Obtenez la clé API du développeur de la plateforme publique WeChat

Dans la plateforme publique WeChat, vous devez obtenir la clé API du développeur avant de pouvoir utiliser l'API pour envoyer et recevoir des messages. Sur la plateforme publique WeChat, accédez au centre de développement, sélectionnez la configuration de base, puis obtenez votre propre clé API de développeur.

  1. Écriture de code

Ce qui suit est un exemple de code pour un simple programme de réponse automatique de compte public WeChat :

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

Explication du code :

  1. Définissez la clé API du développeur

    define("TOKEN", "your_token");

    Vous devez remplacer "votre_token" par vous-même Clé API du développeur.

  2. Vérifier le serveur développeur

    if (isset($_GET["echostr"])) {
     $echoStr = $_GET["echostr"];
     if ($this->checkSignature()) {
         echo $echoStr;
         exit;
     }
    }

    Lorsque la plateforme publique WeChat envoie une demande de vérification au serveur développeur, une vérification est requise.

  3. Traitez le message reçu

    $postObj = simplexml_load_string($postStr,'SimpleXMLElement');
    $fromUsername = $postObj->FromUserName;
    $toUsername = $postObj->ToUserName;
    $type = $postObj->MsgType;
    $content = trim($postObj->Content);

    Traitez le message reçu de la plateforme publique WeChat et obtenez le type de message et le contenu du message.

  4. Traitement des messages texte

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

    Lorsqu'un message texte est reçu, un contenu de réponse est généré en fonction du contenu du message.

  5. Vérifier le serveur de développeur

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

    Méthode pour vérifier le serveur de développeur.

  6. Déployer le code

Téléchargez le code écrit sur le serveur et définissez les informations de configuration de l'interface sur la plateforme publique WeChat. Complétez l'adresse du serveur, la clé API du développeur et les informations de configuration de l'interface, puis enregistrez-les.

  1. Testez le programme de réponse automatique

Dans le compte officiel WeChat, envoyez un message au compte officiel Si le programme fonctionne normalement, il répondra automatiquement avec le contenu correspondant.

Résumé

Cet article présente brièvement comment utiliser PHP pour écrire un programme de réponse automatique pour les comptes publics WeChat. Après une simple écriture de code, un débogage et un déploiement, un simple programme de réponse automatique peut être implémenté. Bien entendu, cet exemple n'est qu'un programme d'entrée de gamme. Si vous avez besoin d'une logique métier plus complexe, vous devez écrire et développer le code vous-même.

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