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

用户在关注与取消关注公众号时,微信会把这个事件推送到开发者填写的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程序设计有所帮助。