好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

微信公众平台开发关注/取消关注事件例子 - php高

微信公众平台开发关注/取消关注事件例子

用户在关注与取消关注公众号时,微信会把这个事件推送到开发者填写的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  (! empty empty ( $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  );      //开源代码phpfensi.com      if (  $tmpStr  ==  $signature  ){      return  true;    } else {      return  false;    }   }  } 

代码相关参数说明:

参数 描述

ToUserName 开发者微信号

FromUserName  发送方帐号(一个OpenID)

CreateTime  消息创建时间 (整型)

MsgType  消息类型,event

Event  事件类型,subscribe(订阅)、unsubscribe(取消订阅)

查看更多关于微信公众平台开发关注/取消关注事件例子 - php高的详细内容...

  阅读:41次