站内搜索

微信开发系列教程(2)

简答的自动回复消息完成了,有很多人都不知道关注自动发送给用户消息是怎么实现的,那么我今天分享一下关注成功后自动发送消息的实现。

看到微信api里面也有介绍到事件推送,那么这个关注事件是如何使用的呢? 今天不废话,直接上代码:

<?phpdefine("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, '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) {        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;    }}?>

以上就是微信开发系列教程(2)的详细内容,更多请关注php中文网其它相关文章!

  • 上一篇:微信开发系列教程(1)
  • 下一篇:微信开发系列教程(3)