微信公眾平臺(tái)開發(fā)關(guān)注及取消關(guān)注事件的方法
本文實(shí)例講述了微信公眾平臺(tái)開發(fā)關(guān)注及取消關(guān)注事件的方法。分享給大家供大家參考。具體分析如下:
用戶在關(guān)注與取消關(guān)注公眾號(hào)時(shí),微信會(huì)把這個(gè)事件推送到開發(fā)者填寫的URL,方便開發(fā)者給用戶下發(fā)歡迎消息或者做帳號(hào)的解綁.
下面是一個(gè)微信公眾平臺(tái)關(guān)注和取消關(guān)注的實(shí)例,代碼如下:
$wechatObj = new wechatCallbackapiTest();//實(shí)例化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ā)者微信號(hào) |
| FromUserName | 發(fā)送方帳號(hào)(一個(gè)OpenID) |
| CreateTime | 消息創(chuàng)建時(shí)間 (整型) |
| MsgType | 消息類型,event |
| Event | 事件類型,subscribe(訂閱)、unsubscribe(取消訂閱) |
希望本文所述對(duì)大家的php程序設(shè)計(jì)有所幫助。
- 微信公眾平臺(tái)實(shí)現(xiàn)獲取用戶OpenID的方法
- 微信公眾平臺(tái)網(wǎng)頁授權(quán)獲取用戶基本信息中授權(quán)回調(diào)域名設(shè)置的變動(dòng)
- 微信公眾平臺(tái)開發(fā)入門教程(SAE方倍工作室)
- PHP對(duì)接微信公眾平臺(tái)消息接口開發(fā)流程教程
- 微信公眾號(hào)點(diǎn)擊菜單即可打開并登錄微站的實(shí)現(xiàn)方法
- java開發(fā)微信公眾號(hào)支付
- php實(shí)現(xiàn)微信公眾平臺(tái)賬號(hào)自定義菜單類
- 使用Nodejs開發(fā)微信公眾號(hào)后臺(tái)服務(wù)實(shí)例
- 微信公眾號(hào)支付(二)實(shí)現(xiàn)統(tǒng)一下單接口
- 微信公眾號(hào) 搖一搖周邊功能開發(fā)
相關(guān)文章
php訪問數(shù)組最后一個(gè)元素的函數(shù)end()用法
這篇文章主要介紹了php訪問數(shù)組最后一個(gè)元素的函數(shù)end()用法,實(shí)例分析了php中end函數(shù)訪問數(shù)組元素的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-03-03
PHP守護(hù)進(jìn)程的兩種常見實(shí)現(xiàn)方式詳解
這篇文章主要介紹了PHP守護(hù)進(jìn)程的兩種常見實(shí)現(xiàn)方式,結(jié)合具體實(shí)例形式分析了php守護(hù)進(jìn)程的原理與相關(guān)實(shí)現(xiàn)方法與操作注意事項(xiàng),需要的朋友可以參考下2017-09-09
PHP數(shù)組及條件,循環(huán)語句學(xué)習(xí)
PHP數(shù)組及條件,循環(huán)語句學(xué)習(xí),需要的朋友可以參考下2012-11-11
PHP實(shí)現(xiàn)使用DOM將XML數(shù)據(jù)存入數(shù)組的方法示例
這篇文章主要介紹了PHP實(shí)現(xiàn)使用DOM將XML數(shù)據(jù)存入數(shù)組的方法,結(jié)合具體實(shí)例形式分析了php基于DOM實(shí)現(xiàn)xml數(shù)據(jù)讀取與解析相關(guān)操作技巧,需要的朋友可以參考下2017-09-09

