国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

微信開發筆記之接收消息,自動判斷回復相應消息

2024-05-04 21:48:24
字體:
來源:轉載
供稿:網友

微信的api現在己經強大到可以隨意調用我們網站或指定數據庫的內容進行自能回復現推送消息了,現在我來給大家介紹一個我微信開的筆記.

山貓的博客,發送1,2,3,7測試相應的消息,菜單模式需要升級為服務號,或者訂閱人數超過500以上.

1.用戶發送的消息都是通過你提交的開發者URL來接收,這里訂閱號就可以搞定,發送過來的都是xml格式數據,需要解析,代碼如下:

  1. $data = $GLOBALS["HTTP_RAW_POST_DATA"]; 
  2. if (!emptyempty($data)) {//接收消息并處理 
  3. $xml = (array)simplexml_load_string($data, ‘SimpleXMLElement’, LIBXML_NOCDATA); 
  4. return $xml

回復也是需要返回XML的數據格式.

2.主動發送給用戶消息,查詢用戶信息,創建自定義菜單(現在訂閱號也可以用),以及一些高級功能,都是需要獲取appid 和 AppSecret 以便得到 access_token.

access_token 這東西,除接收信息,每個接口都要用到,access_token 的時間為 7200毫秒過期需要重新獲取.

更多請參考:http://mp.weixin.qq.com/wiki/index.php?title=%E9%A6%96%E9%A1%B5.

目前我已經實現了,接收消息,自動判斷回復相應消息新聞,創建自定義菜單,點擊自定義菜單后執行相應操作,用戶列表之類,感覺目前開發模式和訂閱模式沒什么區別.

這里有一個測試回復的測試例子,代碼如下:

  1. <?php 
  2. /** 
  3.   * wechat php test 
  4.   */ 
  5.  
  6. //define your token 
  7. define("TOKEN""你的申請上的token"); 
  8. $wechatObj = new wechatCallbackapiTest(); 
  9. $wechatObj->valid(); 
  10.  
  11. class wechatCallbackapiTest 
  12.  public function valid() 
  13.     { 
  14.         $echoStr = $_GET["echostr"]; 
  15.  
  16.         //valid signature , option 
  17.         if($this->checkSignature()){ 
  18.          $this->responseMsg(); 
  19.          exit
  20.         } 
  21.     } 
  22.  
  23.     public function responseMsg() 
  24.     { 
  25.   //get post data, May be due to the different environments 
  26.   $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; 
  27.  
  28.        //extract post data 
  29.   if (!emptyempty($postStr)){ 
  30.                  
  31.                $postObj = simplexml_load_string($postStr'SimpleXMLElement', LIBXML_NOCDATA); 
  32.                 $fromUsername = $postObj->FromUserName; 
  33.                 $toUsername = $postObj->ToUserName; 
  34.                 $keyword = trim($postObj->Content); 
  35.                 $time = time(); 
  36.     $msgType = "text"
  37.                 $textTpl = "<xml> 
  38.        <ToUserName><![CDATA[%s]]></ToUserName> 
  39.        <FromUserName><![CDATA[%s]]></FromUserName> 
  40.        <CreateTime>%s</CreateTime> 
  41.        <MsgType><![CDATA[%s]]></MsgType> 
  42.        <Content><![CDATA[%s]]></Content> 
  43.        <FuncFlag>0</FuncFlag> 
  44.        </xml>";              
  45.     if(!emptyempty$keyword )) 
  46.                 { 
  47.                  
  48.                  $contentStr = $this->keyrep($keyword); 
  49.      if(  emptyempty($contentStr) ) 
  50.      { 
  51.       $contentStr ="你是故意的吧,沒文化真可怕";//你是故意的吧,沒文化真可怕; 
  52.      } 
  53.      //$contentStr = @iconv('UTF-8','gb2312',$keyword); 
  54.                  $resultStr = sprintf($textTpl$fromUsername$toUsername$time$msgType$contentStr); 
  55.                  echo $resultStr
  56.       
  57.                 }else
  58.                  $contentStr = '沒文化真可怕,居然不會打字!';//$this->keyrep($keyword); 
  59.                  //$contentStr = @iconv('UTF-8','gb2312',$keyword); 
  60.      $resultStr = sprintf($textTpl$fromUsername$toUsername$time$msgType$contentStr); 
  61.                  echo $resultStr
  62.                 } 
  63.  
  64.         }else { 
  65.          echo ""
  66.          exit
  67.         } 
  68.     } 
  69.    
  70.  private function checkSignature() 
  71.  { 
  72.         $signature = $_GET["signature"]; 
  73.         $timestamp = $_GET["timestamp"]; 
  74.         $nonce = $_GET["nonce"];  
  75.            
  76.   $token = TOKEN; 
  77.   $tmpArr = array($token$timestamp$nonce); 
  78.   sort($tmpArr); 
  79.   $tmpStr = implode( $tmpArr ); 
  80.   $tmpStr = sha1( $tmpStr ); 
  81.    
  82.   if$tmpStr == $signature ){ 
  83.    return true; 
  84.   }else
  85.    return false; 
  86.   } 
  87.  } 
  88.  
  89.  function keyrep($key
  90.  { 
  91.   //return $key; 
  92.   if$key=='嗨' || $key=='在嗎' || $key=='你好' ){ 
  93.     $mt = mt_rand(1,17); 
  94.     $array = array(1=>'自殺中,稍后再說...',2=>'有事找我請大叫!',3=>'我正在裸奔,已奔出服務區',4=>'我現在位置:WC; 姿勢:下蹲; 臉部:抽搐; 狀態:用力中。。。。',5=>'去吃飯了,如果你是帥哥,請一會聯系我,如果你是美女...............就算你是美女,我也要先吃飽肚子啊',6=>'  
  95. 洗澡中~謝絕旁觀!!^_^0',7=>'有熊出?],我去誘捕,盡快回來。',8=>'你好,我是500,請問你是250嗎?',9=>'喂!亂碼啊,再發',10=>' 
  96. 不是我不理你,只是時間難以抗拒!',11=>'你剛才說什么,我沒看清楚,請再說一遍!',12=>'發多幾次啊~~~發多幾次我就回你。',13=>'此人已死,有事燒紙!',14=>'乖,不急哦…',15=>'你好.我去殺幾個人,很快回來.',16=>'本人已成仙?有事請發煙?佛說有煙沒火成不了正果?有火沒煙成不了仙。',17=>' 
  97. 你要和我說話?你真的要和我說話?你確定自己想說嗎?你一定非說不可嗎?那你說吧,這是自動回復,反正我看不見其實我在~就是不回你拿我怎么著?' 
  98. ); 
  99.    return $array[$mt]; 
  100.    
  101.   } 
  102.    
  103.   if$key=='靠' || $key=='啊' || $key=='阿' ) 
  104.   { 
  105.     $mt = mt_rand(1,19); 
  106.     $array = array(1=>'人之初?性本善?玩心眼?都滾蛋。',2=>'今后的路?我希望你能自己好好走下去?而我  坐車',3=>'笑話是什么?就是我現在對你說的話。',4=>'人人都說我丑?其實我只是美得不明顯。',5=>'A;豬是怎么死的?B;你還沒死我怎么知道',6=>'  
  107. 奧巴馬已經干掉和他同姓的兩個人?奧特曼你要小心了。 ',7=>'有的人活著?他已經死了?有的人活著?他早該死了。',8=>'"妹妹你坐船頭?哥哥我岸上走"據說很傻逼的人看到都是唱出來的。',9=>'我這輩子只有兩件事不會?這也不會?那也不會。',10=>' 
  108. 過了這個村?沒了這個店?那是因為有分店。',11=>'我以為你只是個球?沒想到?你真是個球。',12=>'你終于來啦,我找你N年了,去火星干什么了?我現在去冥王星,回頭跟你說個事,別走開啊',13=>'你有權保持沉默,你所說的一切都將被作為存盤記錄。你可以請代理服務器,如果請不起網絡會為你分配一個。',14=>'本人正在被國際刑警組織全球范圍內通緝,如果您有此人的消息,請撥打當地報警電話',15=>'洗澡中~謝絕旁觀!!^_^0',16=>'嘀,這里是移動秘書, 美眉請再發一次,我就與你聯系;姐姐請再發兩次,我就與你聯系;哥哥、弟弟就不要再發了,因為發了也不和你聯系!',17=>' 
  109. 其實我在~就是不回你拿我怎么著?',18=>'你剛才說什么,我沒看清楚,請再說一遍!',19=>'乖,不急。。。'); 
  110.    return $array[$mt]; 
  111.   } 
  112.    
  113.   if$key =='請問' ) 
  114.   { 
  115.    $mt = mt_rand(1,5); 
  116.    $array = array(1=>'"我臉油嗎"反光??反正我不清楚',2=>'走,我請你吃飯',3=>'此人已死,有事燒紙!',4=>'喂!什么啊!亂碼啊,再發',5=>'笑話是什么??就是我現在對你說的話。'); 
  117.    return $array[$mt]; 
  118.   }//開源代碼Vevb.com 
  119.    
  120.   return ""
  121.    
  122.  } 
  123.  
  124.  function keylist() 
  125.  { 
  126.   $array  = array(1=>'嗨',2=>'你好',3=>'靠',4=>'在嗎',5=>'請問'); 
  127.  } 
  128.  
  129. ?> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 千阳县| 察隅县| 木兰县| 辉南县| 合水县| 寻甸| 栾城县| 龙州县| 四子王旗| 永嘉县| 廉江市| 托里县| 靖远县| 肇庆市| 安丘市| 本溪市| 山阴县| 寿宁县| 林西县| 新源县| 喀喇沁旗| 基隆市| 东阳市| 潜江市| 峨边| 江陵县| 广州市| 南川市| 轮台县| 锡林郭勒盟| 佛冈县| 新乡市| 望谟县| 遂平县| 榕江县| 长泰县| 吉木萨尔县| 吴旗县| 宜兴市| 黎川县| 施甸县|