中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用php怎么在微信公眾平臺開發SDK擴展

發布時間:2021-02-07 20:28:47 來源:億速云 閱讀:157 作者:Leah 欄目:開發技術

本篇文章為大家展示了使用php怎么在微信公眾平臺開發SDK擴展,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

 代碼如下:

define("TOKEN", "xingans");
$wechatObj = new wechatCallbackapiTest();
$wechatObj->responseMsg();
class wechatCallbackapiTest
{
   //簽名驗證公共接口
   public function valid()
   {
       $echoStr = $_GET["echostr"];
       if($this->checkSignature()){
           echo $echoStr;
           exit;
       }
   }
 
   //主入口處理函數
   public function responseMsg()
   {
       $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
       if (!emptyempty($postStr)){
           $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
           $msgType=trim($postObj->MsgType);
          
           switch($msgType){
               case 'text':
                   $resultStr=$this->handleText($postObj);
                   break;
               case 'event':
                   $resultStr=$this->handleEvent($postObj);
                   break;
               default:
                   $resultStr=$this->handleDefault($postObj);
                   break;
           }
           echo $resultStr;
          
       }else {
           echo "Error";
           exit;
       }
   }
  
   //處理文本消息
      private function handleText($obj){
          $keyword=trim($obj->Content);
          if(preg_match('/天氣/',$keyword)){
              $contentStr=$this->handleWeather($obj);
          }elseif(preg_match('/翻譯/',$keyword)){
              $contentStr=$this->handleTranslation($obj);
          }else{
              $contentStr=$this->handleChat($obj);
          }
          return $this->handleStr($obj,$contentStr);
      }
     
      //處理天氣
      private function handleWeather($obj){
          $keyword=mb_substr($obj->Content,-2,2,'utf-8');
          $zone=mb_substr($obj->Content,0,-2,'utf-8');
          if($keyword=='天氣' && !emptyempty($zone)){
              $zoneArr=json_decode(file_get_contents('http://api.k780.com:88/?app=weather.city&format=json'),true);
              $zoneArr=$zoneArr['result'];
              $cityId='';
              foreach($zoneArr as $value){
                  if($zone==$value['citynm']){
                      $cityId=$value['weaid'];
                      break;
                  }
              }
             
              if(!emptyempty($cityId)){
                  $data=file_get_contents("http://api.k780.com:88/?app=weather.today&weaid=$cityId&appkey=10638&sign=3736578f099375665f9f141a6326b757&format=json");
                  $data=json_decode($data);
                  $contentStr="今天是:".$data->result->days.",".$data->result-> week.",".$data->result->citynm."天氣:".$data->result->weather."n溫度:".$data->result->temperature.",
                  ".$data->result->wind_direction.",".$data->result->wind_power.", 最低溫度:".$data->result->temp_low.",最高溫度:".$data->result->temp_high;
              }else{
                  $contentStr='找不到輸入的城市!';
              }   
          }else{
              $contentStr='輸入的查詢格式不正確!';
          }
          return $contentStr;
      }
     
      //處理翻譯
      private function handleTranslation($obj){
       $keyword=mb_substr($obj->Content,0,2,'utf-8');
       $words=mb_substr($obj->Content,2,220,'utf-8');
       if($keyword=='翻譯' && !emptyempty($words)){
           $data=file_get_contents('http://fanyi.youdao.com/openapi.do?keyfrom=zfsblog&key=364295447&type=data&doctype=json&version=1.1&q='.urlencode($words));       
           $data=json_decode($data,true);
          
           switch($data['errorCode']){
               case '0':
                   $contentStr=$data['translation'][0];
                   break;
               case '20':
                   $contentStr='要翻譯的文本過長';
                   break;
               case '30':
                   $contentStr='無法進行有效的翻譯';
                   break;
               case '40':
                   $contentStr='不支持的語言類型';
                   break;
               case '50':
                   $contentStr='無效的key';
                   break;
               default:
                   $contentStr='Error';
                   break;
           }
       }else{
           $contentStr='輸入的翻譯格式不正確!';
       }
       return $contentStr;
      }
     
