微信公眾號后臺PHP源代碼_第1頁
微信公眾號后臺PHP源代碼_第2頁
微信公眾號后臺PHP源代碼_第3頁
微信公眾號后臺PHP源代碼_第4頁
微信公眾號后臺PHP源代碼_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

<?php/*doufudiysupportCopyRightAllRightsReserved*/define("TOKEN","doufudiy");define("AppID","wx9b24c99e83238b21");define("EncodingAESKey","ww1bzDRcAy84UOGNaxL230A9tdBBOWgKQkYviIc6CFc");define("APP_SECRET","c9addd54fcf811ea7acb59d");//改成自己APPSECRET$wechatObj=newwechatCallbackapiTest();$wechatObj->responseMsg();classwechatCallbackapiTest{ private$app_id; private$app_secret; publicfunctionvalid(){$echoStr=$_GET["echostr"];//validsignature,optionif($this->checkSignature()){ ob_clean();echo$echoStr;exit;}}functiontxt($fu,$tu,$content,$flag=0){ $tpl = "<xml> <ToUserName><![CDATA[".$fu."]]></ToUserName> <FromUserName><![CDATA[".$tu."]]></FromUserName> <CreateTime>".$_SERVER['REQUEST_TIME']."</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[".$content."]]></Content> <FuncFlag>".$flag."</FuncFlag> </xml>"; echo$tpl;}functionnews($fu,$tu,$data,$flag=0){ $num = count($data); if($num>1){ $add=$this->news_add($data); $tpl="<xml> <ToUserName><![CDATA[".$fu."]]></ToUserName> <FromUserName><![CDATA[".$tu."]]></FromUserName> <CreateTime>".$_SERVER['REQUEST_TIME']."</CreateTime> <MsgType><![CDATA[news]]></MsgType> <Content><![CDATA[%s]]></Content> <ArticleCount>".$num."</ArticleCount> <Articles> ".$add." </Articles> <FuncFlag>".$flag."</FuncFlag> </xml>"; echo$tpl; }else{ $tpl="<xml> <ToUserName><![CDATA[".$fu."]]></ToUserName> <FromUserName><![CDATA[".$tu."]]></FromUserName> <CreateTime>".$_SERVER['REQUEST_TIME']."</CreateTime> <MsgType><![CDATA[news]]></MsgType> <Content><![CDATA[%s]]></Content> <ArticleCount>1</ArticleCount> <Articles> <item> <Title><![CDATA[".$data[0]['title']."]]></Title> <Description><![CDATA[".$data[0]['intro']."]]></Description> <PicUrl><![CDATA[".$data[0]['pic']."]]></PicUrl> <Url><![CDATA[".$data[0]['url']."]]></Url> </item> </Articles> <FuncFlag>".$flag."</FuncFlag> </xml>"; echo$tpl; }}functionnews_add($data){ $add = ""; foreach($dataas$k){ $add .="<item> <Title><![CDATA[".$k['title']."]]></Title> <Description><![CDATA[".$k['intro']."]]></Description> <PicUrl><![CDATA[".$k['pic']."]]></PicUrl> <Url><![CDATA[".$k['url']."]]></Url> </item>"; } return$add;}/*functionaudio($fu,$tu,$data,$flag=0){ $tpl = "<xml> <ToUserName><![CDATA[".$fu."]]></ToUserName> <FromUserName><![CDATA[".$tu."]]></FromUserName> <CreateTime>".$_SERVER['REQUEST_TIME']."</CreateTime> <MsgType><![CDATA[music]]></MsgType> <Music> <Title><![CDATA[".$data['title']."]]></Title> <Description><![CDATA[".$data['intro']."]]></Description> <MusicUrl><![CDATA[".$data['url']."]]></MusicUrl> <HQMusicUrl><![CDATA[".$data['hqurl']."]]></HQMusicUrl> </Music> <FuncFlag>".$flag."</FuncFlag> </xml>"; echo$tpl;}*/functionaudio($fu,$tu,$data,$flag=0){ $num = count($data); if($num>1){ $add=$this->audio_add($data); $tpl="<xml> <ToUserName><![CDATA[".$fu."]]></ToUserName> <FromUserName><![CDATA[".$tu."]]></FromUserName> <CreateTime>".$_SERVER['REQUEST_TIME']."</CreateTime> <MsgType><![CDATA[music]]></MsgType> <Content><![CDATA[%s]]></Content> <MusicCount>".$num."</MusicCount> <Musics> ".$add." </Musics> <FuncFlag>".$flag."</FuncFlag> </xml>"; echo$tpl; }else{ $tpl="<xml> <ToUserName><![CDATA[".$fu."]]></ToUserName> <FromUserName><![CDATA[".$tu."]]></FromUserName> <CreateTime>".$_SERVER['REQUEST_TIME']."</CreateTime> <MsgType><![CDATA[music]]></MsgType> <Content><![CDATA[%s]]></Content> <MusicCount>1</MusicCount> <Musics> <item> <Title><![CDATA[".$data['title']."]]></Title> <Description><![CDATA[".$data['intro']."]]></Description> <MusicUrl><![CDATA[".$data['url']."]]></MusicUrl> <HQMusicUrl><![CDATA[".$data['hqurl']."]]></HQMusicUrl> </item> </Musics> <FuncFlag>".$flag."</FuncFlag> </xml>"; echo$tpl; }}functionaudio_add($data){ $add = ""; foreach($dataas$k){ $add .="<item> <Title><![CDATA[".$data['title']."]]></Title> <Description><![CDATA[".$data['intro']."]]></Description> <MusicUrl><![CDATA[".$data['url']."]]></MusicUrl> <HQMusicUrl><![CDATA[".$data['hqurl']."]]></HQMusicUrl> </item>"; } return$add;}publicfunctionreceiveEvent($object){ $contentStr="ok!"; $fu=(string)$object->FromUserName;//取出用戶賬號 $tu=(string)$object->ToUserName;//公眾賬號 txt($fu,$tu,'beginreceiveEvent',0); /* switch($object->Event) { case"subscribe": $contentStr="歡迎關(guān)注清華紙飛機(jī)傳媒"; break; case"unsubscribe": break; case"CLICK"://$postObj->EventKey; txt($fu,$tu,'回復(fù)數(shù)字0~50課程號,收聽靈巧狗英文啟蒙課程'); switch($object->EventKey) { case"leve0": txt($fu,$tu,'回復(fù)數(shù)字0~50課程號,收聽靈巧狗英文啟蒙課程'); //$contentStr[]=array("Title"=>"靈巧狗啟蒙英文讀物", //"Description"=>"輸入數(shù)字1~50,聽取課程", //"PicUrl"=>"", //"Url"=>"weixin://addfriend/pondbaystudio"); break; case"leve1": $contentStr[]=array("Title"=>"靈巧狗啟蒙英文讀物", "Description"=>"輸入數(shù)字1~50,聽取課程", "PicUrl"=>"", "Url"=>""); break; default: $contentStr[]=array("Title"=>"默認(rèn)菜單回復(fù)", "Description"=>"您正在使用是自定義菜單測試接口", "PicUrl"=>"", "Url"=>""); break; } break; default: txt($fu,$tu,'receiveEventdefault'); break; } if(is_array($contentStr)){ $resultStr=news($fu,$tu,$contentStr); }else{ $resultStr=txt($fu,$tu,$contentStr,0); //txt($fu,$tu,'你發(fā)送了數(shù)字0,所以你就看到了這么多。'); //txt($fu,$tu,'你發(fā)送內(nèi)容是。'.$content); } */ return$resultStr;}privatefunctiontransmitText($object,$content,$funcFlag=0){ $textTpl="<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[text]]></MsgType><Content><![CDATA[%s]]></Content><FuncFlag>%d</FuncFlag></xml>"; $resultStr=sprintf($textTpl,$object->FromUserName,$object->ToUserName,time(),$content,$funcFlag); return$resultStr;}privatefunctiontransmitNews($object,$arr_item,$funcFlag=0){ //首條標(biāo)題28字,其余標(biāo)題39字 if(!is_array($arr_item)) return; $itemTpl="<item><Title><![CDATA[%s]]></Title><Description><![CDATA[%s]]></Description><PicUrl><![CDATA[%s]]></PicUrl><Url><![CDATA[%s]]></Url></item>"; $item_str=""; foreach($arr_itemas$item) $item_str.=sprintf($itemTpl,$item['Title'],$item['Description'],$item['PicUrl'],$item['Url']); $newsTpl="<xml> <ToUserName><![CDATA[%s]]></ToUserName> <FromUserName><![CDATA[%s]]></FromUserName> <CreateTime>%s</CreateTime> <MsgType><![CDATA[news]]></MsgType> <Content><![CDATA[]]></Content> <ArticleCount>%s</ArticleCount> <Articles> $item_str</Articles> <FuncFlag>%s</FuncFlag> </xml>"; $resultStr=sprintf($newsTpl,$object->FromUserName,$object->ToUserName,time(),count($arr_item),$funcFlag); return$resultStr;}publicfunctionresponseMsg(){//獲取post數(shù)據(jù)//$postStr=$GLOBALS["HTTP_RAW_POST_DATA"];$postStr=isset($GLOBALS["HTTP_RAW_POST_DATA"])?$GLOBALS["HTTP_RAW_POST_DATA"]:"";//利用三目運(yùn)算符,使用isset函數(shù)檢測變量是否已經(jīng)設(shè)置或者存在(使用數(shù)組時,其索引有可能不存在,比如此例HTTP_RAW_POST_DATA可能不存在)//解析post數(shù)據(jù)if(!empty($postStr)){ //$access_token=$this->get_access_token();//獲取access_token //$this->createmenu($access_token);//創(chuàng)建菜單$postObj=simplexml_load_string($postStr,'SimpleXMLElement',LIBXML_NOCDATA);$type=$postObj->MsgType;$fu=(string)$postObj->FromUserName;//取出用戶賬號$tu=(string)$postObj->ToUserName;//公眾賬號switch($type){case"voice";$resultStr=$this->getMusicContent($postObj);echo$resultStr;exit;break;case"event": //$this->txt($fu,$tu,'回復(fù)數(shù)字0~50課程號,收聽靈巧狗英文啟蒙課程');//$resultStr=$this->receiveEvent($postObj); switch($postObj->Event) { case"subscribe": $contentStr="歡迎關(guān)注跨界交流"; break; case"unsubscribe": break; case"CLICK"://$postObj->EventKey; //$this->txt($fu,$tu,'回復(fù)數(shù)字0~50課程號,收聽靈巧狗英文啟蒙課程'); switch($postObj->EventKey) { case"introduce": //$this->txt($fu,$tu,'回復(fù)數(shù)字0~50課程號,收聽靈巧狗英文啟蒙課程'); //$this->txt($fu,$tu,'leve0'); //$contentStr[]=array("Title"=>"靈巧狗啟蒙英文讀物", //"Description"=>"輸入數(shù)字1~50,聽取課程", //"PicUrl"=>"", //"Url"=>"weixin://addfriend/pondbaystudio"); $msg[0]['title']='這里是標(biāo)題'; $msg[0]['intro']='介紹'; $msg[0]['pic']='';//圖片URL這里是返回發(fā)送原圖URL要使用絕對完整地址 $msg[0]['url']='';//這里是超鏈接 $this->news($fu,$tu,$msg); break; case"game": $this->txt($fu,$tu,'語音輸入進(jìn)行點(diǎn)歌游戲\n\r輸入課程數(shù)字號聽英文錄音'); break; default: //$this->txt($fu,$tu,'default-0'); $contentStr[]=array("Title"=>"默認(rèn)菜單回復(fù)", "Description"=>"您正在使用是自定義菜單測試接口", "PicUrl"=>"", "Url"=>"weixin://addfriend/pondbaystudio"); break; } break; default: //$this->txt($fu,$tu,'receiveEventdefault-1'); break; } if(is_array($contentStr)){ $resultStr=$this->transmitNews($postObj,$contentStr); }else{ //$resultStr=$this->transmitText($postObj,$contentStr); $this->txt($fu,$tu,'回復(fù)數(shù)字0~50課程號,收聽靈巧狗英文啟蒙課程'); } break;case'image'://圖像消息類型 $pic = (string)$postObj->PicUrl;//取出圖片url //回復(fù)一個圖文開始定義數(shù)組 $msg[0]['title']='這里是標(biāo)題'; $msg[0]['intro']='介紹'; $msg[0]['pic']=$pic;//圖片URL這里是返回發(fā)送原圖URL要使用絕對完整地址 $msg[0]['url']='';//這里是超鏈接 $this->news($fu,$tu,$msg); //如要回復(fù)多條圖文,可對該二維數(shù)組賦值多個元素如$msg[0] $msg[1] $msg[2] 。 break;case'location'://地理位置消息類型 $l_x=$postObj->Location_X;//取出x坐標(biāo) $l_y=$postObj->Location_Y;//取出y坐標(biāo) $scale=$postObj->Scale;//取出縮放等級 $lable=$postObj->Label;//取出位置信息 //回復(fù)文字消息 $this->txt($fu,$tu,'你所處位置是:'.$lable.'坐標(biāo)為X:'.$l_x.'Y:'.$l_y); break;case"text";//$resultStr=$this->getMenu($postObj);//echo$resultStr;//exit;//break;$content=trim($postObj->Content);//取出消息內(nèi)容//依照發(fā)送內(nèi)容回復(fù)對應(yīng)內(nèi)容switch($content){ case'0'://假如發(fā)送是數(shù)字0則回復(fù)以下內(nèi)容 $this->txt($fu,$tu,'你發(fā)送了數(shù)字0,所以你就看到了這么多。'); break; case'1'://假如發(fā)送是數(shù)字1則回復(fù)以下內(nèi)容 $this->txt($fu,$tu,'你發(fā)送了數(shù)字1,所以你就看到了這么多。'); break; case'2'://假如發(fā)送是數(shù)字2則回復(fù)以下內(nèi)容 $msg['title'] = '靈巧狗英文啟蒙教育'; $msg['intro'] = '清華出版社親情推薦'; $msg['url'] = '';//音頻文件絕對完整url $msg['hqurl'] = '';//音頻文件高清絕對完整urlwifi下優(yōu)先播放此url. $this->audio($fu,$tu,$msg);//回復(fù)一個可播放音頻消息 break; default://假如是其余內(nèi)容則回復(fù) //$this->txt($fu,$tu,'你發(fā)送內(nèi)容是。'.$content); $resultStr=$this->inputgetMusicContent($postObj); echo$resultStr; break;}}}}privatefunctioncheckSignature(){$signature=$_GET["signature"];$timestamp=$_GET["timestamp"];$nonce=$_GET["nonce"];$token=TOKEN;$tmpArr=array($token,$timestamp,$nonce);sort($tmpArr);$tmpStr=implode($tmpArr);$tmpStr=sha1($tmpStr);if($tmpStr==$signature){returntrue;}else{returnfalse;}}publicfunctiongetMusicContent($postObj){$ret="<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[music]]></MsgType><Music><Title><![CDATA[%s]]></Title><Description><![CDATA[]]></Description><MusicUrl><![CDATA[%s]]></MusicUrl><HQMusicUrl><![CDATA[%s]]></HQMusicUrl><FuncFlag><![CDATA[1]]></FuncFlag></Music></xml>";$recognition=$postObj->Recognition;$keywordc=urlencode($recognition);$musicapi="{$keywordc}\$\$";$simstr=file_get_contents($musicapi);$musicobj=simplexml_load_string($simstr);$i=0;$musicurl;foreach($musicobj->urlas$itemobj){$encode=$itemobj->encode;//處理decode,發(fā)覺微信在處理音樂時候有個問題,所以這里刪除一個參數(shù)$decode=$itemobj->decode;$removedecode=end(explode('&',$decode));if($removedecode<>""){$removedecode="&".$removedecode;}$decode=str_replace($removedecode,"",$decode);$musicurl=str_replace(end(explode('/',$encode)),$decode,$encode);break;}$resultStr=sprintf($ret,$postObj->FromUserName,$postObj->ToUserName,time(),$recognition,$musicurl,$musicurl);return$resultStr;}publicfunctioninputgetMusicContent($postObj){ $ret="<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[music]]></MsgType><Music><Title><![CDATA[%s]]></Title><Description><![CDATA[]]></Description><MusicUrl><![CDATA[%s]]></MusicUrl><HQMusicUrl><![CDATA[%s]]></HQMusicUrl><FuncFlag><![CDATA[1]]></FuncFlag></Music></xml>"; $recognition=$postObj->Content; $keywordc=$postObj->Content; $musicapi="{$keywordc}\$\$"; $simstr=file_get_contents($musicapi); $musicobj=simplexml_load_string($simstr); $i=0; $musicurl; foreach($musicobj->urlas$itemobj) { $encode=$itemobj->encode; //處理decode,發(fā)覺微信在處理音樂時候有個問題,所以這里刪除一個參數(shù) $decode=$itemobj->decode; $removedecode=end(explode('&',$decode)); if($removedecode<>"") { $removedecode="&".$removedecode; } $decode=str_replace($removedecode,"",$decode); $musicurl=str_replace(end(explode('/',$encode)),$decode,$encode); break; } $resultStr=sprintf($ret,$postObj->FromUserName,$postObj->ToUserName,time(),$recognition,$musicurl,$musicurl); return$resultStr;}/*publicfunctiongetMenu($postObj){ $fromUsername=$postObj->FromUserName; $toUsername=$postObj->ToUserName; $keyword=trim($postObj->Content); $time=time(); $textTpl="<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[%s]]></MsgType><Content><![CDATA[%s]]></Content><FuncFlag>0</FuncFlag></xml>"; if(!empty($keyword)) { $contentStr="語音輸入進(jìn)行點(diǎn)歌游戲\n\r輸入課程數(shù)字號聽英文錄音"; $msgType="text"; //$size=readfile('./GrandfathersClock.mp3'); //$contentStr=$size; $resultStr=sprintf($textTpl,$fromUsername,$toUsername,$time,$msgType,$contentStr); echo$resultStr; }else{ echo"請輸入歌曲名稱,或語音輸入歌曲名稱\n"; } }*//***獲取access_token*/

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論