本文實例講述了php版微信開發之接收消息,自動判斷及回復相應消息的方法。分享給大家供大家參考,具體如下:
微信的api現在己經強大到可以隨意調用我們網站或指定數據庫的內容進行自能回復現推送消息了,這里就來給大家介紹一個微信開發的筆記.
發送1,2,3,7測試相應的消息,菜單模式需要升級為服務號,或者訂閱人數超過500以上.
1. 用戶發送的消息都是通過你提交的開發者URL來接收,這里訂閱號就可以搞定,發送過來的都是xml格式數據,需要解析,代碼如下:
$data = $GLOBALS["HTTP_RAW_POST_DATA"];if (!emptyempty($data)) {//接收消息并處理$xml = (array)simplexml_load_string($data, ‘SimpleXMLElement', LIBXML_NOCDATA);return $xml;}
回復也是需要返回XML的數據格式.
2. 主動發送給用戶消息,查詢用戶信息,創建自定義菜單(現在訂閱號也可以用),以及一些高級功能,都是需要獲取appid 和 AppSecret 以便得到 access_token.
access_token 這東西,除接收信息,每個接口都要用到,access_token 的時間為 7200毫秒過期需要重新獲取.
更多請參考:.
目前我已經實現了,接收消息,自動判斷回復相應消息新聞,創建自定義菜單,點擊自定義菜單后執行相應操作,用戶列表之類,感覺目前開發模式和訂閱模式沒什么區別.
這里有一個測試回復的測試例子,代碼如下:
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 = "%s0"; 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 = '沒文化真可怕,居然不會打字!';//$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=>'有事找我請大叫!',3=>'我正在裸奔,已奔出服務區',4=>'我現在位置:WC; 姿勢:下蹲; 臉部:抽搐; 狀態:用力中。。。。',5=>'去吃飯了,如果你是帥哥,請一會聯系我,如果你是美女...............就算你是美女,我也要先吃飽肚子啊',6=>'洗澡中~謝絕旁觀!!^_^0',7=>'有熊出?],我去誘捕,盡快回來。',8=>'你好,我是500,請問你是250嗎?',9=>'喂!亂碼啊,再發',10=>'不是我不理你,只是時間難以抗拒!',11=>'你剛才說什么,我沒看清楚,請再說一遍!',12=>'發多幾次啊~~~發多幾次我就回你。',13=>'此人已死,有事燒紙!',14=>'乖,不急哦…',15=>'你好.我去殺幾個人,很快回來.',16=>'本人已成仙?有事請發煙?佛說有煙沒火成不了正果?有火沒煙成不了仙。',17=>'你要和我說話?你真的要和我說話?你確定自己想說嗎?你一定非說不可嗎?那你說吧,這是自動回復,反正我看不見其實我在~就是不回你拿我怎么著?'); return $array[$mt]; } if( $key=='靠' || $key=='啊' || $key=='阿' ) { $mt = mt_rand(1,19); $array = array(1=>'人之初?性本善?玩心眼?都滾蛋。',2=>'今后的路?我希望你能自己好好走下去?而我 坐車',3=>'笑話是什么?就是我現在對你說的話。',4=>'人人都說我丑?其實我只是美得不明顯。',5=>'A;豬是怎么死的?B;你還沒死我怎么知道',6=>'奧巴馬已經干掉和他同姓的兩個人?奧特曼你要小心了。 ',7=>'有的人活著?他已經死了?有的人活著?他早該死了。',8=>'"妹妹你坐船頭?哥哥我岸上走"據說很傻逼的人看到都是唱出來的。',9=>'我這輩子只有兩件事不會?這也不會?那也不會。',10=>'過了這個村?沒了這個店?那是因為有分店。',11=>'我以為你只是個球?沒想到?你真是個球。',12=>'你終于來啦,我找你N年了,去火星干什么了?我現在去冥王星,回頭跟你說個事,別走開啊',13=>'你有權保持沉默,你所說的一切都將被作為存盤記錄。你可以請代理服務器,如果請不起網絡會為你分配一個。',14=>'本人正在被國際刑警組織全球范圍內通緝,如果您有此人的消息,請撥打當地報警電話',15=>'洗澡中~謝絕旁觀!!^_^0',16=>'嘀,這里是移動秘書, 美眉請再發一次,我就與你聯系;姐姐請再發兩次,我就與你聯系;哥哥、弟弟就不要再發了,因為發了也不和你聯系!',17=>'其實我在~就是不回你拿我怎么著?',18=>'你剛才說什么,我沒看清楚,請再說一遍!',19=>'乖,不急。。。'); return $array[$mt]; } if( $key =='請問' ) { $mt = mt_rand(1,5); $array = array(1=>'"我臉油嗎"反光??反正我不清楚',2=>'走,我請你吃飯',3=>'此人已死,有事燒紙!',4=>'喂!什么啊!亂碼啊,再發',5=>'笑話是什么??就是我現在對你說的話。'); return $array[$mt]; } return ""; } function keylist() { $array = array(1=>'嗨',2=>'你好',3=>'靠',4=>'在嗎',5=>'請問'); }}?>
希望本文所述對大家PHP程序設計有所幫助。
泰州潤揚網絡策劃服務有限公司專注泰州網絡公司,泰州網站建設,
從域名選擇-工信部備案-首頁風格確認-內頁欄目設置-內頁框架設計-后臺搭建管理-新聞定期發布-定期優化設置-效果統計-月度反饋。
泰州網站建設,泰州網絡推廣,交給我們:放心、省心。
我們不做第一,只做唯一,以真誠服務、實在做事的態度為您做好交給我們的每一項工作。
泰州網絡公司、泰州網站建設、泰州網絡策劃、泰州APP開發、泰州網絡推廣、泰州微信營銷、泰州百度信息流推廣,泰州軟件開發,泰州百度愛采購
本文由:潤揚網絡策劃編輯部小編 整理發布、翻版必究 ,如涉及各項侵權請及時與我們聯系修改:13961039617 合作熱線:19825583557 我們期待與您合作