Entwicklung der Nachrichtenschnittstelle der öffentlichen WeChat-Plattform vom Hello2BizUser-Text bis zum Abonnementereignis

高洛峰
Freigeben: 2017-03-04 14:49:56
Original
1877 Leute haben es durchsucht

1. Verarbeitung des alten Hello2BizUser-Ereignisses

Nachdem der Benutzer dem öffentlichen WeChat-Plattformkonto folgt, hilft das System dem Benutzer, einen Text von Hello2BizUser zu senden zum öffentlichen Konto Im Hintergrundentwicklungsmodus des öffentlichen Kontos wird die Willkommensnachricht durch Beurteilen des Wortes Hello2BizUser gesendet.

Das Codebeispiel lautet wie folgt:

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

Änderungen an der Basisschnittstelle wirken sich auf alle aus. Im Allgemeinen sind solche Änderungen nicht einfach durchzuführen.

Warum möchte WeChat dieses Ereignis ändern? Der Nachteil dieser Methode besteht darin, dass es keine Willkommensnachricht gibt Die Willkommensnachricht hat keinen Einfluss darauf. Aber in den Programmcodes vieler Leute basieren alle Prozesse direkt auf der Beurteilung von Schlüsselwörtern. Wir haben zum Beispiel das WeChat-Konto eines Krankenhauses gesehen. Wenn der Benutzer die Registrierungsnummer sendet, wird angezeigt, wie viele Personen davor stehen. Das Hintergrundprogramm macht jedoch keine Unterscheidung und sendet Hello2BizUser als Registrierungsauftrag . Die Registrierungsnummer Hello2BizUser wurde nicht gefunden. Ich weiß nicht, wie viele Personen sich vor mir befinden, was die Benutzer verwirrt. Wenn der Benutzer außerdem die Initiative ergreift, einen Hello2BizUser zu senden, erhält er denselben Inhalt wie die Willkommensnachricht, obwohl nur wenige Benutzer diese Nachricht senden.

Andererseits ist die Umwandlung der Benutzeraufmerksamkeit in Ereignisse förderlicher für die Realisierung statistischer Funktionen. Mithilfe dieses Ereignisses können wir die Anzahl der Follower und Abmelder einfacher ermitteln. Die ursprüngliche Text-Push-Ermittlung von Hello2BizUser ist jedoch möglicherweise ungenau, da Benutzer sie manuell senden können, wodurch falsche Follow-Statistiken entstehen.

2. „Abonnieren“-Ereignisbeurteilung

Abonnieren ist ein neues Ereignis, das wir hinzufügen Beurteilen Sie dieses Ereignis im offiziellen Beispiel und ändern Sie es wie folgt:

$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;
}
Nach dem Login kopieren

Beurteilen Sie dann das Abonnementereignis in der Ereignisempfangsverarbeitungsfunktion:

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

Damit ist die Verarbeitung des Abonnementereignisses „Abonnieren“ abgeschlossen.

2. Vollständiger Code

<?php
define("TOKEN", "方倍工作室");
$wechatObj = new wechatCallbackapiTest();
$wechatObj->responseMsg();

class wechatCallbackapiTest
{
    public function responseMsg()
    {
        $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
        if (!empty($postStr)){
            $postObj = simplexml_load_string($postStr, &#39;SimpleXMLElement&#39;, 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 = "<xml>
<ToUserName><![CDATA[%s]]></ToUserName>
<FromUserName><![CDATA[%s]]></FromUserName>
<CreateTime>%s</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[%s]]></Content>
<FuncFlag>%d</FuncFlag>
</xml>";
        $resultStr = sprintf($textTpl, $object->FromUserName, $object->ToUserName, time(), $content, $flag);
        return $resultStr;
    }
}

?>
Nach dem Login kopieren

Weitere Nachrichtenschnittstellen für die öffentliche WeChat-Plattform werden entwickelt Von Hello2BizUser Text zum Abonnieren der Veranstaltung beachten Sie bitte die chinesische PHP-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