      //處理聊天信息
      private function handleChat($obj){
       $keywords=$obj->Content;
       $curlPost=array("chat"=>$keywords);
       $ch = curl_init();//初始化curl
       curl_setopt($ch, CURLOPT_URL,'http://www.xiaojo.com/bot/chata.php');//抓取指定網頁
       curl_setopt($ch, CURLOPT_HEADER, 0);//設置header
       curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求結果為字符串且輸出到屏幕上
       curl_setopt($ch, CURLOPT_POST, 1);//post提交方式
       curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
       $data = curl_exec($ch);//運行curl
       curl_close($ch);
      
       if(!emptyempty($data)){
           $contentStr=$data;
       }else{
           $ran=rand(1,5);
          
           switch($ran){
               case 1:
                   $contentStr= "小九今天累了,明天再陪你聊天吧";
                   break;
               case 2:
                   $contentStr= "小九睡覺嘍~~";
                   break;
               case 3:
                   $contentStr= "呼呼~~呼呼~~";
                   break;
               case 4:
                   $contentStr= "你話好多啊,不跟你聊了";
                   break;
               case 5:
                   $contentStr= "你話好多啊,不跟你聊了";
                   break;
           }
       }
       return $contentStr;
      }
     
      //創建自定義菜單
      public function createMenu($data,$token){
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=".$token);
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
        curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $result = curl_exec($ch);     
        curl_close($ch);
        return $result;
      }
     
      //查詢自定義菜單
   function getMenu($token){
       $url="https://api.weixin.qq.com/cgi-bin/menu/get?access_token=$token";
       $ch = curl_init($url);
       curl_setopt($ch, CURLOPT_RETURNTRANSFER,true) ; //獲取數據返回
       curl_setopt($ch, CURLOPT_BINARYTRANSFER,true) ; //在啟用 CURLOPT_RETURNTRANSFER 時候將獲取數據返回   
       curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false);
       curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,false);
       return $output = curl_exec($ch);       
      }
     
      //刪除自定義菜單
      public function deleteMenu($token){
       $url="https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=".$token;
       $ch = curl_init();
       curl_setopt($ch, CURLOPT_URL, $url);
       curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
       curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
       curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
       $result = curl_exec($ch);
       curl_close($ch);
       return $result;
      }

      //處理事件消息
      private function handleEvent($obj){
          $content='';
          switch($obj->Event){
              case 'subscribe':
                  $content.="welcome-歡迎關注該公眾號號!";
                  break;
              case 'unsubscribe':
                  $content.="感謝您一直以來對該公眾號的關注,再見!";
                  break;
              default:
                  $content.="";
                  break;
          }
          return $this->handleStr($obj,$content);
      }
     
      //處理回復消息字符串
      private function handleStr($obj,$content='',$flag=0){
       $textTpl = "";
       return sprintf($textTpl, $obj->FromUserName, $obj->ToUserName, time(), $content,$flag);
      }
  
   //簽名驗證函數
   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;
       }
   }
}

上述內容就是使用php怎么在微信公眾平臺開發SDK擴展,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

江达县| 湘乡市| 宁明县| 南康市| 额尔古纳市| 昂仁县| 潮安县| 肥城市| 互助| 石屏县| 措美县| 平潭县| 平阳县| 密山市| 金昌市| 湖北省| 涞水县| 马龙县| 溧水县| 新蔡县| 葵青区| 岳西县| 株洲市| 洞口县| 祁阳县| 揭阳市| 海丰县| 娄底市| 湖北省| 大悟县| 江都市| 太仆寺旗| 辽中县| 建瓯市| 兴国县| 蓬莱市| 江源县| 宁蒗| 龙山县| 稷山县| 江北区|