微信公眾平臺開發(fā)關(guān)注及取消關(guān)注事件的方法
本文實(shí)例講述了微信公眾平臺開發(fā)關(guān)注及取消關(guān)注事件的方法。分享給大家供大家參考。具體分析如下:
用戶在關(guān)注與取消關(guān)注公眾號時,微信會把這個事件推送到開發(fā)者填寫的URL,方便開發(fā)者給用戶下發(fā)歡迎消息或者做帳號的解綁.
下面是一個微信公眾平臺關(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ā)者微信號 |
FromUserName | 發(fā)送方帳號(一個OpenID) |
CreateTime | 消息創(chuàng)建時間 (整型) |
MsgType | 消息類型,event |
Event | 事件類型,subscribe(訂閱)、unsubscribe(取消訂閱) |
希望本文所述對大家的php程序設(shè)計(jì)有所幫助。
- 微信公眾平臺實(shí)現(xiàn)獲取用戶OpenID的方法
- 微信公眾平臺網(wǎng)頁授權(quán)獲取用戶基本信息中授權(quán)回調(diào)域名設(shè)置的變動
- 微信公眾平臺開發(fā)入門教程(SAE方倍工作室)
- PHP對接微信公眾平臺消息接口開發(fā)流程教程
- 微信公眾號點(diǎn)擊菜單即可打開并登錄微站的實(shí)現(xiàn)方法
- java開發(fā)微信公眾號支付
- php實(shí)現(xiàn)微信公眾平臺賬號自定義菜單類
- 使用Nodejs開發(fā)微信公眾號后臺服務(wù)實(shí)例
- 微信公眾號支付(二)實(shí)現(xiàn)統(tǒng)一下單接口
- 微信公眾號 搖一搖周邊功能開發(fā)
相關(guān)文章
PHP實(shí)現(xiàn)多服務(wù)器session共享之NFS共享的方法
PHP實(shí)現(xiàn)多服務(wù)器session共享之NFS共享的方法...2007-03-03PHP實(shí)現(xiàn)根據(jù)數(shù)組某個鍵值大小進(jìn)行排序的方法
這篇文章主要介紹了PHP實(shí)現(xiàn)根據(jù)數(shù)組某個鍵值大小進(jìn)行排序的方法,涉及php針對數(shù)組的遍歷、排序等相關(guān)操作技巧,需要的朋友可以參考下2018-03-03PHP代碼網(wǎng)站如何防范SQL注入漏洞攻擊建議分享
所有的網(wǎng)站管理員都會關(guān)心網(wǎng)站的安全問題。說到安全就不得不說到SQL注入攻擊(SQL Injection)2012-03-03php中mail函數(shù)發(fā)送郵件失敗的解決方法
這篇文章主要介紹了php中mail函數(shù)發(fā)送郵件失敗的解決方法,涉及針對Linux運(yùn)行平臺相關(guān)組件的配置技巧,具有一定的參考借鑒價值,需要的朋友可以參考下2014-12-12PHP使用imap_open實(shí)現(xiàn)讀取QQ郵箱
這篇文章主要為大家詳細(xì)介紹了PHP如何使用imap_open實(shí)現(xiàn)讀取QQ郵箱功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2024-02-02