备份提交
This commit is contained in:
parent
03724ecea4
commit
77fd3244f1
@ -10,12 +10,22 @@ class ControllerBase extends Phalcon\Mvc\Controller{
|
|||||||
//public $_PublicHelper;
|
//public $_PublicHelper;
|
||||||
//日志助手
|
//日志助手
|
||||||
public $_LogObj;
|
public $_LogObj;
|
||||||
|
//当前时间戳
|
||||||
|
public $current_time;
|
||||||
|
//当前时间
|
||||||
|
public $current_datetime;
|
||||||
|
//当天日期
|
||||||
|
public $current_date;
|
||||||
|
|
||||||
function initialize(){
|
function initialize(){
|
||||||
//$this->_PublicHelper = new PublicHelper();
|
//$this->_PublicHelper = new PublicHelper();
|
||||||
//$this->_LogObj = new LogClient();
|
//$this->_LogObj = new LogClient();
|
||||||
//选择redis库(测试及开发为130,正式为30)
|
//选择redis库(测试及开发为130,正式为30)
|
||||||
$this->redis->select(REDIS_DB_NUMBER);
|
$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);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -144,5 +154,194 @@ class ControllerBase extends Phalcon\Mvc\Controller{
|
|||||||
return $code;
|
return $code;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取请求数据
|
||||||
|
*/
|
||||||
|
function __check_request_arr(){
|
||||||
|
//如果未获取到请求数据
|
||||||
|
if(empty(file_get_contents("php://input"))){
|
||||||
|
//告知用户"系统繁忙,请稍候再试"
|
||||||
|
$rs['errmsg'] = "系统繁忙,请稍候再试";
|
||||||
|
$rs['errcode'] = -1;
|
||||||
|
$rs['data'] = null;
|
||||||
|
}
|
||||||
|
//如果有获取到请求数据
|
||||||
|
else{
|
||||||
|
//准备判断请求数据整体是否为空
|
||||||
|
$request_arr = json_decode(file_get_contents("php://input"), true);
|
||||||
|
//如果请求数据整体为空
|
||||||
|
if(empty($request_arr)){
|
||||||
|
//告知用户"系统繁忙,请稍候再试"
|
||||||
|
$rs['errmsg'] = "系统繁忙,请稍候再试";
|
||||||
|
$rs['errcode'] = -1;
|
||||||
|
$rs['data'] = null;
|
||||||
|
}
|
||||||
|
//如果请求数据整体不为空
|
||||||
|
else{
|
||||||
|
//告知用户"ok"
|
||||||
|
$rs['errmsg'] = "ok";
|
||||||
|
$rs['errcode'] = 0;
|
||||||
|
$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'] = null;
|
||||||
|
}
|
||||||
|
//返回结果
|
||||||
|
return $rs;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新接口请求次数
|
||||||
|
*/
|
||||||
|
function __update_app_info($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{
|
||||||
|
//获取上次请求日期
|
||||||
|
$last_req_time = $AppInfo->LastReqTime;
|
||||||
|
$last_req_date = date("Y-m-d", strtotime($last_req_time));
|
||||||
|
//获取上次请求日期所在日的请求次数
|
||||||
|
$today_req_times = $AppInfo->TodayReqTimes;
|
||||||
|
//获取接口请求次数限制
|
||||||
|
$day_max_req_times = $AppInfo->DayMaxReqTimes;
|
||||||
|
//如果上次请求日期是当天日期
|
||||||
|
if($last_req_date==$this->current_date){
|
||||||
|
//如果当天请求次数已达到接口请求次数限制
|
||||||
|
if($today_req_times>=$day_max_req_times){
|
||||||
|
//告知用户"request today reached the request limit,err detail:超过请求上限限制"
|
||||||
|
$rs['errmsg'] = "request today reached the request limit,err detail:超过请求上限限制";
|
||||||
|
$rs['errcode'] = 80102;
|
||||||
|
$rs['data'] = null;
|
||||||
|
}
|
||||||
|
//如果当天请求次数尚未达到接口请求次数限制
|
||||||
|
else{
|
||||||
|
//当天请求次数加一
|
||||||
|
$today_req_times = $today_req_times+1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//如果上次请求日期不是当天日期
|
||||||
|
else{
|
||||||
|
//如果接口请求次数限制不大于0
|
||||||
|
if($day_max_req_times<=0){
|
||||||
|
//告知用户"request today reached the request limit,err detail:超过请求上限限制"
|
||||||
|
$rs['errmsg'] = "request today reached the request limit,err detail:超过请求上限限制";
|
||||||
|
$rs['errcode'] = 80102;
|
||||||
|
$rs['data'] = null;
|
||||||
|
}
|
||||||
|
//如果接口请求次数限制大于0
|
||||||
|
else{
|
||||||
|
//初始当天请求次数
|
||||||
|
$today_req_times = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//如果以上判断都通过
|
||||||
|
if(empty($rs['errcode'])){
|
||||||
|
//准备更新当天请求次数
|
||||||
|
$AppInfo->LastModifiedTime = $this->current_datetime;
|
||||||
|
//其他字段
|
||||||
|
$AppInfo->TodayReqTimes = $today_req_times;
|
||||||
|
$AppInfo->LastReqTime = $this->current_date;
|
||||||
|
//如果更新失败
|
||||||
|
if(!($AppInfo->save())){
|
||||||
|
//告知用户"系统繁忙,请稍候再试"
|
||||||
|
$rs['errmsg'] = "系统繁忙,请稍候再试";
|
||||||
|
$rs['errcode'] = -1;
|
||||||
|
$rs['data'] = null;
|
||||||
|
}
|
||||||
|
//如果更新成功
|
||||||
|
else{
|
||||||
|
//告知用户"ok"
|
||||||
|
$rs['errmsg'] = "ok";
|
||||||
|
$rs['errcode'] = 0;
|
||||||
|
$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匹配现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']['AccessToken'] = $AccessToken;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
?>
|
?>
|
||||||
@ -36,112 +36,23 @@ class Oauth2Controller extends ControllerBase{
|
|||||||
* http://weapp.wemediacn.net/d/tiffany/api/oauth2/code?qaz=wsx
|
* http://weapp.wemediacn.net/d/tiffany/api/oauth2/code?qaz=wsx
|
||||||
*/
|
*/
|
||||||
function codeAction(){
|
function codeAction(){
|
||||||
//如果未获取到请求数据
|
//获取请求数据
|
||||||
if(empty(file_get_contents("php://input"))){
|
$rs = $this->__get_request_arr();
|
||||||
//告知用户"系统繁忙,请稍候再试"
|
|
||||||
$rs['errmsg'] = "系统繁忙,请稍候再试";
|
|
||||||
$rs['errcode'] = -1;
|
|
||||||
$rs['data'] = null;
|
|
||||||
}
|
|
||||||
//如果有获取到请求数据
|
//如果有获取到请求数据
|
||||||
else{
|
if(!empty($rs['data']['request_arr'])){
|
||||||
//准备判断请求数据整体是否为空
|
//准备校验基本参数
|
||||||
$request_arr = json_decode(file_get_contents("php://input"), true);
|
$request_arr = $rs['data']['request_arr'];
|
||||||
//如果请求数据整体为空
|
$params_arr[] = "appid";
|
||||||
if(empty($request_arr)){
|
//校验基本参数
|
||||||
//告知用户"系统繁忙,请稍候再试"
|
$rs = $this->__check_params_arr($request_arr, $params_arr);
|
||||||
$rs['errmsg'] = "系统繁忙,请稍候再试";
|
//如果基本参数校验通过
|
||||||
$rs['errcode'] = -1;
|
if(empty($rs['errcode'])){
|
||||||
$rs['data'] = null;
|
//准备更新接口请求次数
|
||||||
}
|
$appid = $request_arr['appid'];
|
||||||
//如果请求数据整体不为空
|
//更新接口请求次数
|
||||||
else{
|
$rs = $this->__update_app_info($appid);
|
||||||
//准备获取所传appid
|
//如果接口请求次数更新成功
|
||||||
$rs['errmsg'] = "";
|
|
||||||
//如果未获取到appid
|
|
||||||
if(empty($request_arr['appid'])){
|
|
||||||
//告知用户"appid is empty;"
|
|
||||||
$rs['errmsg'].= "appid is empty;";
|
|
||||||
}
|
|
||||||
//如果以上判断未通过
|
|
||||||
if(!empty($rs['errmsg'])){
|
|
||||||
//告知用户"参数错误 error detail:".$rs['errmsg']
|
|
||||||
$rs['errmsg'] = "参数错误 error detail:".$rs['errmsg'];
|
|
||||||
$rs['errcode'] = 61451;
|
|
||||||
$rs['data'] = null;
|
|
||||||
}
|
|
||||||
//如果以上判断都通过
|
|
||||||
else{
|
|
||||||
//准备判断所传appid是否有效
|
|
||||||
$appid = $request_arr['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{
|
|
||||||
//获取上次请求日期
|
|
||||||
$last_req_time = $AppInfo->LastReqTime;
|
|
||||||
$last_req_date = date("Y-m-d", strtotime($last_req_time));
|
|
||||||
//获取当前时间及当天日期
|
|
||||||
$current_time = time();
|
|
||||||
$current_datetime = date("Y-m-d H:i:s", $current_time);
|
|
||||||
$current_date = date("Y-m-d", $current_time);
|
|
||||||
//获取上次请求日期所在日的请求次数
|
|
||||||
$today_req_times = $AppInfo->TodayReqTimes;
|
|
||||||
//获取接口请求次数限制
|
|
||||||
$day_max_req_times = $AppInfo->DayMaxReqTimes;
|
|
||||||
//如果上次请求日期是当天日期
|
|
||||||
if($last_req_date==$current_date){
|
|
||||||
//如果当天请求次数已达到接口请求次数限制
|
|
||||||
if($today_req_times>=$day_max_req_times){
|
|
||||||
//告知用户"request today reached the request limit,err detail:超过请求上限限制"
|
|
||||||
$rs['errmsg'] = "request today reached the request limit,err detail:超过请求上限限制";
|
|
||||||
$rs['errcode'] = 80102;
|
|
||||||
$rs['data'] = null;
|
|
||||||
}
|
|
||||||
//如果当天请求次数尚未达到接口请求次数限制
|
|
||||||
else{
|
|
||||||
//当天请求次数加一
|
|
||||||
$today_req_times = $today_req_times+1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//如果上次请求日期不是当天日期
|
|
||||||
else{
|
|
||||||
//如果接口请求次数限制不大于0
|
|
||||||
if($day_max_req_times<=0){
|
|
||||||
//告知用户"request today reached the request limit,err detail:超过请求上限限制"
|
|
||||||
$rs['errmsg'] = "request today reached the request limit,err detail:超过请求上限限制";
|
|
||||||
$rs['errcode'] = 80102;
|
|
||||||
$rs['data'] = null;
|
|
||||||
}
|
|
||||||
//如果接口请求次数限制大于0
|
|
||||||
else{
|
|
||||||
//初始当天请求次数
|
|
||||||
$today_req_times = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//如果以上判断都通过
|
|
||||||
if(empty($rs['errcode'])){
|
if(empty($rs['errcode'])){
|
||||||
//准备更新当天请求次数
|
|
||||||
$AppInfo->LastModifiedTime = $current_datetime;
|
|
||||||
//其他字段
|
|
||||||
$AppInfo->TodayReqTimes = $today_req_times;
|
|
||||||
$AppInfo->LastReqTime = $current_date;
|
|
||||||
//如果更新失败
|
|
||||||
if(!($AppInfo->save())){
|
|
||||||
//告知用户"系统繁忙,请稍候再试"
|
|
||||||
$rs['errmsg'] = "系统繁忙,请稍候再试";
|
|
||||||
$rs['errcode'] = -1;
|
|
||||||
$rs['data'] = null;
|
|
||||||
}
|
|
||||||
//如果更新成功
|
|
||||||
else{
|
|
||||||
//查询当前接口过去是否有生成过code
|
//查询当前接口过去是否有生成过code
|
||||||
$TempCode = TempCode::findFirst("AppId = '$appid'");
|
$TempCode = TempCode::findFirst("AppId = '$appid'");
|
||||||
//如果当前接口过去未生成过code
|
//如果当前接口过去未生成过code
|
||||||
@ -149,18 +60,18 @@ class Oauth2Controller extends ControllerBase{
|
|||||||
//准备新增临时code
|
//准备新增临时code
|
||||||
$TempCode = new TempCode();
|
$TempCode = new TempCode();
|
||||||
$TempCode->AppId = $appid;
|
$TempCode->AppId = $appid;
|
||||||
$TempCode->CreateTime = $current_datetime;
|
$TempCode->CreateTime = $this->current_datetime;
|
||||||
$TempCode->LastModifiedTime = $current_datetime;
|
$TempCode->LastModifiedTime = $this->current_datetime;
|
||||||
}
|
}
|
||||||
//如果当前接口过去有生成过code
|
//如果当前接口过去有生成过code
|
||||||
else{
|
else{
|
||||||
//准备更新临时code
|
//准备更新临时code
|
||||||
$TempCode->LastModifiedTime = $current_datetime;
|
$TempCode->LastModifiedTime = $this->current_datetime;
|
||||||
}
|
}
|
||||||
//其他字段
|
//其他字段
|
||||||
$TempCode->Code = $code = $this->_get_act_code(32);
|
$TempCode->Code = $code = $this->_get_act_code(32);
|
||||||
$TempCode->IsUsed = 0;
|
$TempCode->IsUsed = 0;
|
||||||
$TempCode->ExpireTime = date("Y-m-d H:i:s", $current_time+300);
|
$TempCode->ExpireTime = date("Y-m-d H:i:s", $this->current_time+300);
|
||||||
//如果保存失败
|
//如果保存失败
|
||||||
if(!($TempCode->save())){
|
if(!($TempCode->save())){
|
||||||
//告知用户"系统繁忙,请稍候再试"
|
//告知用户"系统繁忙,请稍候再试"
|
||||||
@ -173,14 +84,12 @@ class Oauth2Controller extends ControllerBase{
|
|||||||
//告知用户"ok"
|
//告知用户"ok"
|
||||||
$rs['errmsg'] = "ok";
|
$rs['errmsg'] = "ok";
|
||||||
$rs['errcode'] = 0;
|
$rs['errcode'] = 0;
|
||||||
|
$rs['data'] = array()
|
||||||
$rs['data']['code'] = $code;
|
$rs['data']['code'] = $code;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//输出结果
|
//输出结果
|
||||||
echo json_encode($rs, JSON_UNESCAPED_UNICODE);
|
echo json_encode($rs, JSON_UNESCAPED_UNICODE);
|
||||||
}
|
}
|
||||||
@ -191,125 +100,30 @@ class Oauth2Controller extends ControllerBase{
|
|||||||
* http://weapp.wemediacn.net/d/tiffany/api/oauth2/accesstoken?qaz=wsx
|
* http://weapp.wemediacn.net/d/tiffany/api/oauth2/accesstoken?qaz=wsx
|
||||||
*/
|
*/
|
||||||
function accesstokenAction(){
|
function accesstokenAction(){
|
||||||
//如果未获取到请求数据
|
//获取请求数据
|
||||||
if(empty(file_get_contents("php://input"))){
|
$rs = $this->__get_request_arr();
|
||||||
//告知用户"系统繁忙,请稍候再试"
|
|
||||||
$rs['errmsg'] = "系统繁忙,请稍候再试";
|
|
||||||
$rs['errcode'] = -1;
|
|
||||||
$rs['data'] = null;
|
|
||||||
}
|
|
||||||
//如果有获取到请求数据
|
//如果有获取到请求数据
|
||||||
else{
|
if(!empty($rs['data']['request_arr'])){
|
||||||
//准备判断请求数据整体是否为空
|
//准备校验基本参数
|
||||||
$request_arr = json_decode(file_get_contents("php://input"), true);
|
|
||||||
//如果请求数据整体为空
|
|
||||||
if(empty($request_arr)){
|
|
||||||
//告知用户"系统繁忙,请稍候再试"
|
|
||||||
$rs['errmsg'] = "系统繁忙,请稍候再试";
|
|
||||||
$rs['errcode'] = -1;
|
|
||||||
$rs['data'] = null;
|
|
||||||
}
|
|
||||||
//如果请求数据整体不为空
|
|
||||||
else{
|
|
||||||
//准备获取所传appid、appsecrect和code
|
|
||||||
//注意:
|
//注意:
|
||||||
//接口中的appsecrect字段本身就是用了错别词,比secret多了一个字母
|
//接口中的appsecrect字段本身就是用了错别词,比secret多了一个字母
|
||||||
//但接口信息表AppInfo里的AppSecret字段则没有多出一个字母,要当心
|
//但接口信息表AppInfo里的AppSecret字段则没有多出一个字母,要当心
|
||||||
$rs['errmsg'] = "";
|
$request_arr = $rs['data']['request_arr'];
|
||||||
//如果未获取到所传appid
|
$params_arr[] = "appid";
|
||||||
if(empty($request_arr['appid'])){
|
$params_arr[] = "appsecrect";
|
||||||
//告知用户"appid is empty;"
|
$params_arr[] = "code";
|
||||||
$rs['errmsg'].= "appid is empty;";
|
//校验基本参数
|
||||||
}
|
$rs = $this->__check_params_arr($request_arr, $params_arr);
|
||||||
//如果未获取到所传appsecrect
|
//如果基本参数校验通过
|
||||||
if(empty($request_arr['appsecrect'])){
|
|
||||||
//告知用户"appsecrect is empty;"
|
|
||||||
$rs['errmsg'].= "appsecrect is empty;";
|
|
||||||
}
|
|
||||||
//如果未获取到所传code
|
|
||||||
if(empty($request_arr['code'])){
|
|
||||||
//告知用户"code is empty;"
|
|
||||||
$rs['errmsg'].= "code is empty;";
|
|
||||||
}
|
|
||||||
//如果以上判断未通过
|
|
||||||
if(!empty($rs['errmsg'])){
|
|
||||||
//告知用户"参数错误 error detail:".$rs['errmsg']
|
|
||||||
$rs['errmsg'] = "参数错误 error detail:".$rs['errmsg'];
|
|
||||||
$rs['errcode'] = 61451;
|
|
||||||
$rs['data'] = null;
|
|
||||||
}
|
|
||||||
//如果以上判断都通过
|
|
||||||
else{
|
|
||||||
//准备判断所传appid是否有效
|
|
||||||
$appid = $request_arr['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{
|
|
||||||
//获取上次请求日期
|
|
||||||
$last_req_time = $AppInfo->LastReqTime;
|
|
||||||
$last_req_date = date("Y-m-d", strtotime($last_req_time));
|
|
||||||
//获取当前时间及当天日期
|
|
||||||
$current_time = time();
|
|
||||||
$current_datetime = date("Y-m-d H:i:s", $current_time);
|
|
||||||
$current_date = date("Y-m-d", $current_time);
|
|
||||||
//获取上次请求日期所在日的请求次数
|
|
||||||
$today_req_times = $AppInfo->TodayReqTimes;
|
|
||||||
//获取接口请求次数限制
|
|
||||||
$day_max_req_times = $AppInfo->DayMaxReqTimes;
|
|
||||||
//如果上次请求日期是当天日期
|
|
||||||
if($last_req_date==$current_date){
|
|
||||||
//如果当天请求次数已达到接口请求次数限制
|
|
||||||
if($today_req_times>=$day_max_req_times){
|
|
||||||
//告知用户"request today reached the request limit,err detail:超过请求上限限制"
|
|
||||||
$rs['errmsg'] = "request today reached the request limit,err detail:超过请求上限限制";
|
|
||||||
$rs['errcode'] = 80102;
|
|
||||||
$rs['data'] = null;
|
|
||||||
}
|
|
||||||
//如果当天请求次数尚未达到接口请求次数限制
|
|
||||||
else{
|
|
||||||
//当天请求次数加一
|
|
||||||
$today_req_times = $today_req_times+1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//如果上次请求日期不是当天日期
|
|
||||||
else{
|
|
||||||
//如果接口请求次数限制不大于0
|
|
||||||
if($day_max_req_times<=0){
|
|
||||||
//告知用户"request today reached the request limit,err detail:超过请求上限限制"
|
|
||||||
$rs['errmsg'] = "request today reached the request limit,err detail:超过请求上限限制";
|
|
||||||
$rs['errcode'] = 80102;
|
|
||||||
$rs['data'] = null;
|
|
||||||
}
|
|
||||||
//如果接口请求次数限制大于0
|
|
||||||
else{
|
|
||||||
//初始当天请求次数
|
|
||||||
$today_req_times = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//如果以上判断都通过
|
|
||||||
if(empty($rs['errcode'])){
|
if(empty($rs['errcode'])){
|
||||||
//准备更新当天请求次数
|
//准备更新接口请求次数
|
||||||
$AppInfo->LastModifiedTime = $current_datetime;
|
$appid = $request_arr['appid'];
|
||||||
//其他字段
|
//更新接口请求次数
|
||||||
$AppInfo->TodayReqTimes = $today_req_times;
|
$rs = $this->__update_app_info($appid);
|
||||||
$AppInfo->LastReqTime = $current_date;
|
//如果接口请求次数更新成功
|
||||||
//如果更新失败
|
if(empty($rs['errcode'])){
|
||||||
if(!($AppInfo->save())){
|
//获取接口信息
|
||||||
//告知用户"系统繁忙,请稍候再试"
|
$AppInfo = $rs['data']['AppInfo'];
|
||||||
$rs['errmsg'] = "系统繁忙,请稍候再试";
|
|
||||||
$rs['errcode'] = -1;
|
|
||||||
$rs['data'] = null;
|
|
||||||
}
|
|
||||||
//如果更新成功
|
|
||||||
else{
|
|
||||||
//准备判断appsecrect是否匹配
|
//准备判断appsecrect是否匹配
|
||||||
$appsecrect = $request_arr['appsecrect'];
|
$appsecrect = $request_arr['appsecrect'];
|
||||||
//如果appsecrect不匹配
|
//如果appsecrect不匹配
|
||||||
@ -337,7 +151,7 @@ class Oauth2Controller extends ControllerBase{
|
|||||||
//准备判断所传code是否已失效
|
//准备判断所传code是否已失效
|
||||||
$expire_time = $TempCode->ExpireTime;
|
$expire_time = $TempCode->ExpireTime;
|
||||||
//如果所传code已失效
|
//如果所传code已失效
|
||||||
if($current_datetime>=$expire_time){
|
if($this->current_datetime>=$expire_time){
|
||||||
//告知用户"authorize code is expired,err detail:code 已过期"
|
//告知用户"authorize code is expired,err detail:code 已过期"
|
||||||
$rs['errmsg'] = "authorize code is expired,err detail:code 已过期";
|
$rs['errmsg'] = "authorize code is expired,err detail:code 已过期";
|
||||||
$rs['errcode'] = 80103;
|
$rs['errcode'] = 80103;
|
||||||
@ -359,7 +173,7 @@ class Oauth2Controller extends ControllerBase{
|
|||||||
//开启事务
|
//开启事务
|
||||||
$this->db->begin();
|
$this->db->begin();
|
||||||
//准备更新临时code
|
//准备更新临时code
|
||||||
$TempCode->LastModifiedTime = $current_datetime;
|
$TempCode->LastModifiedTime = $this->current_datetime;
|
||||||
//其他字段
|
//其他字段
|
||||||
$TempCode->IsUsed = 1;
|
$TempCode->IsUsed = 1;
|
||||||
//如果保存失败
|
//如果保存失败
|
||||||
@ -382,15 +196,15 @@ class Oauth2Controller extends ControllerBase{
|
|||||||
$AccessToken->Id = $this->_get_act_code(32);
|
$AccessToken->Id = $this->_get_act_code(32);
|
||||||
$AccessToken->AppId = $appid;
|
$AccessToken->AppId = $appid;
|
||||||
$AccessToken->PrevAccessToken = null;
|
$AccessToken->PrevAccessToken = null;
|
||||||
$AccessToken->CreateTime = $current_datetime;
|
$AccessToken->CreateTime = $this->current_datetime;
|
||||||
$AccessToken->LastModifiedTime = $current_datetime;
|
$AccessToken->LastModifiedTime = $this->current_datetime;
|
||||||
}
|
}
|
||||||
//如果当前接口过去有生成过access_token
|
//如果当前接口过去有生成过access_token
|
||||||
else{
|
else{
|
||||||
//准备更新AccessToken
|
//准备更新AccessToken
|
||||||
$AccessToken->LastModifiedTime = $current_datetime;
|
$AccessToken->LastModifiedTime = $this->current_datetime;
|
||||||
//如果前access_token已过期
|
//如果前access_token已过期
|
||||||
if($current_datetime>$AccessToken->ExpireTime){
|
if($this->current_datetime>$AccessToken->ExpireTime){
|
||||||
$AccessToken->PrevAccessToken = null;
|
$AccessToken->PrevAccessToken = null;
|
||||||
}
|
}
|
||||||
//如果前access_token未过期
|
//如果前access_token未过期
|
||||||
@ -400,7 +214,7 @@ class Oauth2Controller extends ControllerBase{
|
|||||||
}
|
}
|
||||||
//其他字段
|
//其他字段
|
||||||
$AccessToken->AccessToken = $access_token = $this->_get_act_code(32);
|
$AccessToken->AccessToken = $access_token = $this->_get_act_code(32);
|
||||||
$AccessToken->ExpireTime = date("Y-m-d H:i:s", $current_time+14400);
|
$AccessToken->ExpireTime = date("Y-m-d H:i:s", $this->current_time+14400);
|
||||||
//如果保存失败
|
//如果保存失败
|
||||||
if(!($AccessToken->save())){
|
if(!($AccessToken->save())){
|
||||||
//回滚事务
|
//回滚事务
|
||||||
@ -417,6 +231,7 @@ class Oauth2Controller extends ControllerBase{
|
|||||||
//告知用户"ok"
|
//告知用户"ok"
|
||||||
$rs['errmsg'] = "ok";
|
$rs['errmsg'] = "ok";
|
||||||
$rs['errcode'] = 0;
|
$rs['errcode'] = 0;
|
||||||
|
$rs['data'] = array();
|
||||||
$rs['data']['access_token'] = $access_token;
|
$rs['data']['access_token'] = $access_token;
|
||||||
$rs['data']['expire_in'] = 14400;
|
$rs['data']['expire_in'] = 14400;
|
||||||
$rs['data']['refresh_token'] = null;
|
$rs['data']['refresh_token'] = null;
|
||||||
@ -429,9 +244,6 @@ class Oauth2Controller extends ControllerBase{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//输出结果
|
//输出结果
|
||||||
echo json_encode($rs, JSON_UNESCAPED_UNICODE);
|
echo json_encode($rs, JSON_UNESCAPED_UNICODE);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -77,168 +77,35 @@ class SmsController extends ControllerBase{
|
|||||||
//告知请求的资源不支持 http 方法“GET”。
|
//告知请求的资源不支持 http 方法“GET”。
|
||||||
$rs['Message'] = "请求的资源不支持 http 方法“GET”。";
|
$rs['Message'] = "请求的资源不支持 http 方法“GET”。";
|
||||||
}
|
}
|
||||||
//如果未获取到请求数据
|
//如果不是GET请求
|
||||||
elseif(empty(file_get_contents("php://input"))){
|
else{
|
||||||
//告知用户"系统繁忙,请稍候再试"
|
//获取请求数据
|
||||||
$rs['errcode'] = -1;
|
$rs = $this->__get_request_arr();
|
||||||
$rs['errmsg'] = "系统繁忙,请稍候再试";
|
|
||||||
$rs['data'] = null;
|
|
||||||
}
|
|
||||||
//如果有获取到请求数据
|
//如果有获取到请求数据
|
||||||
else{
|
if(!empty($rs['data']['request_arr'])){
|
||||||
//准备判断请求数据整体是否为空
|
//准备校验基本参数
|
||||||
$request_arr = json_decode(file_get_contents("php://input"), true);
|
$request_arr = $rs['data']['request_arr'];
|
||||||
//如果请求数据整体为空
|
$params_arr[] = "appid";
|
||||||
if(empty($request_arr)){
|
$params_arr[] = "mobile";
|
||||||
//告知用户"系统繁忙,请稍候再试"
|
$params_arr[] = "access_token";
|
||||||
$rs['errmsg'] = "系统繁忙,请稍候再试";
|
$params_arr[] = "content";
|
||||||
$rs['errcode'] = -1;
|
//校验基本参数
|
||||||
$rs['data'] = null;
|
$rs = $this->__check_params_arr($request_arr, $params_arr);
|
||||||
}
|
//如果基本参数校验通过
|
||||||
//如果请求数据整体不为空
|
|
||||||
else{
|
|
||||||
//准备获取所传appid、手机号、access_token和短信内容
|
|
||||||
$rs['errmsg'] = "";
|
|
||||||
//如果未获取到所传appid
|
|
||||||
if(empty($request_arr['appid'])){
|
|
||||||
//告知用户"appid is empty;"
|
|
||||||
$rs['errmsg'].= "appid is empty;";
|
|
||||||
}
|
|
||||||
//如果未获取到所传手机号
|
|
||||||
if(empty($request_arr['mobile'])){
|
|
||||||
//告知用户"mobile is empty;"
|
|
||||||
$rs['errmsg'].= "mobile is empty;";
|
|
||||||
}
|
|
||||||
//如果未获取到所传access_token
|
|
||||||
if(empty($request_arr['access_token'])){
|
|
||||||
//告知用户"access_token is empty;"
|
|
||||||
$rs['errmsg'].= "access_token is empty;";
|
|
||||||
}
|
|
||||||
//如果未获取到所传短信内容
|
|
||||||
if(empty($request_arr['content'])){
|
|
||||||
//告知用户"content is empty;"
|
|
||||||
$rs['errmsg'].= "content is empty;";
|
|
||||||
}
|
|
||||||
//如果以上判断未通过
|
|
||||||
if(!empty($rs['errmsg'])){
|
|
||||||
//告知用户"参数错误 error detail:".$rs['errmsg']
|
|
||||||
$rs['errmsg'] = "参数错误 error detail:".$rs['errmsg'];
|
|
||||||
$rs['errcode'] = 61451;
|
|
||||||
$rs['data'] = null;
|
|
||||||
}
|
|
||||||
//如果以上判断都通过
|
|
||||||
else{
|
|
||||||
//准备判断所传appid是否有效
|
|
||||||
$appid = $request_arr['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{
|
|
||||||
//获取上次请求日期
|
|
||||||
$last_req_time = $AppInfo->LastReqTime;
|
|
||||||
$last_req_date = date("Y-m-d", strtotime($last_req_time));
|
|
||||||
//获取当前时间及当天日期
|
|
||||||
$current_time = time();
|
|
||||||
$current_datetime = date("Y-m-d H:i:s", $current_time);
|
|
||||||
$current_date = date("Y-m-d", $current_time);
|
|
||||||
//获取上次请求日期所在日的请求次数
|
|
||||||
$today_req_times = $AppInfo->TodayReqTimes;
|
|
||||||
//获取接口请求次数限制
|
|
||||||
$day_max_req_times = $AppInfo->DayMaxReqTimes;
|
|
||||||
//如果上次请求日期是当天日期
|
|
||||||
if($last_req_date==$current_date){
|
|
||||||
//如果当天请求次数已达到接口请求次数限制
|
|
||||||
if($today_req_times>=$day_max_req_times){
|
|
||||||
//告知用户"request today reached the request limit,err detail:超过请求上限限制"
|
|
||||||
$rs['errmsg'] = "request today reached the request limit,err detail:超过请求上限限制";
|
|
||||||
$rs['errcode'] = 80102;
|
|
||||||
$rs['data'] = null;
|
|
||||||
}
|
|
||||||
//如果当天请求次数尚未达到接口请求次数限制
|
|
||||||
else{
|
|
||||||
//当天请求次数加一
|
|
||||||
$today_req_times = $today_req_times+1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//如果上次请求日期不是当天日期
|
|
||||||
else{
|
|
||||||
//如果接口请求次数限制不大于0
|
|
||||||
if($day_max_req_times<=0){
|
|
||||||
//告知用户"request today reached the request limit,err detail:超过请求上限限制"
|
|
||||||
$rs['errmsg'] = "request today reached the request limit,err detail:超过请求上限限制";
|
|
||||||
$rs['errcode'] = 80102;
|
|
||||||
$rs['data'] = null;
|
|
||||||
}
|
|
||||||
//如果接口请求次数限制大于0
|
|
||||||
else{
|
|
||||||
//初始当天请求次数
|
|
||||||
$today_req_times = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//如果以上判断都通过
|
|
||||||
if(empty($rs['errcode'])){
|
if(empty($rs['errcode'])){
|
||||||
//准备更新当天请求次数
|
//准备更新接口请求次数
|
||||||
$AppInfo->LastModifiedTime = $current_datetime;
|
$appid = $request_arr['appid'];
|
||||||
//其他字段
|
//更新接口请求次数
|
||||||
$AppInfo->TodayReqTimes = $today_req_times;
|
$rs = $this->__update_app_info($appid);
|
||||||
$AppInfo->LastReqTime = $current_date;
|
//如果接口请求次数更新成功
|
||||||
//如果更新失败
|
if(empty($rs['errcode'])){
|
||||||
if(!($AppInfo->save())){
|
//获取接口信息
|
||||||
//告知用户"系统繁忙,请稍候再试"
|
$AppInfo = $rs['data']['AppInfo'];
|
||||||
$rs['errmsg'] = "系统繁忙,请稍候再试";
|
//准备校验所传access_token是否有效
|
||||||
$rs['errcode'] = -1;
|
|
||||||
$rs['data'] = null;
|
|
||||||
}
|
|
||||||
//如果更新成功
|
|
||||||
else{
|
|
||||||
//准备判断所传access_token是否有效
|
|
||||||
$access_token = $request_arr['access_token'];
|
$access_token = $request_arr['access_token'];
|
||||||
//查询接口信息
|
//校验所传access_token是否有效
|
||||||
$AccessToken = AccessToken::findFirst("AppId = '$appid' AND (AccessToken = '$access_token' OR PrevAccessToken = '$access_token')");
|
$rs = $this->__check_access_token($appid, $access_token);
|
||||||
//如果未查询到接口信息
|
//如果所传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($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匹配现access_token
|
|
||||||
else{
|
|
||||||
//如果现access_token已过期
|
|
||||||
if($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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//如果以上判断都通过
|
|
||||||
if(empty($rs['errcode'])){
|
if(empty($rs['errcode'])){
|
||||||
//设置发送手机号
|
//设置发送手机号
|
||||||
$mobile = $request_arr['mobile'];
|
$mobile = $request_arr['mobile'];
|
||||||
@ -277,6 +144,7 @@ class SmsController extends ControllerBase{
|
|||||||
//告知用户"ok"
|
//告知用户"ok"
|
||||||
$rs['errmsg'] = "ok";
|
$rs['errmsg'] = "ok";
|
||||||
$rs['errcode'] = 0;
|
$rs['errcode'] = 0;
|
||||||
|
$rs['data'] = array()
|
||||||
$rs['data']['messageid'] = $messageid;
|
$rs['data']['messageid'] = $messageid;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -284,9 +152,6 @@ class SmsController extends ControllerBase{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//输出结果
|
//输出结果
|
||||||
echo json_encode($rs, JSON_UNESCAPED_UNICODE);
|
echo json_encode($rs, JSON_UNESCAPED_UNICODE);
|
||||||
}
|
}
|
||||||
@ -302,52 +167,21 @@ class SmsController extends ControllerBase{
|
|||||||
//告知请求的资源不支持 http 方法“GET”。
|
//告知请求的资源不支持 http 方法“GET”。
|
||||||
$rs['Message'] = "请求的资源不支持 http 方法“GET”。";
|
$rs['Message'] = "请求的资源不支持 http 方法“GET”。";
|
||||||
}
|
}
|
||||||
//如果未获取到请求数据
|
//如果不是GET请求
|
||||||
elseif(empty(file_get_contents("php://input"))){
|
else{
|
||||||
//告知用户"系统繁忙,请稍候再试"
|
//获取请求数据
|
||||||
$rs['errcode'] = -1;
|
$rs = $this->__get_request_arr();
|
||||||
$rs['errmsg'] = "系统繁忙,请稍候再试";
|
|
||||||
$rs['data'] = null;
|
|
||||||
}
|
|
||||||
//如果有获取到请求数据
|
//如果有获取到请求数据
|
||||||
else{
|
if(!empty($rs['data']['request_arr'])){
|
||||||
//准备判断请求数据整体是否为空
|
//准备校验基本参数
|
||||||
$request_arr = json_decode(file_get_contents("php://input"), true);
|
$request_arr = $rs['data']['request_arr'];
|
||||||
//如果请求数据整体为空
|
$params_arr[] = "appid";
|
||||||
if(empty($request_arr)){
|
$params_arr[] = "mobile";
|
||||||
//告知用户"系统繁忙,请稍候再试"
|
$params_arr[] = "access_token";
|
||||||
$rs['errmsg'] = "系统繁忙,请稍候再试";
|
//校验基本参数
|
||||||
$rs['errcode'] = -1;
|
$rs = $this->__check_params_arr($request_arr, $params_arr);
|
||||||
$rs['data'] = null;
|
//如果基本参数校验通过
|
||||||
}
|
if(empty($rs['errcode'])){
|
||||||
//如果请求数据整体不为空
|
|
||||||
else{
|
|
||||||
//准备获取所传appid、手机号和access_token
|
|
||||||
$rs['errmsg'] = "";
|
|
||||||
//如果未获取到所传appid
|
|
||||||
if(empty($request_arr['appid'])){
|
|
||||||
//告知用户"appid is empty;"
|
|
||||||
$rs['errmsg'].= "appid is empty;";
|
|
||||||
}
|
|
||||||
//如果未获取到所传手机号
|
|
||||||
if(empty($request_arr['mobile'])){
|
|
||||||
//告知用户"mobile is empty;"
|
|
||||||
$rs['errmsg'].= "mobile is empty;";
|
|
||||||
}
|
|
||||||
//如果未获取到所传access_token
|
|
||||||
if(empty($request_arr['access_token'])){
|
|
||||||
//告知用户"access_token is empty;"
|
|
||||||
$rs['errmsg'].= "access_token is empty;";
|
|
||||||
}
|
|
||||||
//如果以上判断未通过
|
|
||||||
if(!empty($rs['errmsg'])){
|
|
||||||
//告知用户"参数错误 error detail:".$rs['errmsg']
|
|
||||||
$rs['errmsg'] = "参数错误 error detail:".$rs['errmsg'];
|
|
||||||
$rs['errcode'] = 61451;
|
|
||||||
$rs['data'] = null;
|
|
||||||
}
|
|
||||||
//如果以上判断都通过
|
|
||||||
else{
|
|
||||||
//获取所传验证码长度
|
//获取所传验证码长度
|
||||||
//注意:
|
//注意:
|
||||||
//原代码逻辑中验证码长度小于等于0则取默认值4
|
//原代码逻辑中验证码长度小于等于0则取默认值4
|
||||||
@ -383,117 +217,19 @@ class SmsController extends ControllerBase{
|
|||||||
}
|
}
|
||||||
//如果所传验证码类型是1或2
|
//如果所传验证码类型是1或2
|
||||||
else{
|
else{
|
||||||
//准备判断所传appid是否有效
|
//准备更新接口请求次数
|
||||||
$appid = $request_arr['appid'];
|
$appid = $request_arr['appid'];
|
||||||
//查询接口信息
|
//更新接口请求次数
|
||||||
$AppInfo = AppInfo::findFirst("AppId = '$appid' AND Enable = 0");
|
$rs = $this->__update_app_info($appid);
|
||||||
//如果未查询到接口信息
|
//如果接口请求次数更新成功
|
||||||
if(empty($AppInfo)){
|
|
||||||
//告知用户"找不到app配置信息,appid无效,err detail:找不到app配置信息"
|
|
||||||
$rs['errmsg'] = "找不到app配置信息,appid无效,err detail:找不到app配置信息";
|
|
||||||
$rs['errcode'] = 40036;
|
|
||||||
$rs['data'] = null;
|
|
||||||
}
|
|
||||||
//如果有查询到接口信息
|
|
||||||
else{
|
|
||||||
//获取上次请求日期
|
|
||||||
$last_req_time = $AppInfo->LastReqTime;
|
|
||||||
$last_req_date = date("Y-m-d", strtotime($last_req_time));
|
|
||||||
//获取当前时间及当天日期
|
|
||||||
$current_time = time();
|
|
||||||
$current_datetime = date("Y-m-d H:i:s", $current_time);
|
|
||||||
$current_date = date("Y-m-d", $current_time);
|
|
||||||
//获取上次请求日期所在日的请求次数
|
|
||||||
$today_req_times = $AppInfo->TodayReqTimes;
|
|
||||||
//获取接口请求次数限制
|
|
||||||
$day_max_req_times = $AppInfo->DayMaxReqTimes;
|
|
||||||
//如果上次请求日期是当天日期
|
|
||||||
if($last_req_date==$current_date){
|
|
||||||
//如果当天请求次数已达到接口请求次数限制
|
|
||||||
if($today_req_times>=$day_max_req_times){
|
|
||||||
//告知用户"request today reached the request limit,err detail:超过请求上限限制"
|
|
||||||
$rs['errmsg'] = "request today reached the request limit,err detail:超过请求上限限制";
|
|
||||||
$rs['errcode'] = 80102;
|
|
||||||
$rs['data'] = null;
|
|
||||||
}
|
|
||||||
//如果当天请求次数尚未达到接口请求次数限制
|
|
||||||
else{
|
|
||||||
//当天请求次数加一
|
|
||||||
$today_req_times = $today_req_times+1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//如果上次请求日期不是当天日期
|
|
||||||
else{
|
|
||||||
//如果接口请求次数限制不大于0
|
|
||||||
if($day_max_req_times<=0){
|
|
||||||
//告知用户"request today reached the request limit,err detail:超过请求上限限制"
|
|
||||||
$rs['errmsg'] = "request today reached the request limit,err detail:超过请求上限限制";
|
|
||||||
$rs['errcode'] = 80102;
|
|
||||||
$rs['data'] = null;
|
|
||||||
}
|
|
||||||
//如果接口请求次数限制大于0
|
|
||||||
else{
|
|
||||||
//初始当天请求次数
|
|
||||||
$today_req_times = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//如果以上判断都通过
|
|
||||||
if(empty($rs['errcode'])){
|
if(empty($rs['errcode'])){
|
||||||
//准备更新当天请求次数
|
//获取接口信息
|
||||||
$AppInfo->LastModifiedTime = $current_datetime;
|
$AppInfo = $rs['data']['AppInfo'];
|
||||||
//其他字段
|
//准备校验所传access_token是否有效
|
||||||
$AppInfo->TodayReqTimes = $today_req_times;
|
|
||||||
$AppInfo->LastReqTime = $current_date;
|
|
||||||
//如果更新失败
|
|
||||||
if(!($AppInfo->save())){
|
|
||||||
//告知用户"系统繁忙,请稍候再试"
|
|
||||||
$rs['errmsg'] = "系统繁忙,请稍候再试";
|
|
||||||
$rs['errcode'] = -1;
|
|
||||||
$rs['data'] = null;
|
|
||||||
}
|
|
||||||
//如果更新成功
|
|
||||||
else{
|
|
||||||
//准备判断所传access_token是否有效
|
|
||||||
$access_token = $request_arr['access_token'];
|
$access_token = $request_arr['access_token'];
|
||||||
//查询接口信息
|
//校验所传access_token是否有效
|
||||||
$AccessToken = AccessToken::findFirst("AppId = '$appid' AND (AccessToken = '$access_token' OR PrevAccessToken = '$access_token')");
|
$rs = $this->__check_access_token($appid, $access_token);
|
||||||
//如果未查询到接口信息
|
//如果所传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($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匹配现access_token
|
|
||||||
else{
|
|
||||||
//如果现access_token已过期
|
|
||||||
if($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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//如果以上判断都通过
|
|
||||||
if(empty($rs['errcode'])){
|
if(empty($rs['errcode'])){
|
||||||
//设置发送手机号
|
//设置发送手机号
|
||||||
$mobile = $request_arr['mobile'];
|
$mobile = $request_arr['mobile'];
|
||||||
@ -605,6 +341,7 @@ class SmsController extends ControllerBase{
|
|||||||
//告知用户"ok"
|
//告知用户"ok"
|
||||||
$rs['errmsg'] = "ok";
|
$rs['errmsg'] = "ok";
|
||||||
$rs['errcode'] = 0;
|
$rs['errcode'] = 0;
|
||||||
|
$rs['data'] = array()
|
||||||
$rs['data']['messageid'] = $messageid;
|
$rs['data']['messageid'] = $messageid;
|
||||||
$rs['data']['authcode'] = $authcode;
|
$rs['data']['authcode'] = $authcode;
|
||||||
}
|
}
|
||||||
@ -615,9 +352,6 @@ class SmsController extends ControllerBase{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//输出结果
|
//输出结果
|
||||||
echo json_encode($rs, JSON_UNESCAPED_UNICODE);
|
echo json_encode($rs, JSON_UNESCAPED_UNICODE);
|
||||||
}
|
}
|
||||||
@ -648,158 +382,33 @@ class SmsController extends ControllerBase{
|
|||||||
//告知请求的资源不支持 http 方法“GET”。
|
//告知请求的资源不支持 http 方法“GET”。
|
||||||
$rs['Message'] = "请求的资源不支持 http 方法“GET”。";
|
$rs['Message'] = "请求的资源不支持 http 方法“GET”。";
|
||||||
}
|
}
|
||||||
//如果未获取到请求数据
|
//如果不是GET请求
|
||||||
elseif(empty(file_get_contents("php://input"))){
|
else{
|
||||||
//告知用户"系统繁忙,请稍候再试"
|
//获取请求数据
|
||||||
$rs['errcode'] = -1;
|
$rs = $this->__get_request_arr();
|
||||||
$rs['errmsg'] = "系统繁忙,请稍候再试";
|
|
||||||
$rs['data'] = null;
|
|
||||||
}
|
|
||||||
//如果有获取到请求数据
|
//如果有获取到请求数据
|
||||||
else{
|
if(!empty($rs['data']['request_arr'])){
|
||||||
//准备判断请求数据整体是否为空
|
//准备校验基本参数
|
||||||
$request_arr = json_decode(file_get_contents("php://input"), true);
|
$request_arr = $rs['data']['request_arr'];
|
||||||
//如果请求数据整体为空
|
$params_arr[] = "appid";
|
||||||
if(empty($request_arr)){
|
$params_arr[] = "access_token";
|
||||||
//告知用户"系统繁忙,请稍候再试"
|
//校验基本参数
|
||||||
$rs['errmsg'] = "系统繁忙,请稍候再试";
|
$rs = $this->__check_params_arr($request_arr, $params_arr);
|
||||||
$rs['errcode'] = -1;
|
//如果基本参数校验通过
|
||||||
$rs['data'] = null;
|
|
||||||
}
|
|
||||||
//如果请求数据整体不为空
|
|
||||||
else{
|
|
||||||
//准备获取所传appid和access_token
|
|
||||||
$rs['errmsg'] = "";
|
|
||||||
//如果未获取到所传appid
|
|
||||||
if(empty($request_arr['appid'])){
|
|
||||||
//告知用户"appid is empty;"
|
|
||||||
$rs['errmsg'].= "appid is empty;";
|
|
||||||
}
|
|
||||||
//如果未获取到所传access_token
|
|
||||||
if(empty($request_arr['access_token'])){
|
|
||||||
//告知用户"access_token is empty;"
|
|
||||||
$rs['errmsg'].= "access_token is empty;";
|
|
||||||
}
|
|
||||||
//如果以上判断未通过
|
|
||||||
if(!empty($rs['errmsg'])){
|
|
||||||
//告知用户"参数错误 error detail:".$rs['errmsg']
|
|
||||||
$rs['errmsg'] = "参数错误 error detail:".$rs['errmsg'];
|
|
||||||
$rs['errcode'] = 61451;
|
|
||||||
$rs['data'] = null;
|
|
||||||
}
|
|
||||||
//如果以上判断都通过
|
|
||||||
else{
|
|
||||||
//准备判断所传appid是否有效
|
|
||||||
$appid = $request_arr['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{
|
|
||||||
//获取上次请求日期
|
|
||||||
$last_req_time = $AppInfo->LastReqTime;
|
|
||||||
$last_req_date = date("Y-m-d", strtotime($last_req_time));
|
|
||||||
//获取当前时间及当天日期
|
|
||||||
$current_time = time();
|
|
||||||
$current_datetime = date("Y-m-d H:i:s", $current_time);
|
|
||||||
$current_date = date("Y-m-d", $current_time);
|
|
||||||
//获取上次请求日期所在日的请求次数
|
|
||||||
$today_req_times = $AppInfo->TodayReqTimes;
|
|
||||||
//获取接口请求次数限制
|
|
||||||
$day_max_req_times = $AppInfo->DayMaxReqTimes;
|
|
||||||
//如果上次请求日期是当天日期
|
|
||||||
if($last_req_date==$current_date){
|
|
||||||
//如果当天请求次数已达到接口请求次数限制
|
|
||||||
if($today_req_times>=$day_max_req_times){
|
|
||||||
//告知用户"request today reached the request limit,err detail:超过请求上限限制"
|
|
||||||
$rs['errmsg'] = "request today reached the request limit,err detail:超过请求上限限制";
|
|
||||||
$rs['errcode'] = 80102;
|
|
||||||
$rs['data'] = null;
|
|
||||||
}
|
|
||||||
//如果当天请求次数尚未达到接口请求次数限制
|
|
||||||
else{
|
|
||||||
//当天请求次数加一
|
|
||||||
$today_req_times = $today_req_times+1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//如果上次请求日期不是当天日期
|
|
||||||
else{
|
|
||||||
//如果接口请求次数限制不大于0
|
|
||||||
if($day_max_req_times<=0){
|
|
||||||
//告知用户"request today reached the request limit,err detail:超过请求上限限制"
|
|
||||||
$rs['errmsg'] = "request today reached the request limit,err detail:超过请求上限限制";
|
|
||||||
$rs['errcode'] = 80102;
|
|
||||||
$rs['data'] = null;
|
|
||||||
}
|
|
||||||
//如果接口请求次数限制大于0
|
|
||||||
else{
|
|
||||||
//初始当天请求次数
|
|
||||||
$today_req_times = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//如果以上判断都通过
|
|
||||||
if(empty($rs['errcode'])){
|
if(empty($rs['errcode'])){
|
||||||
//准备更新当天请求次数
|
//准备更新接口请求次数
|
||||||
$AppInfo->LastModifiedTime = $current_datetime;
|
$appid = $request_arr['appid'];
|
||||||
//其他字段
|
//更新接口请求次数
|
||||||
$AppInfo->TodayReqTimes = $today_req_times;
|
$rs = $this->__update_app_info($appid);
|
||||||
$AppInfo->LastReqTime = $current_date;
|
//如果接口请求次数更新成功
|
||||||
//如果更新失败
|
if(empty($rs['errcode'])){
|
||||||
if(!($AppInfo->save())){
|
//获取接口信息
|
||||||
//告知用户"系统繁忙,请稍候再试"
|
$AppInfo = $rs['data']['AppInfo'];
|
||||||
$rs['errmsg'] = "系统繁忙,请稍候再试";
|
//准备校验所传access_token是否有效
|
||||||
$rs['errcode'] = -1;
|
|
||||||
$rs['data'] = null;
|
|
||||||
}
|
|
||||||
//如果更新成功
|
|
||||||
else{
|
|
||||||
//准备判断所传access_token是否有效
|
|
||||||
$access_token = $request_arr['access_token'];
|
$access_token = $request_arr['access_token'];
|
||||||
//查询接口信息
|
//校验所传access_token是否有效
|
||||||
$AccessToken = AccessToken::findFirst("AppId = '$appid' AND (AccessToken = '$access_token' OR PrevAccessToken = '$access_token')");
|
$rs = $this->__check_access_token($appid, $access_token);
|
||||||
//如果未查询到接口信息
|
//如果所传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($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匹配现access_token
|
|
||||||
else{
|
|
||||||
//如果现access_token已过期
|
|
||||||
if($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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//如果以上判断都通过
|
|
||||||
if(empty($rs['errcode'])){
|
if(empty($rs['errcode'])){
|
||||||
//设置查询MinID
|
//设置查询MinID
|
||||||
$MinID = isset($request_arr['min_id'])?$request_arr['min_id']:0;
|
$MinID = isset($request_arr['min_id'])?$request_arr['min_id']:0;
|
||||||
@ -831,6 +440,7 @@ class SmsController extends ControllerBase{
|
|||||||
//此处先遵循原代码逻辑,而不按照文档中所写的不做返回
|
//此处先遵循原代码逻辑,而不按照文档中所写的不做返回
|
||||||
$rs['errmsg'] = "ok";
|
$rs['errmsg'] = "ok";
|
||||||
$rs['errcode'] = 0;
|
$rs['errcode'] = 0;
|
||||||
|
$rs['data'] = array()
|
||||||
$rs['data']['NewDataSet']['@nextID'] = $array['@attributes']['nextID'];
|
$rs['data']['NewDataSet']['@nextID'] = $array['@attributes']['nextID'];
|
||||||
$rs['data']['NewDataSet']['@count'] = $array['@attributes']['count'];
|
$rs['data']['NewDataSet']['@count'] = $array['@attributes']['count'];
|
||||||
$rs['data']['NewDataSet']['@xmlns'] = "";
|
$rs['data']['NewDataSet']['@xmlns'] = "";
|
||||||
@ -855,10 +465,6 @@ class SmsController extends ControllerBase{
|
|||||||
$rs['data']['NewDataSet']['result'][] = $result;
|
$rs['data']['NewDataSet']['result'][] = $result;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -40,163 +40,34 @@ class UrlsController extends ControllerBase{
|
|||||||
//告知请求的资源不支持 http 方法“GET”。
|
//告知请求的资源不支持 http 方法“GET”。
|
||||||
$rs['Message'] = "请求的资源不支持 http 方法“GET”。";
|
$rs['Message'] = "请求的资源不支持 http 方法“GET”。";
|
||||||
}
|
}
|
||||||
//如果未获取到请求数据
|
//如果不是GET请求
|
||||||
elseif(empty(file_get_contents("php://input"))){
|
else{
|
||||||
//告知用户"系统繁忙,请稍候再试"
|
//获取请求数据
|
||||||
$rs['errcode'] = -1;
|
$rs = $this->__get_request_arr();
|
||||||
$rs['errmsg'] = "系统繁忙,请稍候再试";
|
|
||||||
$rs['data'] = null;
|
|
||||||
}
|
|
||||||
//如果有获取到请求数据
|
//如果有获取到请求数据
|
||||||
else{
|
if(!empty($rs['data']['request_arr'])){
|
||||||
//准备判断请求数据整体是否为空
|
//准备校验基本参数
|
||||||
$request_arr = json_decode(file_get_contents("php://input"), true);
|
$request_arr = $rs['data']['request_arr'];
|
||||||
//如果请求数据整体为空
|
$params_arr[] = "appid";
|
||||||
if(empty($request_arr)){
|
$params_arr[] = "url";
|
||||||
//告知用户"系统繁忙,请稍候再试"
|
$params_arr[] = "access_token";
|
||||||
$rs['errmsg'] = "系统繁忙,请稍候再试";
|
//校验基本参数
|
||||||
$rs['errcode'] = -1;
|
$rs = $this->__check_params_arr($request_arr, $params_arr);
|
||||||
$rs['data'] = null;
|
//如果基本参数校验通过
|
||||||
}
|
|
||||||
//如果请求数据整体不为空
|
|
||||||
else{
|
|
||||||
//准备获取所传appid、长链接和access_token
|
|
||||||
$rs['errmsg'] = "";
|
|
||||||
//如果未获取到所传appid
|
|
||||||
if(empty($request_arr['appid'])){
|
|
||||||
//告知用户"appid is empty;"
|
|
||||||
$rs['errmsg'].= "appid is empty;";
|
|
||||||
}
|
|
||||||
//如果未获取到所传长链接
|
|
||||||
if(empty($request_arr['url'])){
|
|
||||||
//告知用户"url is empty;"
|
|
||||||
$rs['errmsg'].= "url is empty;";
|
|
||||||
}
|
|
||||||
//如果未获取到所传access_token
|
|
||||||
if(empty($request_arr['access_token'])){
|
|
||||||
//告知用户"access_token is empty;"
|
|
||||||
$rs['errmsg'].= "access_token is empty;";
|
|
||||||
}
|
|
||||||
//如果以上判断未通过
|
|
||||||
if(!empty($rs['errmsg'])){
|
|
||||||
//告知用户"参数错误 error detail:".$rs['errmsg']
|
|
||||||
$rs['errmsg'] = "参数错误 error detail:".$rs['errmsg'];
|
|
||||||
$rs['errcode'] = 61451;
|
|
||||||
$rs['data'] = null;
|
|
||||||
}
|
|
||||||
//如果以上判断都通过
|
|
||||||
else{
|
|
||||||
//准备判断所传appid是否有效
|
|
||||||
$appid = $request_arr['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{
|
|
||||||
//获取上次请求日期
|
|
||||||
$last_req_time = $AppInfo->LastReqTime;
|
|
||||||
$last_req_date = date("Y-m-d", strtotime($last_req_time));
|
|
||||||
//获取当前时间及当天日期
|
|
||||||
$current_time = time();
|
|
||||||
$current_datetime = date("Y-m-d H:i:s", $current_time);
|
|
||||||
$current_date = date("Y-m-d", $current_time);
|
|
||||||
//获取上次请求日期所在日的请求次数
|
|
||||||
$today_req_times = $AppInfo->TodayReqTimes;
|
|
||||||
//获取接口请求次数限制
|
|
||||||
$day_max_req_times = $AppInfo->DayMaxReqTimes;
|
|
||||||
//如果上次请求日期是当天日期
|
|
||||||
if($last_req_date==$current_date){
|
|
||||||
//如果当天请求次数已达到接口请求次数限制
|
|
||||||
if($today_req_times>=$day_max_req_times){
|
|
||||||
//告知用户"request today reached the request limit,err detail:超过请求上限限制"
|
|
||||||
$rs['errmsg'] = "request today reached the request limit,err detail:超过请求上限限制";
|
|
||||||
$rs['errcode'] = 80102;
|
|
||||||
$rs['data'] = null;
|
|
||||||
}
|
|
||||||
//如果当天请求次数尚未达到接口请求次数限制
|
|
||||||
else{
|
|
||||||
//当天请求次数加一
|
|
||||||
$today_req_times = $today_req_times+1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//如果上次请求日期不是当天日期
|
|
||||||
else{
|
|
||||||
//如果接口请求次数限制不大于0
|
|
||||||
if($day_max_req_times<=0){
|
|
||||||
//告知用户"request today reached the request limit,err detail:超过请求上限限制"
|
|
||||||
$rs['errmsg'] = "request today reached the request limit,err detail:超过请求上限限制";
|
|
||||||
$rs['errcode'] = 80102;
|
|
||||||
$rs['data'] = null;
|
|
||||||
}
|
|
||||||
//如果接口请求次数限制大于0
|
|
||||||
else{
|
|
||||||
//初始当天请求次数
|
|
||||||
$today_req_times = 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//如果以上判断都通过
|
|
||||||
if(empty($rs['errcode'])){
|
if(empty($rs['errcode'])){
|
||||||
//准备更新当天请求次数
|
//准备更新接口请求次数
|
||||||
$AppInfo->LastModifiedTime = $current_datetime;
|
$appid = $request_arr['appid'];
|
||||||
//其他字段
|
//更新接口请求次数
|
||||||
$AppInfo->TodayReqTimes = $today_req_times;
|
$rs = $this->__update_app_info($appid);
|
||||||
$AppInfo->LastReqTime = $current_date;
|
//如果接口请求次数更新成功
|
||||||
//如果更新失败
|
if(empty($rs['errcode'])){
|
||||||
if(!($AppInfo->save())){
|
//获取接口信息
|
||||||
//告知用户"系统繁忙,请稍候再试"
|
$AppInfo = $rs['data']['AppInfo'];
|
||||||
$rs['errmsg'] = "系统繁忙,请稍候再试";
|
//准备校验所传access_token是否有效
|
||||||
$rs['errcode'] = -1;
|
|
||||||
$rs['data'] = null;
|
|
||||||
}
|
|
||||||
//如果更新成功
|
|
||||||
else{
|
|
||||||
//准备判断所传access_token是否有效
|
|
||||||
$access_token = $request_arr['access_token'];
|
$access_token = $request_arr['access_token'];
|
||||||
//查询接口信息
|
//校验所传access_token是否有效
|
||||||
$AccessToken = AccessToken::findFirst("AppId = '$appid' AND (AccessToken = '$access_token' OR PrevAccessToken = '$access_token')");
|
$rs = $this->__check_access_token($appid, $access_token);
|
||||||
//如果未查询到接口信息
|
//如果所传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($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匹配现access_token
|
|
||||||
else{
|
|
||||||
//如果现access_token已过期
|
|
||||||
if($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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//如果以上判断都通过
|
|
||||||
if(empty($rs['errcode'])){
|
if(empty($rs['errcode'])){
|
||||||
//设置生成长链接
|
//设置生成长链接
|
||||||
$post_arr['urls'] = json_encode(array($request_arr['url']));
|
$post_arr['urls'] = json_encode(array($request_arr['url']));
|
||||||
@ -222,6 +93,7 @@ class UrlsController extends ControllerBase{
|
|||||||
//告知用户"ok"
|
//告知用户"ok"
|
||||||
$rs['errmsg'] = "ok";
|
$rs['errmsg'] = "ok";
|
||||||
$rs['errcode'] = 0;
|
$rs['errcode'] = 0;
|
||||||
|
$rs['data'] = array()
|
||||||
$rs['data']['shorturl'] = $array['urls'][0]['surl'];
|
$rs['data']['shorturl'] = $array['urls'][0]['surl'];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -229,9 +101,6 @@ class UrlsController extends ControllerBase{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//输出结果
|
//输出结果
|
||||||
echo json_encode($rs, JSON_UNESCAPED_UNICODE);
|
echo json_encode($rs, JSON_UNESCAPED_UNICODE);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user