微信公眾平臺開發(fā)關(guān)注及取消關(guān)注事件的方法
本文實例講述了微信公眾平臺開發(fā)關(guān)注及取消關(guān)注事件的方法。分享給大家供大家參考。具體分析如下:
用戶在關(guān)注與取消關(guān)注公眾號時,微信會把這個事件推送到開發(fā)者填寫的URL,方便開發(fā)者給用戶下發(fā)歡迎消息或者做帳號的解綁.
下面是一個微信公眾平臺關(guān)注和取消關(guān)注的實例,代碼如下:
$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()//執(zhí)行接收器方法
{
$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 = "歡迎關(guān)注網(wǎng)志博客";//這里是向關(guān)注者發(fā)送的提示信息
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;
}
}
}
代碼相關(guān)參數(shù)說明:
| 參數(shù) | 描述 |
| ToUserName | 開發(fā)者微信號 |
| FromUserName | 發(fā)送方帳號(一個OpenID) |
| CreateTime | 消息創(chuàng)建時間 (整型) |
| MsgType | 消息類型,event |
| Event | 事件類型,subscribe(訂閱)、unsubscribe(取消訂閱) |
希望本文所述對大家的php程序設(shè)計有所幫助。
相關(guān)文章
php訪問數(shù)組最后一個元素的函數(shù)end()用法
這篇文章主要介紹了php訪問數(shù)組最后一個元素的函數(shù)end()用法,實例分析了php中end函數(shù)訪問數(shù)組元素的技巧,非常具有實用價值,需要的朋友可以參考下2015-03-03
PHP守護(hù)進(jìn)程的兩種常見實現(xiàn)方式詳解
這篇文章主要介紹了PHP守護(hù)進(jìn)程的兩種常見實現(xiàn)方式,結(jié)合具體實例形式分析了php守護(hù)進(jìn)程的原理與相關(guān)實現(xiàn)方法與操作注意事項,需要的朋友可以參考下2017-09-09
PHP數(shù)組及條件,循環(huán)語句學(xué)習(xí)
PHP數(shù)組及條件,循環(huán)語句學(xué)習(xí),需要的朋友可以參考下2012-11-11
PHP實現(xiàn)使用DOM將XML數(shù)據(jù)存入數(shù)組的方法示例
這篇文章主要介紹了PHP實現(xiàn)使用DOM將XML數(shù)據(jù)存入數(shù)組的方法,結(jié)合具體實例形式分析了php基于DOM實現(xiàn)xml數(shù)據(jù)讀取與解析相關(guān)操作技巧,需要的朋友可以參考下2017-09-09

