Maison  >  Article  >  Applet WeChat  >  Développement de l'interface de message de la plate-forme publique WeChat à partir du texte Hello2BizUser pour s'abonner à l'événement

Développement de l'interface de message de la plate-forme publique WeChat à partir du texte Hello2BizUser pour s'abonner à l'événement

高洛峰
高洛峰original
2017-03-04 14:49:561879parcourir

1. Traitement de l'ancien événement Hello2BizUser

Dans l'ancien événement d'attention, une fois que l'utilisateur a suivi le compte de la plateforme publique WeChat, le système aidera l'utilisateur à envoyer un SMS de Hello2BizUser. au compte public. En mode développement en arrière-plan du compte public, le message de bienvenue est envoyé en jugeant le mot Hello2BizUser.

L'exemple de code est le suivant :

if ($keyword == "Hello2BizUser"){
    $contentStr = "PHP中文网";
    $resultStr = $this->transmitText($object, $contentStr, $funcFlag);
    return $resultStr;
}

Apporter des modifications à l'interface de base affectera tout le monde. En général, de tels changements ne seront pas faciles à réaliser.

Pourquoi WeChat veut-il modifier cet événement ? L'inconvénient de cette méthode est que si l'utilisateur ne juge pas cet événement, alors il n'y aura pas de message de bienvenue. A l'origine, cela n'a pas d'importance. le message de bienvenue ne l'affectera pas. Mais dans les codes de programmes de nombreuses personnes, tous les processus sont directement basés sur l'évaluation de mots-clés. Par exemple, nous avons vu le compte WeChat d'un hôpital. Lorsque l'utilisateur envoie le numéro d'enregistrement, il affiche le nombre de personnes alignées devant lui. Cependant, le programme en arrière-plan ne fait pas de distinction et envoie Hello2BizUser comme ordre d'enregistrement. Le numéro d'enregistrement Hello2BizUser est introuvable. Je ne sais pas combien de personnes se trouvent devant moi, ce qui rend les utilisateurs confus. De plus, si l'utilisateur prend l'initiative d'envoyer un Hello2BizUser, il obtiendra le même contenu que le message de bienvenue, même si peu d'utilisateurs enverront cette chose.

D'un autre côté, transformer l'attention des utilisateurs en événements est plus propice à la réalisation de fonctions statistiques. Grâce à cet événement, nous pouvons déterminer plus facilement le nombre d'abonnés et de désabonnés. Cependant, la détermination originale du message push de Hello2BizUser peut être inexacte car les utilisateurs peuvent l'envoyer manuellement, formant ainsi de fausses statistiques de suivi.

2. Jugement de l'événement d'abonnement "s'abonner"

l'abonnement est un nouvel événement Nous devons d'abord juger le type d'événement. jugement de cet événement dans l'échantillon officiel et modifiez-le comme suit :

$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
$RX_TYPE = trim($postObj->MsgType);

switch ($RX_TYPE)
{
    case "text":
        $resultStr = $this->receiveText($postObj);
        break;
    case "event":
        $resultStr = $this->receiveEvent($postObj);
        break;
    default:
        $resultStr = "unknow msg type: ".$RX_TYPE;
        break;
}

Jugez ensuite l'événement de souscription dans la fonction de traitement de réception d'événement :

private function receiveEvent($object)
{
    $contentStr = "";
    switch ($object->Event)
    {
        case "subscribe":
            $contentStr = "您好,欢迎关注方倍工作室。新感觉,新体验!";
            break;
    }
    $resultStr = $this->transmitText($object, $contentStr);
    return $resultStr;
}

Ceci termine le traitement de l'événement d'abonnement « s'abonner ».

2. Code complet

746d1c365ce1b149275c8e015d81db55responseMsg();

class wechatCallbackapiTest
{
    public function responseMsg()
    {
        $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
        if (!empty($postStr)){
            $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
            $RX_TYPE = trim($postObj->MsgType);

            switch ($RX_TYPE)
            {
                case "text":
                    $resultStr = $this->receiveText($postObj);
                    break;
                case "event":
                    $resultStr = $this->receiveEvent($postObj);
                    break;
                default:
                    $resultStr = "unknow msg type: ".$RX_TYPE;
                    break;
            }
            echo $resultStr;
        }else {
            echo "";
            exit;
        }
    }

    private function receiveText($object)
    {
        $funcFlag = 0;
        $keyword = trim($object->Content);
        $resultStr = "";
        $cityArray = array();
        $contentStr = "";
        $needArray = false;
        $illegal = false;
        $saytome = false;
        
        if ($keyword == "Hello2BizUser"){
            $contentStr = "欢迎关注方倍工作室,这其实是老的欢迎词,你关注时收不到了";
            $resultStr = $this->transmitText($object, $contentStr, $funcFlag);
            return $resultStr;
        }else {
        
        }
    }

    private function receiveEvent($object)
    {
        $contentStr = "";
        switch ($object->Event)
        {
            case "subscribe":
                $contentStr = "您好,欢迎关注方倍工作室。新感觉,新体验!";
                break;
        }
        $resultStr = $this->transmitText($object, $contentStr);
        return $resultStr;
    }
    
    private function transmitText($object, $content, $flag = 0)
    {
        $textTpl = "b2a0af5a8fd26276da50279a1c63a57a
ea5d8177d19f22584533e5c37c389942d3242fa0f72a59f12bbb2807edba61b76671a89dce89e879d9e9c6d81d03862b
c5123754d1f4829fae4905e8abb602f9d3242fa0f72a59f12bbb2807edba61b742a4b8d57eb0afadcf16b7a02c69caaf
246311df1688542638dc52b54a1a4c87%se660f1169ff44ea75c5a982fcb1cde61
42815c2206ae835d7fd68cb4ae21e4dffa796850a1cf5d7bc01ca8cd7f8b83de698463fc03844fbe5a9caafaa1ebd0b1
ea63b4477034504a08070acf4e0b68b2d3242fa0f72a59f12bbb2807edba61b7aa91fa7c40b1cd973268e154dae1a50e
c16e87311aa318186a2141a5b8ce5511%dfecc2d83bf66fbc799a88f710e0cd251
21118965b89073f60271ef4a3b5d3c58";
        $resultStr = sprintf($textTpl, $object->FromUserName, $object->ToUserName, time(), $content, $flag);
        return $resultStr;
    }
}

?>

Plus d'interfaces de messages de la plateforme publique WeChat Développement du texte Hello2BizUser pour s'abonner à l'événement. Pour les articles connexes, veuillez faire attention au site Web PHP 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