看到微信api里面也有介绍到事件推送,那么这个关注事件是如何使用的呢? 今天不废话,直接上代码:
<?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, '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; } } ?>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。