_PublicHelper = new PublicHelper(); //如果不是本地环境 if($_SERVER['HTTP_HOST']!="127.0.0.1"){ $this->_LogObj = new LogClient(); } //选择redis库(测试及开发为130,正式为30) $this->redis->select(REDIS_DB_NUMBER); //获取当前时间及当天日期 $this->current_time = time(); $this->current_datetime = date("Y-m-d H:i:s", $this->current_time); $this->current_date = date("Y-m-d", $this->current_time); } /** * curl get */ function __https_request($url){ $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, FALSE); curl_setopt($curl, CURLOPT_SSLVERSION, 1); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $data = curl_exec($curl); if (curl_errno($curl)) { return 'ERROR ' . curl_error($curl); } curl_close($curl); return $data; } /** * curl post */ function __http_post_request($url, $data=null, $is_json=false){ $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); if(!empty($data)){ if($is_json && is_array($data)){ $data = json_encode($data); } curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $data); //发送JSON数据 if($is_json){ curl_setopt($curl, CURLOPT_HEADER, 0); curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json; charset=utf-8', 'Content-Length:'.strlen($data))); } } curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $res = curl_exec($curl); $errorno = curl_errno($curl); if($errorno){ $error = array(); $error = array('errorno'=>false, 'errmsg'=>$errorno, 'msg'=>curl_error($curl), 'info'=>curl_getinfo($curl)); return $error; } curl_close($curl); return $res; } /** * 跳转页面方法封装,针对后台跳转使用 */ function __response_redirect($url=""){ header("Location: $url"); exit; } /** * 获取客户ip */ function __get_client_ip(){ if(!empty($_SERVER["HTTP_CLIENT_IP"])){ $cip = $_SERVER["HTTP_CLIENT_IP"]; } elseif(!empty($_SERVER["HTTP_X_FORWARDED_FOR"])){ $cip = $_SERVER["HTTP_X_FORWARDED_FOR"]; } elseif(!empty($_SERVER["REMOTE_ADDR"])){ $cip = $_SERVER["REMOTE_ADDR"]; } else{ $cip = "UNKNOWN"; } return $cip; } /** * 清除html标签 */ function __delhtml($str){ $str = trim($str); $str = str_replace(array('"', "'"), array("", ""), $str); //开始 $st = -1; //结束 $et = -1; $stmp = array(); $stmp[] = " "; $len = strlen($str); for($i=0; $i<$len; $i++){ $ss = substr($str, $i, 1); //ord("<")==60 if(ord($ss)==60){ $st = $i; } //ord(">")==62 if(ord($ss)==62){ $et = $i; if($st!=-1){ $stmp [] = substr($str, $st, $et-$st+1); } } } $str = str_replace($stmp, "", $str); return $str; } /** * 转换xml为数组 */ function __change_xml_to_array($xmlfile){ $ob = simplexml_load_string($xmlfile, 'SimpleXMLElement', LIBXML_NOCDATA); $json = json_encode($ob); $configData = json_decode($json, true); return $configData; } /** * 校验是否有收到请求数据 */ function __check_request_arr(){ /**/ if($_SERVER['HTTP_HOST']!="127.0.0.1"){ $this->_LogObj->LogWrite(TIFFANY_API_CHECK_LOG, $this->request->getPost()); $this->_LogObj->LogWrite(TIFFANY_API_CHECK_LOG, file_get_contents("php://input")); } /**/ //接收请求数据 $request_json = file_get_contents("php://input"); $request_json = !empty($request_json)?$request_json:$this->request->getPost(); //如果未获取到请求数据 if(empty($request_json)){ //告知用户"系统繁忙,请稍候再试" $rs['errmsg'] = "系统繁忙,请稍候再试"; $rs['errcode'] = -1; $rs['data'] = null; } //如果有获取到请求数据 else{ //准备判断请求数据整体是否为空 $request_arr = json_decode($request_json, true); //如果请求数据整体为空 if(empty($request_arr)){ //告知用户"系统繁忙,请稍候再试" $rs['errmsg'] = "系统繁忙,请稍候再试"; $rs['errcode'] = -1; $rs['data'] = null; } //如果请求数据整体不为空 else{ //告知用户"ok" $rs['errmsg'] = "ok"; $rs['errcode'] = 0; $rs['data'] = array(); $rs['data']['request_arr'] = $request_arr; } } //返回结果 return $rs; } /** * 校验基本参数是否都不为空 */ function __check_params_arr($request_arr=array(), $params_arr=array()){ //准备校验基本参数 $rs['errmsg'] = ""; //循环需判断的参数字段 foreach($params_arr as $param_name){ //如果未获取到appid if(empty($request_arr[$param_name])){ //告知用户$param_name." is empty;" $rs['errmsg'].= $param_name." is empty;"; } } //如果以上判断未通过 if(!empty($rs['errmsg'])){ //告知用户"参数错误 error detail:".$rs['errmsg'] $rs['errmsg'] = "参数错误 error detail:".$rs['errmsg']; $rs['errcode'] = 61451; $rs['data'] = null; } //如果以上判断都通过 else{ //告知用户"ok" $rs['errmsg'] = "ok"; $rs['errcode'] = 0; $rs['data'] = array(); } //返回结果 return $rs; } /** * 校验所传appid是否有效 */ function __check_appid($appid=""){ //查询接口信息 $AppInfo = AppInfo::findFirst("AppId = '$appid' AND Enable = 0"); //如果未查询到接口信息 if(empty($AppInfo)){ //告知用户"找不到app配置信息,appid无效,err detail:找不到app配置信息" $rs['errmsg'] = "找不到app配置信息,appid无效,err detail:找不到app配置信息"; $rs['errcode'] = 40036; $rs['data'] = null; } //如果有查询到接口信息 else{ //告知用户"ok" $rs['errmsg'] = "ok"; $rs['errcode'] = 0; $rs['data'] = array(); $rs['data']['AppInfo'] = $AppInfo; } //返回结果 return $rs; } /** * 校验所传access_token是否有效 */ function __check_access_token($appid="", $access_token=""){ //查询接口信息 $AccessToken = AccessToken::findFirst("AppId = '$appid' AND (AccessToken = '$access_token' OR PrevAccessToken = '$access_token')"); //如果未查询到接口信息 if(empty($AccessToken)){ //告知用户"accesstoken 不正确,err detail:找不到accesstoken信息" $rs['errmsg'] = "accesstoken 不正确,err detail:找不到accesstoken信息"; $rs['errcode'] = 40039; $rs['data'] = null; } //如果有查询到接口信息 else{ //获取现access_token到期时间 $ExpireTime = $AccessToken->ExpireTime; //获取前access_token到期时间 $PrevExpireTime = date("Y-m-d H:i:s", strtotime($AccessToken->ExpireTime)-14400+600); //如果所传access_token匹配前access_token if($access_token==$AccessToken->PrevAccessToken){ //如果前access_token已过期 //注意: //原代码逻辑中前access_token似乎也按现access_token的到期时间算 //此处先遵循文档,按照现access_token生成时间后10分钟算到期时间 if($this->current_datetime>$PrevExpireTime){ //告知用户"access_token is expired,err detail:accesstoken 已过期" $rs['errmsg'] = "access_token is expired,err detail:accesstoken 已过期"; $rs['errcode'] = 80105; $rs['data'] = null; } //如果前access_token未过期 else{ //告知用户"ok" $rs['errmsg'] = "ok"; $rs['errcode'] = 0; $rs['data'] = array(); $rs['data']['AccessToken'] = $AccessToken; } } //如果所传access_token匹配现access_token else{ //如果现access_token已过期 if($this->current_datetime>$ExpireTime){ //告知用户"access_token is expired,err detail:accesstoken 已过期" $rs['errmsg'] = "access_token is expired,err detail:accesstoken 已过期"; $rs['errcode'] = 80105; $rs['data'] = null; } //如果现access_token未过期 else{ //告知用户"ok" $rs['errmsg'] = "ok"; $rs['errcode'] = 0; $rs['data'] = array(); $rs['data']['AccessToken'] = $AccessToken; } } } //返回结果 return $rs; } } ?>