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


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 相关文章推荐
PHP4 与 MySQL 数据库操作函数详解
Dec 06 PHP
PHP缓存技术的使用说明
Aug 06 PHP
PHP imagecreatefrombmp 从BMP文件或URL新建一图像
Jul 16 PHP
php实现简单洗牌算法
Jun 18 PHP
分享一个Laravel好用的Cache宏
Mar 02 PHP
举例详解PHP脚本的测试方法
Aug 05 PHP
php基于openssl的rsa加密解密示例
Jul 11 PHP
利用PHP自动生成印有用户信息的名片
Aug 01 PHP
PHP+Ajax无刷新带进度条图片上传示例
Feb 08 PHP
利用PHPStorm如何开发Laravel应用详解
Aug 30 PHP
PHP基础之输出缓冲区基本概念、原理分析
Jun 19 PHP
PHP实现简易图形计算器
Aug 28 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
【动漫杂谈】关于《请在T台上微笑》
2020/03/03 日漫
理解php Hash函数,增强密码安全
2011/02/25 PHP
php读取txt文件并将数据插入到数据库
2016/02/23 PHP
Eclipse PHPEclipse 配置的具体步骤
2017/08/08 PHP
PHP分页显示的方法分析【附PHP通用分页类】
2018/05/10 PHP
Yaf框架封装的MySQL数据库操作示例
2019/03/06 PHP
javascript 强制刷新页面的实现代码
2009/12/13 Javascript
ExtJS 设置级联菜单的默认值
2010/06/13 Javascript
原生javascript获取元素样式属性值的方法
2010/12/25 Javascript
JavaScript的Module模式编程深入分析
2013/08/13 Javascript
使用js在页面中绘制表格核心代码
2013/09/16 Javascript
鼠标滑在标题上显示图片的JS代码
2013/11/19 Javascript
jquery实现通用版鼠标经过淡入淡出效果
2014/06/15 Javascript
JS实现二叉查找树的建立以及一些遍历方法实现
2017/04/17 Javascript
[jQuery] 事件和动画详解
2019/03/05 jQuery
微信小程序 scroll-view 实现锚点跳转功能
2019/12/12 Javascript
JS基础之逻辑结构与循环操作示例
2020/01/19 Javascript
[06:21]完美世界亚洲区首席发行官竺琦TI3采访
2013/08/26 DOTA
Python设计模式之单例模式实例
2014/04/26 Python
使用Python标准库中的wave模块绘制乐谱的简单教程
2015/03/30 Python
windows 10下安装搭建django1.10.3和Apache2.4的方法
2017/04/05 Python
Python定义函数功能与用法实例详解
2019/04/08 Python
Pycharm 字体大小调整设置的方法实现
2019/09/27 Python
python使用html2text库实现从HTML转markdown的方法详解
2020/02/21 Python
真正了解CSS3背景下的@font face规则
2017/05/04 HTML / CSS
H5页面适配iPhoneX(就是那么简单)
2019/12/02 HTML / CSS
韩国家庭购物网上商店:Nsmall
2017/05/07 全球购物
最新教师自我评价分享
2013/11/12 职场文书
公益广告宣传方案
2014/02/28 职场文书
个人工作主要事迹
2014/05/08 职场文书
组工干部对照检查材料
2014/08/25 职场文书
会计试用期自我评价怎么写
2014/09/18 职场文书
房屋过户委托书范本
2014/10/07 职场文书
给客户的感谢信
2015/01/21 职场文书
个人思想政治总结
2015/03/05 职场文书
HTML5基础学习之文本标签控制
2022/03/25 HTML / CSS