微信公众平台开发关注及取消关注事件的方法


Posted in PHP onDecember 23, 2014

本文实例讲述了微信公众平台开发关注及取消关注事件的方法。分享给大家供大家参考。具体分析如下:

用户在关注与取消关注公众号时,微信会把这个事件推送到开发者填写的URL,方便开发者给用户下发欢迎消息或者做帐号的解绑.

下面是一个微信公众平台关注和取消关注的实例,代码如下:

define("TOKEN", "w3note");//定义识别码 

$wechatObj = new wechatCallbackapiTest();//实例化wechatCallbackapiTest类 

 

if(!isset($_GET["echostr"])){ 

     $wechatObj->responseMsg(); 

}else{ 

 $wechatObj->valid(); 

} 

class wechatCallbackapiTest 

{ 

 public function valid() 

    { 

        $echoStr = $_GET["echostr"]; 

        if($this->checkSignature()){ 

         echo $echoStr; 

         exit; 

        } 

    } 

    public function responseMsg()//执行接收器方法 

    { 

    $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; 

    if (!emptyempty($postStr)){ 

      $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); 

      $RX_TYPE = trim($postObj->MsgType); 

      switch($RX_TYPE){ 

       case "event": 

       $result = $this->receiveEvent($postObj); 

       breadk; 

      } 

      echo $result; 

  }else{ 

   echo ""; 

   exit; 

  } 

 } 

  private function receiveEvent($object){ 

   $content = ""; 

   switch ($postObj->Event){ 

    case "subscribe": 

    $content = "欢迎关注网志博客";//这里是向关注者发送的提示信息 

    break; 

    case "unsubscribe": 

    $content = ""; 

    break; 

   } 

   $result = $this->transmitText($object,$content); 

   return $result; 

    } 

 private function transmitText($object,$content){ 

   $textTpl = "<xml> 

       <ToUserName><![CDATA[%s]]></ToUserName> 

       <FromUserName><![CDATA[%s]]></FromUserName> 

       <CreateTime>%s</CreateTime> 

       <MsgType><![CDATA[text]]></MsgType> 

       <Content><![CDATA[%s]]></Content> 

       <FuncFlag>0</FuncFlag> 

       </xml>"; 

    $result = sprintf($textTpl, $object->FromUserName, $object->$ToUserName, time(), $content); 

    return $result; 

  } 

 private function checkSignature() 

 { 

  $signature = $_GET["signature"]; 

  $timestamp = $_GET["timestamp"]; 

  $nonce = $_GET["nonce"]; 

  $token = TOKEN; 

  $tmpArr = array($token, $timestamp, $nonce); 

  sort($tmpArr, SORT_STRING); 

  $tmpStr = implode( $tmpArr ); 

  $tmpStr = sha1( $tmpStr ); 

  if( $tmpStr == $signature ){ 

   return true; 

  }else{ 

   return false; 

  } 

 } 

}

代码相关参数说明:
参数 描述
ToUserName 开发者微信号
FromUserName 发送方帐号(一个OpenID)
CreateTime 消息创建时间 (整型)
MsgType  消息类型,event
Event 事件类型,subscribe(订阅)、unsubscribe(取消订阅)

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
PHP的开合式多级菜单程序
Oct 09 PHP
php下目前为目最全的CURL中文说明
Aug 01 PHP
php中Session的生成机制、回收机制和存储机制探究
Aug 19 PHP
PHP中怎样防止SQL注入分析
Oct 23 PHP
html静态页面调用php文件的方法
Nov 13 PHP
php 类自动载入的方法
Jun 03 PHP
php实现搜索类封装示例
Mar 31 PHP
PHP使用FFmpeg获取视频播放总时长与码率等信息
Sep 13 PHP
thinkPHP自动验证、自动添加及表单错误问题分析
Oct 17 PHP
PHP文件后缀不强制为.php方法
Mar 31 PHP
php链式操作的实现方式分析
Aug 12 PHP
调试php程序的简单步骤
Oct 04 PHP
php打印输出棋盘的实现方法
Dec 23 #PHP
php新浪微博登录接口用法实例
Dec 23 #PHP
PHP+jquery+ajax实现即时聊天功能实例
Dec 23 #PHP
PHP采集静态页面并把页面css,img,js保存的方法
Dec 23 #PHP
微信公众平台消息接口校验与消息接口响应实例
Dec 23 #PHP
php获取QQ头像并显示的方法
Dec 23 #PHP
关于URL最大长度限制的相关资料查证
Dec 23 #PHP
You might like
用文本文件制作留言板提示(下)
2006/10/09 PHP
Laravel等框架模型关联的可用性浅析
2019/12/15 PHP
JavaScript Eval 函数使用
2010/03/23 Javascript
深入理解JavaScript系列(9) 根本没有“JSON对象”这回事!
2012/01/15 Javascript
EXTjs4.0的store的findRecord的BUG演示代码
2013/06/08 Javascript
详谈JavaScript 匿名函数及闭包
2014/11/14 Javascript
js中键盘事件实例简析
2015/01/10 Javascript
原生javascript实现图片滚动、延时加载功能
2015/01/12 Javascript
JavaScript中通过prototype属性共享属性和方法的技巧实例
2015/03/13 Javascript
用JavaScript显示浏览器客户端信息的超相近教程
2015/06/18 Javascript
javascript日期计算实例分析
2015/06/29 Javascript
js实现跨域的多种方法
2015/12/25 Javascript
JavaScript中对JSON对象的基本操作示例
2016/05/21 Javascript
jQuery实现多张图片上传预览(不经过后端处理)
2017/04/29 jQuery
利用javascript如何随机生成一定位数的密码
2017/09/22 Javascript
动态加载、移除js/css文件的示例代码
2018/03/20 Javascript
JS实现图片切换效果
2018/11/17 Javascript
详解基于iview-ui的导航栏路径(面包屑)配置
2019/02/22 Javascript
详解Python的hasattr() getattr() setattr() 函数使用方法
2018/07/09 Python
wxPython的安装与使用教程
2018/08/31 Python
python SocketServer源码深入解读
2019/09/17 Python
Python异常继承关系和自定义异常实现代码实例
2020/02/20 Python
python字符串判断密码强弱
2020/03/18 Python
requests在python中发送请求的实例讲解
2021/02/17 Python
CSS3绘制不规则图形的一些方法示例
2015/11/07 HTML / CSS
南非领先的在线旅行社:Travelstart南非
2016/09/04 全球购物
Answear匈牙利:来自全球200多个知名时尚品牌
2017/04/21 全球购物
匡威爱尔兰官网:Converse爱尔兰
2019/06/09 全球购物
iHerb俄罗斯:维生素、补品和天然产品
2020/07/09 全球购物
竞选班长演讲稿
2013/12/30 职场文书
关于爱情的广播稿
2014/01/16 职场文书
广告学专业求职信
2014/06/19 职场文书
法制教育观后感
2015/06/17 职场文书
通过shell脚本对mysql的增删改查及my.cnf的配置
2021/07/07 MySQL
MySQL外键约束(FOREIGN KEY)案例讲解
2021/08/23 MySQL
详解MySQL中timestamp和datetime时区问题导致做DTS遇到的坑
2021/12/06 MySQL