<?php class UpFile_ApiClient { private static $instance=null; private $data=null; private $url=''; private $referer='http://localhost/index.php?a=apis.Task_List'; private $auth=''; private $authcode=''; private $header=''; public function __construct() { } private function setheader() { $header=1; if($header) { $this->header=array( 'CLIENT_TOKEN'=>$this->auth, 'CLIENT_CODE'=>$this->authcode ); } else { return false; } return true; } private function setauth($auth) { if($auth) { $this->auth=$auth; $this->authcode=md5(substr(md5($auth),5,15).md5($auth)); } else { return false; } return true; } //設置CURL參數,並獲取數據 private function Api_Curl() { $time_out=300; $timeout=100; $url=''; $referer=''; $curl=''; if(!$this->url && !$this->data) { return false; } try { if(!$curl=curl_init()) { throw new Exception('初始化失敗!'); } else { } } catch(Exception $e) { $e->getMessage(); } curl_setopt($curl,CURLOPT_URL,$this->url);//要轉送數據到的網址(調用方) curl_setopt($curl,CURLOPT_REFERER,$this->referer);//發送數據的網址(被調用方) //curl_setopt($curl,CURLOPT_HTTPHEADER,$this->header); //curl_setopt($curl,CURLOPT_HEADER,'content-type:aplication/json;charset=utf-8'); curl_setopt($curl,CURLOPT_POST,true);//推送數據的方式 curl_setopt($curl,CURLOPT_POSTFIELDS,$this->data);//推送的數據 curl_setopt($curl,CURLOPT_RETURNTRANSFER,1); curl_setopt($curl,CURLOPT_CONNECTTIMEOUT,$time_out);//連接服務器沒有反應的等待時間 curl_setopt($curl,CURLOPT_TIMEOUT,$timeout);//接收數據時等待的時間 $result_data=curl_exec($curl);//執行推送數據 $error=curl_errno($curl); curl_close($curl); return $result_data; } //對外接口 public function DoRequest($url,$auth,$data=null) { $sign_str=$this->set_sign($data); $sign=$this->get_sign($sign_str,$auth); $data['sign']=$sign; if($this->setauth($auth)) { if($this->setheader()) { $this->url=$url; if(!empty($data)) { if(is_array($data)) { foreach($data as $key => $value) { $datas.=$key.'='.urlencode($value).'&';//urlencode() } $datas=rtrim($datas,'&'); $this->data=$datas; unset($datas); } } $result_data=$this->Api_Curl(); return $result_data; } } } //類的析構函數 public function __destruct() { } //循環輸出多維數組的所有元素 private function display_multi_array($array) { if(empty($array)) { return false; } elseif(is_array($array)) { $count=count($array); if($count>1) { foreach($array as $key => $value ) { if(!is_array($value)) { echo '<h3><span style="color:green;margin-right:15px;">'.$key.':</span>'.$value.'</h3>'; } else { $this->display_multi_array($value); } } } } else { echo '<h3>'.$array.'</h3>'; } } private function set_sign($arr) { $sign=''; if(!is_array($arr)) { return null; } ksort($arr,SORT_STRING); foreach($arr as $key=>$value) { if($value!=null) { $sign.=$key.(is_array($value)?$this->get_sign($value):$value); } else { } } return $sign; } private function get_sign($sign,$token) { return strtoupper(md5(strtoupper(md5($sign)).$token)); } } $auth=''; $json_arr=array('data'=>'','count'=>''); $json_arr=json_encode($json_arr); $time=time(); $data=array('flag'=>'coprsys','method'=>'copr.add','type'=>'json',' timestamp'=>$time,'charset'=>'utf- 8','ver'=>1,'copr_data'=>$json_arr); //$url=''; $url=''; $api=new UpFile_ApiClient(); $result=$api->DoRequest($url,$auth,$data); ?>
數據轉送接口
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.