微信开发系列教程(2)

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

看到微信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;      }  }  ?>

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

来源链接:
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
标签: 微信开发
上一篇:php获取远程图片并下载保存到本地的方法分析 下一篇:微信开发系列教程(1)

相关资讯