wstlwl 发表于 2017-4-3 14:47:35

PHP 微信接口封装类

  <?php     
  /**     
    * 微信公众平台接口PHP100封装功能类文件     
    * author PHP100.com  张恩民     
    * date 2013-4-9 PRC:E+8 23:03     
    * linkme QQ925939 chuangen.com     
    */     
        
  define("TOKEN", "chuangenit");     
  $wechatObj = new wechatCallbackapiTest();     
  $wechatObj->weixin_run(); //执行接收器方法     
        
  class wechatCallbackapiTest     
  {     
     private $fromUsername;     
     private $toUsername;     
     private $times;     
     private $keyword;     
          
          
     public function weixin_run(){     
       $this->responseMsg();     
  $arr[]=array("创恩很靠谱,PHP100也不错!","aa","http://www.chuangen.com/pic/hj/s_4.png","http://www.chuangen.com");     
  $arr[]=array("创恩很靠谱,PHP100也不错!","aa","http://www.chuangen.com/pic/hj/s_4.png","http://www.chuangen.com");     
  $arr[]=array("创恩很靠谱,PHP100也不错!","aa","http://www.chuangen.com/pic/hj/s_4.png","http://www.chuangen.com");     
  $this->fun_xml("news",$arr,array(2,0));      
     }     
          
          
    function t($n){     
     include("t_api.php");     
     $c_name=$t_api[$n];     
     $json=file_get_contents("http://m.weather.com.cn/data/101110310.html");     
     return json_decode($json);     
    }     
          
          
          
  public function valid()     
      {     
          $echoStr = $_GET["echostr"];     
        
          //valid signature , option     
          if($this->checkSignature()){     
                 echo $echoStr;     
                 exit;     
          }     
      }     
        
      public function responseMsg()     
      {     
  $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];     
  if (!empty($postStr)){     
                       $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);     
                  $this->fromUsername = $postObj->FromUserName;     
                  $this->toUsername = $postObj->ToUserName;     
                  $this->keyword = trim($postObj->Content);     
  $this->times = time();     
          }else {     
                 echo "this a file for weixin API!";     
                 exit;     
          }     
      }     
        
  //微信封装类,     
  //type: text 文本类型, news 图文类型     
  //text,array(内容),array(ID)     
  //news,array(array(标题,介绍,图片,超链接),...小于10条),array(条数,ID)     
        
  private function fun_xml($type,$value_arr,$o_arr=array(0)){     
   //=================xml header============     
   $con="<xml>     
  <ToUserName><!]></ToUserName>     
  <FromUserName><!]></FromUserName>     
  <CreateTime>{$this->times}</CreateTime>     
  <MsgType><!]></MsgType>";     
        
        //=================type content============     
   switch($type){     
        
     case "text" :      
   $con.="<Content><!}]]></Content>     
  <FuncFlag>{$o_arr}</FuncFlag>";       
  break;     
        
  case "news" :      
   $con.="<ArticleCount>{$o_arr}</ArticleCount>     
  <Articles>";     
  foreach($value_arr as $id=>$v){     
  if($id>=$o_arr) break; else null; //判断数组数不超过设置数     
           $con.="<item>     
  <Title><!}]]></Title>      
  <Description><!}]]></Description>     
  <PicUrl><!}]]></PicUrl>     
  <Url><!}]]></Url>     
  </item>";     
  }     
  $con.="</Articles>     
  <FuncFlag>{$o_arr}</FuncFlag>";       
  break;     
        
   } //end switch     
        
  //=================end return============     
   echo $con."</xml>";     
  }     
        
        
        
  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;     
  }     
  }     
  }     
        
  ?>     
来源:IT软件技术在线问答网,地址:http://ask.itruanjian.com/?note/view/8030.html 保留原文链接,是开源分享的开始.
页: [1]
查看完整版本: PHP 微信接口封装类