《PHP編程:微信公眾平臺(tái)開發(fā)關(guān)注及取消關(guān)注事件的方法》要點(diǎn):
本文介紹了PHP編程:微信公眾平臺(tái)開發(fā)關(guān)注及取消關(guān)注事件的方法,希望對您有用。如果有疑問,可以聯(lián)系我們。
本文實(shí)例講述了微信公眾平臺(tái)開發(fā)關(guān)注及取消關(guān)注事件的辦法.分享給大家供大家參考.具體分析如下:PHP實(shí)例
用戶在關(guān)注與取消關(guān)注公眾號(hào)時(shí),微信會(huì)把這個(gè)事件推送到開發(fā)者填寫的URL,方便開發(fā)者給用戶下發(fā)歡迎消息或者做帳號(hào)的解綁.PHP實(shí)例
下面是一個(gè)微信公眾平臺(tái)關(guān)注和取消關(guān)注的實(shí)例,代碼如下:
PHP實(shí)例
代碼如下:
define("TOKEN", "w3note");//定義識(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ù)說明:
歡迎參與《PHP編程:微信公眾平臺(tái)開發(fā)關(guān)注及取消關(guān)注事件的方法》討論,分享您的想法,維易PHP學(xué)院為您提供專業(yè)教程。
轉(zhuǎn)載請注明本頁網(wǎng)址:
http://www.snjht.com/jiaocheng/13214.html