這篇文章將為大家詳細(xì)講解有關(guān)如何實(shí)現(xiàn)php開發(fā)微信接收消息自動(dòng)判斷及回復(fù)相應(yīng)消息,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
創(chuàng)新互聯(lián)于2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元惠安做網(wǎng)站,已為上家服務(wù),為惠安各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18980820575
微信的api現(xiàn)在己經(jīng)強(qiáng)大到可以隨意調(diào)用我們網(wǎng)站或指定數(shù)據(jù)庫的內(nèi)容進(jìn)行自能回復(fù)現(xiàn)推送消息了,這里就來給大家介紹一個(gè)微信開發(fā)的筆記.
發(fā)送1,2,3,7測(cè)試相應(yīng)的消息,菜單模式需要升級(jí)為服務(wù)號(hào),或者訂閱人數(shù)超過500以上.
1. 用戶發(fā)送的消息都是通過你提交的開發(fā)者URL來接收,這里訂閱號(hào)就可以搞定,發(fā)送過來的都是xml格式數(shù)據(jù),需要解析,代碼如下:
$data = $GLOBALS["HTTP_RAW_POST_DATA"]; if (!emptyempty($data)) {//接收消息并處理 $xml = (array)simplexml_load_string($data, ‘SimpleXMLElement', LIBXML_NOCDATA); return $xml; }
回復(fù)也是需要返回XML的數(shù)據(jù)格式.
2. 主動(dòng)發(fā)送給用戶消息,查詢用戶信息,創(chuàng)建自定義菜單(現(xiàn)在訂閱號(hào)也可以用),以及一些高級(jí)功能,都是需要獲取appid 和 AppSecret 以便得到 access_token.
access_token 這東西,除接收信息,每個(gè)接口都要用到,access_token 的時(shí)間為 7200毫秒過期需要重新獲取.
目前我已經(jīng)實(shí)現(xiàn)了,接收消息,自動(dòng)判斷回復(fù)相應(yīng)消息新聞,創(chuàng)建自定義菜單,點(diǎn)擊自定義菜單后執(zhí)行相應(yīng)操作,用戶列表之類,感覺目前開發(fā)模式和訂閱模式?jīng)]什么區(qū)別.
這里有一個(gè)測(cè)試回復(fù)的測(cè)試?yán)?代碼如下:
valid(); class wechatCallbackapiTest { public function valid() { $echoStr = $_GET["echostr"]; //valid signature , option if($this->checkSignature()){ $this->responseMsg(); exit; } } public function responseMsg() { //get post data, May be due to the different environments $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; //extract post data if (!emptyempty($postStr)){ $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA); $fromUsername = $postObj->FromUserName; $toUsername = $postObj->ToUserName; $keyword = trim($postObj->Content); $time = time(); $msgType = "text"; $textTpl = ""; if(!emptyempty( $keyword )) { $contentStr = $this->keyrep($keyword); if( emptyempty($contentStr) ) { $contentStr ="你是故意的吧,沒文化真可怕";//你是故意的吧,沒文化真可怕; } //$contentStr = @iconv('UTF-8','gb2312',$keyword); $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr); echo $resultStr; }else{ $contentStr = '沒文化真可怕,居然不會(huì)打字!';//$this->keyrep($keyword); //$contentStr = @iconv('UTF-8','gb2312',$keyword); $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr); echo $resultStr; } }else { echo ""; exit; } } private function checkSignature() { $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 ){ return true; }else{ return false; } } function keyrep($key) { //return $key; if( $key=='嗨' || $key=='在嗎' || $key=='你好' ){ $mt = mt_rand(1,17); $array = array(1=>'自殺中,稍后再說...',2=>'有事找我請(qǐng)大叫!',3=>'我正在裸奔,已奔出服務(wù)區(qū)',4=>'我現(xiàn)在位置:WC; 姿勢(shì):下蹲; 臉部:抽搐; 狀態(tài):用力中。。。。',5=>'去吃飯了,如果你是帥哥,請(qǐng)一會(huì)聯(lián)系我,如果你是美女...............就算你是美女,我也要先吃飽肚子啊',6=>' 洗澡中~謝絕旁觀??!^_^0',7=>'有熊出?],我去誘捕,盡快回來。',8=>'你好,我是500,請(qǐng)問你是250嗎?',9=>'喂!亂碼啊,再發(fā)',10=>' 不是我不理你,只是時(shí)間難以抗拒!',11=>'你剛才說什么,我沒看清楚,請(qǐng)?jiān)僬f一遍!',12=>'發(fā)多幾次啊~~~發(fā)多幾次我就回你。',13=>'此人已死,有事燒紙!',14=>'乖,不急哦…',15=>'你好.我去殺幾個(gè)人,很快回來.',16=>'本人已成仙?有事請(qǐng)發(fā)煙?佛說有煙沒火成不了正果?有火沒煙成不了仙。',17=>' 你要和我說話?你真的要和我說話?你確定自己想說嗎?你一定非說不可嗎?那你說吧,這是自動(dòng)回復(fù),反正我看不見其實(shí)我在~就是不回你拿我怎么著?' ); return $array[$mt]; } if( $key=='靠' || $key=='啊' || $key=='阿' ) { $mt = mt_rand(1,19); $array = array(1=>'人之初?性本善?玩心眼?都滾蛋。',2=>'今后的路?我希望你能自己好好走下去?而我 坐車',3=>'笑話是什么?就是我現(xiàn)在對(duì)你說的話。',4=>'人人都說我丑?其實(shí)我只是美得不明顯。',5=>'A;豬是怎么死的?B;你還沒死我怎么知道',6=>' 奧巴馬已經(jīng)干掉和他同姓的兩個(gè)人?奧特曼你要小心了。 ',7=>'有的人活著?他已經(jīng)死了?有的人活著?他早該死了。',8=>'"妹妹你坐船頭?哥哥我岸上走"據(jù)說很傻逼的人看到都是唱出來的。',9=>'我這輩子只有兩件事不會(huì)?這也不會(huì)?那也不會(huì)。',10=>' 過了這個(gè)村?沒了這個(gè)店?那是因?yàn)橛蟹值辍?#39;,11=>'我以為你只是個(gè)球?沒想到?你真是個(gè)球。',12=>'你終于來啦,我找你N年了,去火星干什么了?我現(xiàn)在去冥王星,回頭跟你說個(gè)事,別走開啊',13=>'你有權(quán)保持沉默,你所說的一切都將被作為存盤記錄。你可以請(qǐng)代理服務(wù)器,如果請(qǐng)不起網(wǎng)絡(luò)會(huì)為你分配一個(gè)。',14=>'本人正在被國(guó)際刑警組織全球范圍內(nèi)通緝,如果您有此人的消息,請(qǐng)撥打當(dāng)?shù)貓?bào)警電話',15=>'洗澡中~謝絕旁觀??!^_^0',16=>'嘀,這里是移動(dòng)秘書, 美眉請(qǐng)?jiān)侔l(fā)一次,我就與你聯(lián)系;姐姐請(qǐng)?jiān)侔l(fā)兩次,我就與你聯(lián)系;哥哥、弟弟就不要再發(fā)了,因?yàn)榘l(fā)了也不和你聯(lián)系!',17=>' 其實(shí)我在~就是不回你拿我怎么著?',18=>'你剛才說什么,我沒看清楚,請(qǐng)?jiān)僬f一遍!',19=>'乖,不急。。。'); return $array[$mt]; } if( $key =='請(qǐng)問' ) { $mt = mt_rand(1,5); $array = array(1=>'"我臉油嗎"反光??反正我不清楚',2=>'走,我請(qǐng)你吃飯',3=>'此人已死,有事燒紙!',4=>'喂!什么??!亂碼啊,再發(fā)',5=>'笑話是什么??就是我現(xiàn)在對(duì)你說的話。'); return $array[$mt]; } return ""; } function keylist() { $array = array(1=>'嗨',2=>'你好',3=>'靠',4=>'在嗎',5=>'請(qǐng)問'); } } ?> %s 0
關(guān)于“如何實(shí)現(xiàn)php開發(fā)微信接收消息自動(dòng)判斷及回復(fù)相應(yīng)消息”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。