search
HomeWeChat AppletWeChat DevelopmentWeChat development tutorial series (2)

WeChat development tutorial series (2)

Mar 31, 2017 pm 02:20 PM
WeChat development

The simple automatic reply message is completed. Many people don’t know how to automatically send messages to users after following them. So today I will share the implementation of automatically sending messages after successful following.

I saw that event push is also introduced in the WeChat API, so how is this attention event used? No nonsense today, let’s go straight to the 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;
    }
}
?>

The above is the detailed content of WeChat development tutorial series (2). For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

SublimeText3 English version

SublimeText3 English version

Recommended: Win version, supports code prompts!

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Powerful PHP integrated development environment

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.

Atom editor mac version download

Atom editor mac version download

The most popular open source editor