Heim  >  Artikel  >  WeChat-Applet  >  Entwicklung der Nachrichtenschnittstelle der öffentlichen WeChat-Plattform vom Hello2BizUser-Text bis zum Abonnementereignis

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

高洛峰
高洛峰Original
2017-03-04 14:49:561878Durchsuche

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

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

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

Damit ist die Verarbeitung des Abonnementereignisses „Abonnieren“ abgeschlossen.

2. Vollständiger Code

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

?>

Weitere Nachrichtenschnittstellen für die öffentliche WeChat-Plattform werden entwickelt Von Hello2BizUser Text zum Abonnieren der Veranstaltung beachten Sie bitte die chinesische PHP-Website!

Stellungnahme:
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