检测接口加密类

来源:互联网 发布:程序员团队名称大全 编辑:程序博客网 时间:2024/06/01 07:11

namespace Api\Controller;
//API基础控制层
use Think\Controller;
class BaseController extends Controller
{
protected accesstoken;privatestaticsecret = “pxpkmm”;
public static $code = array(
0 => “成功”,

public function __construct(){    parent::__construct();    self::checkEncrypt()? : self::response(-32003);    self::checkIsPost()? :self::response(-32009);}/* * 检测接口加密的access_token是否合法 */public static function checkEncrypt(){    $request_data['access_token'] = isset($_REQUEST['access_token']) && trim($_REQUEST['access_token']) ? trim($_REQUEST['access_token']) : "";    $request_data['time'] = isset($_REQUEST['time']) && trim($_REQUEST['time']) ? intval($_REQUEST['time']) : 0;    if( $request_data['access_token'] != md5(self::$secret.$request_data['time']) ){        $flag = false;    }    if( !$request_data['access_token'] || !$request_data['time']){        $flag = false;    }else{        $flag = ture;    }     return $flag;}/* * 检测接口有限期是否超时 */public static function checkValidTime(){    $request_data['time'] = isset($_REQUEST['time']) && trim($_REQUEST['time']) ? intval($_REQUEST['time']) : 0;    // var_dump($request_data['time'] - time());    $flag = ture;    if( $request_data['time'] - time() > 2 || $request_data['time'] - time() < 0){//每次接口 2 秒有效        $flag = false;    }    return $flag;}public static function check($request_data){    self::checkPara($request_data)? :self::response(-32001);}/** * 验证是否是Post请求 */protected function checkIsPost(){    if (IS_POST) {        return true;    } else {        return false;    }}/** * 计算时间差/两个时间日期相隔的天数,时,分,秒 * $begin_time 为第一个时间戳 * $end_time 为第二个时间戳 */static function timediff($begin_time, $end_time){    if ($begin_time < $end_time) {        $starttime = $begin_time;        $endtime = $end_time;    } else {        $starttime = $end_time;        $endtime = $begin_time;    }    $timediff = $endtime - $starttime;    $days = intval($timediff / 86400);    $remain = $timediff % 86400;    $hours = intval($remain / 3600);    $remain = $remain % 3600;    $mins = intval($remain / 60);    $secs = $remain % 60;    return array(        "day" => $days,        "hour" => $hours,        "min" => $mins,        "sec" => $secs    );}/* * 检测接口参数是否有效 */public static function checkPara($request_data){    $flag = true;    foreach ($request_data as $key => $value) {        if(!isset($value)){            $flag = false;        }    }    //var_dump($request_data);    return $flag;}public static function response($code,$data=null,$message=null){    $json_array["code"] = intval($code);    $json_array["message"] = $message? $message : self::$code[$code];    $json_array["time"] = time();    if($data){        $json_array["data"] = $data;    }    echo json_encode($json_array);    exit;}//获取用户信息public  function getUser($token){    $MemberInfo=M('User')->field('id,nickname,head_img as img,source,money,userno,birthday')->where(array("token"=>$token))->find();    return $MemberInfo?$MemberInfo:array();}//获取上传的任务图片// public function getTaskImg($info){//      $imgarray=json_decode($info['img'],true);//       foreach ($imgarray as $key => $value){//          $upinfo='';//          $base64=$imgarray[$key]['image'];//          $upinfo = uploadImgBase($base64,$floder='TaskApp');//          if($upinfo==-1){//               $this->response(-32022);//             }else if($upinfo==-2){//               $this->response(-1);//             }//           $image.=trim(str_replace('./Uploads/','',$upinfo)).',';//       }//       $taskimg=rtrim($image,",");//       return $taskimg;// }//获取上传的任务图片public function getTaskImg($info){     $imgarray=json_decode($info['img'],true);    // var_dump($imgarray);exit;     $taskimg='';      foreach ($imgarray as $key => $value){         $upinfo='';         $base64=$imgarray[$key]['image'];         $upinfo = uploadImgBase($base64,$floder='TaskApp');         if($upinfo==-1){              $this->response(-32022);            }else if($upinfo==-2){              $this->response(-1);            }          $taskimg.=trim(str_replace('./Uploads/','',$upinfo)).',';      }     $taskimg=rtrim($taskimg,",");      return $taskimg;}

}