微信公众平台开发关注及取消关注事件的方法_php教程-查字典教程网
微信公众平台开发关注及取消关注事件的方法
微信公众平台开发关注及取消关注事件的方法
发布时间:2016-12-29 来源:查字典编辑
摘要:本文实例讲述了微信公众平台开发关注及取消关注事件的方法。分享给大家供大家参考。具体分析如下:用户在关注与取消关注公众号时,微信会把这个事件推...

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

用户在关注与取消关注公众号时,微信会把这个事件推送到开发者填写的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教程学习
    编程开发子分类