Heim  >  Artikel  >  WeChat-Applet  >  Tutorialreihe zur WeChat-Entwicklung (2)

Tutorialreihe zur WeChat-Entwicklung (2)

高洛峰
高洛峰Original
2017-03-31 14:20:161888Durchsuche

Die einfache automatische Antwortnachricht ist fertig. Viele Leute wissen nicht, wie sie automatisch Nachrichten an Benutzer senden können, nachdem sie ihnen gefolgt sind. Deshalb werde ich heute die Implementierung des automatischen Sendens von Nachrichten nach erfolgreichem Verfolgen vorstellen.

Ich habe gesehen, dass Event-Push auch in der WeChat-API eingeführt wird. Wie wird dieses Aufmerksamkeitsereignis verwendet? Kein Unsinn heute, kommen wir direkt zum Code:

<?php
define("TOKEN", "weixin");
$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) {
        if (!empty($object)){
                $fromUsername = $object->FromUserName;
                $toUsername = $object->ToUserName;
                $keyword = trim($object->Content);
                $time = time();
                                    
                //自动回复图文消息
                $textTpl = "<xml>
                             <ToUserName><![CDATA[%s]]></ToUserName>
                             <FromUserName><![CDATA[%s]]></FromUserName>
                             <CreateTime>%s</CreateTime>
                             <MsgType><![CDATA[%s]]></MsgType>
                                                     
                             <ArticleCount>3</ArticleCount>
                             <Articles>
                             <item>
                             <Title><![CDATA[测试标题1]]></Title>
                             <Description><![CDATA[测试内容啊1!]]></Description>
                             <PicUrl><![CDATA[http://weixin.comsenz-service.com/20.jpg]]></PicUrl>
                             <Url><![CDATA[http://www.baidu.com]]></Url>
                             </item>
                             <item>
                             <Title><![CDATA[哈哈,标题]]></Title>
                             <Description><![CDATA[内容标题]]></Description>
                             <PicUrl><![CDATA[http://weixin.comsenz-service.com/540.png]]></PicUrl>
                             <Url><![CDATA[http://www.discuz.com]]></Url>
                             </item>
                             <item>
                             <Title><![CDATA[12345哈哈,标题]]></Title>
                             <Description><![CDATA[798465789内容标题]]></Description>
                             <PicUrl><![CDATA[http://weixin.comsenz-service.com/20.jpg]]></PicUrl>
                             <Url><![CDATA[http://www.google.com]]></Url>
                             </item>
                             </Articles>
                             <FuncFlag>1</FuncFlag>
                             </xml> ";
                                        
                if(!empty( $keyword )){
                    $msgType = "news";  //类型 news:图文消息、text:文本消息 event:事件
                    $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);
                    echo $resultStr;
                }else{
                    echo "Input something...";
                }
        }else {
            echo "";
            exit;
        }
    }
    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;
    }
}
?>

Das obige ist der detaillierte Inhalt vonTutorialreihe zur WeChat-Entwicklung (2). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen 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