提交进度

This commit is contained in:
qinzongqing 2023-04-13 18:52:40 +08:00
parent 2aafb6fe2c
commit dd317a4246
2 changed files with 216 additions and 183 deletions

View File

@ -19,12 +19,12 @@ class Oauth2Controller extends ControllerBase{
function testAction(){
//$url = "http://wxapp.wemediacn.com/smsoauth2_qa/api/oauth2/code";
//$url = "http://127.0.0.1/tiffany/api/oauth2/code?qaz=wsx";
//$url = "http://wxapp.wemediacn.com/smsoauth2_qa/api/oauth2/accesstoken";
$url = "http://127.0.0.1/tiffany/api/oauth2/accesstoken?qaz=wsx";
$url = "http://wxapp.wemediacn.com/smsoauth2_qa/api/oauth2/accesstoken";
//$url = "http://127.0.0.1/tiffany/api/oauth2/accesstoken?qaz=wsx";
$post_arr = array();
$post_arr['appid'] = "0e355010-67b9-4aa6-a53f-c92c972094a7";
$post_arr['appsecrect'] = "b82015bd-8d4c-4df8-87a8-c25477a8976f";
$post_arr['code'] = "ua0mqjhsbdp8i4xt5ekwg2zn1693yc7f";
$post_arr['code'] = "0807571e456241fcac19c836ed4fd9f7";
$post_json = json_encode($post_arr);
$result = $this->__http_post_request($url, $post_json, true);
print_r($result); die;
@ -38,7 +38,7 @@ class Oauth2Controller extends ControllerBase{
function codeAction(){
//如果未获取到请求数据
if(empty(file_get_contents("php://input"))){
//告知用户系统繁忙,请稍候再试
//告知用户"系统繁忙,请稍候再试"
$rs['errmsg'] = "系统繁忙,请稍候再试";
$rs['errcode'] = -1;
$rs['data'] = null;
@ -49,7 +49,7 @@ class Oauth2Controller extends ControllerBase{
$request_arr = json_decode(file_get_contents("php://input"), true);
//如果请求数据整体为空
if(empty($request_arr)){
//告知用户系统繁忙,请稍候再试
//告知用户"系统繁忙,请稍候再试"
$rs['errmsg'] = "系统繁忙,请稍候再试";
$rs['errcode'] = -1;
$rs['data'] = null;
@ -60,12 +60,12 @@ class Oauth2Controller extends ControllerBase{
$rs['errmsg'] = "";
//如果未获取到appid
if(empty($request_arr['appid'])){
//告知用户appid is empty;
//告知用户"appid is empty;"
$rs['errmsg'].= "appid is empty;";
}
//如果以上判断未通过
if(!empty($rs['errmsg'])){
//告知用户参数错误 error detail:
//告知用户"参数错误 error detail:".$rs['errmsg']
$rs['errmsg'] = "参数错误 error detail:".$rs['errmsg'];
$rs['errcode'] = 61451;
$rs['data'] = null;
@ -78,7 +78,7 @@ class Oauth2Controller extends ControllerBase{
$AppInfo = AppInfo::findFirst("AppId = '$appid' AND Enable = 0");
//如果未查询到接口信息
if(empty($AppInfo)){
//告知用户找不到app配置信息,appid无效,err detail:找不到app配置信息
//告知用户"找不到app配置信息,appid无效,err detail:找不到app配置信息"
$rs['errmsg'] = "找不到app配置信息,appid无效,err detail:找不到app配置信息";
$rs['errcode'] = 40036;
$rs['data'] = null;
@ -100,7 +100,7 @@ class Oauth2Controller extends ControllerBase{
if($last_req_date==$current_date){
//如果当天请求次数已达到接口请求次数限制
if($today_req_times>=$day_max_req_times){
//告知用户request today reached the request limit,err detail:超过请求上限限制
//告知用户"request today reached the request limit,err detail:超过请求上限限制"
$rs['errmsg'] = "request today reached the request limit,err detail:超过请求上限限制";
$rs['errcode'] = 80102;
$rs['data'] = null;
@ -115,7 +115,7 @@ class Oauth2Controller extends ControllerBase{
else{
//如果接口请求次数限制不大于0
if($day_max_req_times<=0){
//告知用户request today reached the request limit,err detail:超过请求上限限制
//告知用户"request today reached the request limit,err detail:超过请求上限限制"
$rs['errmsg'] = "request today reached the request limit,err detail:超过请求上限限制";
$rs['errcode'] = 80102;
$rs['data'] = null;
@ -135,7 +135,7 @@ class Oauth2Controller extends ControllerBase{
$AppInfo->LastReqTime = $current_date;
//如果更新失败
if(!($AppInfo->save())){
//告知用户系统繁忙,请稍候再试
//告知用户"系统繁忙,请稍候再试"
$rs['errmsg'] = "系统繁忙,请稍候再试";
$rs['errcode'] = -1;
$rs['data'] = null;
@ -163,14 +163,14 @@ class Oauth2Controller extends ControllerBase{
$TempCode->ExpireTime = date("Y-m-d H:i:s", $current_time+300);
//如果保存失败
if(!($TempCode->save())){
//告知用户系统繁忙,请稍候再试
//告知用户"系统繁忙,请稍候再试"
$rs['errmsg'] = "系统繁忙,请稍候再试";
$rs['errcode'] = -1;
$rs['data'] = null;
}
//如果保存成功
else{
//告知用户ok
//告知用户"ok"
$rs['errmsg'] = "ok";
$rs['errcode'] = 0;
$rs['data']['code'] = $code;
@ -193,7 +193,7 @@ class Oauth2Controller extends ControllerBase{
function accesstokenAction(){
//如果未获取到请求数据
if(empty(file_get_contents("php://input"))){
//告知用户系统繁忙,请稍候再试
//告知用户"系统繁忙,请稍候再试"
$rs['errmsg'] = "系统繁忙,请稍候再试";
$rs['errcode'] = -1;
$rs['data'] = null;
@ -204,7 +204,7 @@ class Oauth2Controller extends ControllerBase{
$request_arr = json_decode(file_get_contents("php://input"), true);
//如果请求数据整体为空
if(empty($request_arr)){
//告知用户系统繁忙,请稍候再试
//告知用户"系统繁忙,请稍候再试"
$rs['errmsg'] = "系统繁忙,请稍候再试";
$rs['errcode'] = -1;
$rs['data'] = null;
@ -218,22 +218,22 @@ class Oauth2Controller extends ControllerBase{
$rs['errmsg'] = "";
//如果未获取到appid
if(empty($request_arr['appid'])){
//告知用户appid is empty;
//告知用户"appid is empty;"
$rs['errmsg'].= "appid is empty;";
}
//如果未获取到appsecrect
if(empty($request_arr['appsecrect'])){
//告知用户appsecrect is empty;
//告知用户"appsecrect is empty;"
$rs['errmsg'].= "appsecrect is empty;";
}
//如果未获取到code
if(empty($request_arr['code'])){
//告知用户code is empty;
//告知用户"code is empty;"
$rs['errmsg'].= "code is empty;";
}
//如果以上判断未通过
if(!empty($rs['errmsg'])){
//告知用户参数错误 error detail:
//告知用户"参数错误 error detail:".$rs['errmsg']
$rs['errmsg'] = "参数错误 error detail:".$rs['errmsg'];
$rs['errcode'] = 61451;
$rs['data'] = null;
@ -246,7 +246,7 @@ class Oauth2Controller extends ControllerBase{
$AppInfo = AppInfo::findFirst("AppId = '$appid' AND Enable = 0");
//如果未查询到接口信息
if(empty($AppInfo)){
//告知用户找不到app配置信息,appid无效,err detail:找不到app配置信息
//告知用户"找不到app配置信息,appid无效,err detail:找不到app配置信息"
$rs['errmsg'] = "找不到app配置信息,appid无效,err detail:找不到app配置信息";
$rs['errcode'] = 40036;
$rs['data'] = null;
@ -268,7 +268,7 @@ class Oauth2Controller extends ControllerBase{
if($last_req_date==$current_date){
//如果当天请求次数已达到接口请求次数限制
if($today_req_times>=$day_max_req_times){
//告知用户request today reached the request limit,err detail:超过请求上限限制
//告知用户"request today reached the request limit,err detail:超过请求上限限制"
$rs['errmsg'] = "request today reached the request limit,err detail:超过请求上限限制";
$rs['errcode'] = 80102;
$rs['data'] = null;
@ -283,7 +283,7 @@ class Oauth2Controller extends ControllerBase{
else{
//如果接口请求次数限制不大于0
if($day_max_req_times<=0){
//告知用户request today reached the request limit,err detail:超过请求上限限制
//告知用户"request today reached the request limit,err detail:超过请求上限限制"
$rs['errmsg'] = "request today reached the request limit,err detail:超过请求上限限制";
$rs['errcode'] = 80102;
$rs['data'] = null;
@ -303,7 +303,7 @@ class Oauth2Controller extends ControllerBase{
$AppInfo->LastReqTime = $current_date;
//如果更新失败
if(!($AppInfo->save())){
//告知用户系统繁忙,请稍候再试
//告知用户"系统繁忙,请稍候再试"
$rs['errmsg'] = "系统繁忙,请稍候再试";
$rs['errcode'] = -1;
$rs['data'] = null;
@ -314,7 +314,7 @@ class Oauth2Controller extends ControllerBase{
$appsecrect = $request_arr['appsecrect'];
//如果appsecrect不匹配
if($appsecrect!=$AppInfo->AppSecret){
//告知用户密钥不匹配,err detail:密钥不匹配
//告知用户"密钥不匹配,err detail:密钥不匹配"
$rs['errmsg'] = "密钥不匹配,err detail:密钥不匹配";
$rs['errcode'] = 40037;
$rs['data'] = null;
@ -327,7 +327,7 @@ class Oauth2Controller extends ControllerBase{
$TempCode = TempCode::findFirst("AppId = '$appid' AND Code = '$code'");
//如果未查询到临时code
if(empty($TempCode)){
//告知用户code 不正确,err detail:code 不匹配
//告知用户"code 不正确,err detail:code 不匹配"
$rs['errmsg'] = "code 不正确,err detail:code 不匹配";
$rs['errcode'] = 40038;
$rs['data'] = null;
@ -338,7 +338,7 @@ class Oauth2Controller extends ControllerBase{
$expire_time = $TempCode->ExpireTime;
//如果code已失效
if($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['errcode'] = 80103;
$rs['data'] = null;
@ -349,7 +349,7 @@ class Oauth2Controller extends ControllerBase{
$is_used = $TempCode->IsUsed;
//如果code已使用过
if(!empty($is_used)){
//告知用户
//告知用户"authorize code is used,err detail:code已使用"
$rs['errmsg'] = "authorize code is used,err detail:code已使用";
$rs['errcode'] = 80104;
$rs['data'] = null;
@ -366,7 +366,7 @@ class Oauth2Controller extends ControllerBase{
if(!($TempCode->save())){
//回滚事务
$this->db->rollback();
//告知用户系统繁忙,请稍候再试
//告知用户"系统繁忙,请稍候再试"
$rs['errmsg'] = "系统繁忙,请稍候再试";
$rs['errcode'] = -1;
$rs['data'] = null;
@ -405,7 +405,7 @@ class Oauth2Controller extends ControllerBase{
if(!($AccessToken->save())){
//回滚事务
$this->db->rollback();
//告知用户系统繁忙,请稍候再试
//告知用户"系统繁忙,请稍候再试"
$rs['errmsg'] = "系统繁忙,请稍候再试";
$rs['errcode'] = -1;
$rs['data'] = null;
@ -414,7 +414,7 @@ class Oauth2Controller extends ControllerBase{
else{
//执行事务
$this->db->commit();
//告知用户ok
//告知用户"ok"
$rs['errmsg'] = "ok";
$rs['errcode'] = 0;
$rs['data']['access_token'] = $access_token;

View File

@ -19,19 +19,19 @@ class SmsController extends ControllerBase{
function testAction(){
//$url = "http://wxapp.wemediacn.com/smsoauth2_qa/api/sms/send";
//$url = "http://127.0.0.1/tiffany/api/sms/send?qaz=wsx";
//$url = "http://wxapp.wemediacn.com/smsoauth2_qa/api/sms/authcode";
$url = "http://wxapp.wemediacn.com/smsoauth2_qa/api/sms/authcode";
//$url = "http://127.0.0.1/tiffany/api/sms/authcode?qaz=wsx";
$url = "http://wxapp.wemediacn.com/smsoauth2_qa/api/sms/query_reports";
//$url = "http://wxapp.wemediacn.com/smsoauth2_qa/api/sms/query_reports";
//$url = "http://127.0.0.1/tiffany/api/sms/query_reports?qaz=wsx";
$post_arr = array();
$post_arr['appid'] = "";
$post_arr['mobile'] = "";
$post_arr['access_token'] = "";
$post_arr['appid'] = "0e355010-67b9-4aa6-a53f-c92c972094a7";
$post_arr['mobile'] = "13501882318";
$post_arr['access_token'] = "71ebca94ab954d67a57af759424a94e1";
$post_arr['content'] = "";
$post_arr['format'] = "";
$post_arr['len'] = "";
$post_arr['type'] = "";
$post_arr['is_resend'] = "";
$post_arr['len'] = -1;
$post_arr['type'] = -1;
$post_arr['is_resend'] = true;
$post_arr['min_id'] = "";
$post_json = json_encode($post_arr);
$result = $this->__http_post_request($url, $post_json, true);
@ -51,7 +51,7 @@ class SmsController extends ControllerBase{
}
//如果未获取到请求数据
elseif(empty(file_get_contents("php://input"))){
//告知用户系统繁忙,请稍候再试
//告知用户"系统繁忙,请稍候再试"
$rs['errcode'] = -1;
$rs['errmsg'] = "系统繁忙,请稍候再试";
$rs['data'] = null;
@ -62,7 +62,7 @@ class SmsController extends ControllerBase{
$request_arr = json_decode(file_get_contents("php://input"), true);
//如果请求数据整体为空
if(empty($request_arr)){
//告知用户系统繁忙,请稍候再试
//告知用户"系统繁忙,请稍候再试"
$rs['errmsg'] = "系统繁忙,请稍候再试";
$rs['errcode'] = -1;
$rs['data'] = null;
@ -73,27 +73,27 @@ class SmsController extends ControllerBase{
$rs['errmsg'] = "";
//如果未获取到appid
if(empty($request_arr['appid'])){
//告知用户appid is empty;
//告知用户"appid is empty;"
$rs['errmsg'].= "appid is empty;";
}
//如果未获取到手机号
if(empty($request_arr['mobile'])){
//告知用户mobile is empty;
//告知用户"mobile is empty;"
$rs['errmsg'].= "mobile is empty;";
}
//如果未获取到access_token
if(empty($request_arr['access_token'])){
//告知用户access_token is empty;
//告知用户"access_token is empty;"
$rs['errmsg'].= "access_token is empty;";
}
//如果未获取到短信内容
if(empty($request_arr['content'])){
//告知用户content is empty;
//告知用户"content is empty;"
$rs['errmsg'].= "content is empty;";
}
//如果以上判断未通过
if(!empty($rs['errmsg'])){
//告知用户参数错误 error detail:
//告知用户"参数错误 error detail:".$rs['errmsg']
$rs['errmsg'] = "参数错误 error detail:".$rs['errmsg'];
$rs['errcode'] = 61451;
$rs['data'] = null;
@ -106,7 +106,7 @@ class SmsController extends ControllerBase{
$AppInfo = AppInfo::findFirst("AppId = '$appid' AND Enable = 0");
//如果未查询到接口信息
if(empty($AppInfo)){
//告知用户找不到app配置信息,appid无效,err detail:找不到app配置信息
//告知用户"找不到app配置信息,appid无效,err detail:找不到app配置信息"
$rs['errmsg'] = "找不到app配置信息,appid无效,err detail:找不到app配置信息";
$rs['errcode'] = 40036;
$rs['data'] = null;
@ -128,7 +128,7 @@ class SmsController extends ControllerBase{
if($last_req_date==$current_date){
//如果当天请求次数已达到接口请求次数限制
if($today_req_times>=$day_max_req_times){
//告知用户request today reached the request limit,err detail:超过请求上限限制
//告知用户"request today reached the request limit,err detail:超过请求上限限制"
$rs['errmsg'] = "request today reached the request limit,err detail:超过请求上限限制";
$rs['errcode'] = 80102;
$rs['data'] = null;
@ -143,7 +143,7 @@ class SmsController extends ControllerBase{
else{
//如果接口请求次数限制不大于0
if($day_max_req_times<=0){
//告知用户request today reached the request limit,err detail:超过请求上限限制
//告知用户"request today reached the request limit,err detail:超过请求上限限制"
$rs['errmsg'] = "request today reached the request limit,err detail:超过请求上限限制";
$rs['errcode'] = 80102;
$rs['data'] = null;
@ -163,7 +163,7 @@ class SmsController extends ControllerBase{
$AppInfo->LastReqTime = $current_date;
//如果更新失败
if(!($AppInfo->save())){
//告知用户系统繁忙,请稍候再试
//告知用户"系统繁忙,请稍候再试"
$rs['errmsg'] = "系统繁忙,请稍候再试";
$rs['errcode'] = -1;
$rs['data'] = null;
@ -176,7 +176,7 @@ class SmsController extends ControllerBase{
$AccessToken = AccessToken::findFirst("AppId = '$appid' AND (AccessToken = '$access_token' OR PrevAccessToken = '$access_token')");
//如果未查询到接口信息
if(empty($AccessToken)){
//告知用户accesstoken 不正确,err detail:找不到accesstoken信息
//告知用户"accesstoken 不正确,err detail:找不到accesstoken信息"
$rs['errmsg'] = "accesstoken 不正确,err detail:找不到accesstoken信息";
$rs['errcode'] = 40039;
$rs['data'] = null;
@ -190,8 +190,11 @@ class SmsController extends ControllerBase{
//如果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 已过期
//告知用户"access_token is expired,err detail:accesstoken 已过期"
$rs['errmsg'] = "access_token is expired,err detail:accesstoken 已过期";
$rs['errcode'] = 80105;
$rs['data'] = null;
@ -201,7 +204,7 @@ class SmsController extends ControllerBase{
else{
//如果现access_token已过期
if($current_datetime>$ExpireTime){
//告知用户access_token is expired,err detail:accesstoken 已过期
//告知用户"access_token is expired,err detail:accesstoken 已过期"
$rs['errmsg'] = "access_token is expired,err detail:accesstoken 已过期";
$rs['errcode'] = 80105;
$rs['data'] = null;
@ -228,7 +231,7 @@ class SmsController extends ControllerBase{
$string = !empty($array[0])?$array[0]:"";
//如果发送失败
if(!(strpos(strtolower($xml), "ok")!==false)){
//告知用户发送失败,err detail:短信发送失败:
//告知用户"发送失败,err detail:短信发送失败:".$string
//ERROR:200:[非手机号码]
//ERROR:108:[FormatID 非法数值]
$rs['errmsg'] = "发送失败,err detail:短信发送失败:".$string;
@ -240,7 +243,7 @@ class SmsController extends ControllerBase{
//获取messageid
//OK:[202304121675878871004778]
$messageid = str_replace("]", "", str_replace("OK:[", "", $string));
//告知用户ok
//告知用户"ok"
$rs['errmsg'] = "ok";
$rs['errcode'] = 0;
$rs['data']['messageid'] = $messageid;
@ -270,7 +273,7 @@ class SmsController extends ControllerBase{
}
//如果未获取到请求数据
elseif(empty(file_get_contents("php://input"))){
//告知用户系统繁忙,请稍候再试
//告知用户"系统繁忙,请稍候再试"
$rs['errcode'] = -1;
$rs['errmsg'] = "系统繁忙,请稍候再试";
$rs['data'] = null;
@ -281,7 +284,7 @@ class SmsController extends ControllerBase{
$request_arr = json_decode(file_get_contents("php://input"), true);
//如果请求数据整体为空
if(empty($request_arr)){
//告知用户系统繁忙,请稍候再试
//告知用户"系统繁忙,请稍候再试"
$rs['errmsg'] = "系统繁忙,请稍候再试";
$rs['errcode'] = -1;
$rs['data'] = null;
@ -292,151 +295,178 @@ class SmsController extends ControllerBase{
$rs['errmsg'] = "";
//如果未获取到appid
if(empty($request_arr['appid'])){
//告知用户appid is empty;
//告知用户"appid is empty;"
$rs['errmsg'].= "appid is empty;";
}
//如果未获取到手机号
if(empty($request_arr['mobile'])){
//告知用户mobile is empty;
//告知用户"mobile is empty;"
$rs['errmsg'].= "mobile is empty;";
}
//如果未获取到access_token
if(empty($request_arr['access_token'])){
//告知用户access_token is empty;
//告知用户"access_token is empty;"
$rs['errmsg'].= "access_token is empty;";
}
//如果以上判断未通过
if(!empty($rs['errmsg'])){
//告知用户参数错误 error detail:
//告知用户"参数错误 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;
//获取验证码长度
//注意:
//原代码逻辑中验证码长度小于等于0则取默认值4
//此处先遵循原代码逻辑,而不按照文档限制判断
$len = !empty($request_arr['len'])?$request_arr['len']:4;
$len = (int)$len;
$len = $len>0?$len:4;
//如果验证码长度小于2或大于10
//注意:
//原代码逻辑中验证码长度为大于等于1而小于等于9
//此处则先遵循文档,而不按照原代码逻辑限制判断
if($len<2 || $len>10){
//告知用户"参数错误 error detail:"
$rs['errmsg'] = "参数错误 error detail:";
$rs['errcode'] = 61451;
$rs['data'] = null;
}
//如果有查询到接口信息
//如果验证码长度大于等于2且小于等于10
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;
}
//获取验证码类型1 纯数字 2 字母加数字
//注意:
//原代码逻辑中验证码类型小于等于0则取默认值1
//此处先遵循原代码逻辑,而不按照文档限制判断
$type = !empty($request_arr['type'])?$request_arr['type']:1;
$type = (int)$type;
$type = $type>0?$type:1;
//如果验证码类型不是1或2
if($type!=1 && $type!=2){
//告知用户"参数错误 error detail:"
$rs['errmsg'] = "参数错误 error detail:";
$rs['errcode'] = 61451;
$rs['data'] = null;
}
//如果上次请求日期不是当天日期
//如果验证码类型是1或2
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;
//准备判断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;
}
//如果接口请求次数限制大于0
//如果有查询到接口信息
else{
//初始当天请求次数
$today_req_times = 1;
}
}
//如果以上判断都通过
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{
//准备判断access_token是否有效
$access_token = $request_arr['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已过期
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;
}
//获取上次请求日期
$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;
}
//如果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;
//当天请求次数加一
$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 = $current_datetime;
//其他字段
$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'];
//查询接口信息
$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;
}
}
//如果以上判断都通过
if(empty($rs['errcode'])){
//获取短信内容
$content = !empty($request_arr['content'])?$request_arr['content']:"你的验证码是[$=yzm=$]";
$content = strpos($content, "[$=yzm=$]")!==false?$content:"你的验证码是[$=yzm=$]";
//获取验证码长度
$len = isset($request_arr['len'])?$request_arr['len']:4;
$len = (int)$len;
$len = $len>=2&&$len<=10?$len:4;
//获取验证码类型1 纯数字 2 字母加数字
$type = isset($request_arr['type'])?$request_arr['type']:1;
$type = (int)$type;
$type = in_array($type, array(1, 2))?$type:1;
//获取是否重发旧验证码
$is_resend = isset($request_arr['is_resend'])?$request_arr['is_resend']:false;
$is_resend = in_array($is_resend, array(true, false))?$is_resend:false;
//如果有查询到接口信息
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'])){
}
}
}
}
}
@ -461,7 +491,7 @@ class SmsController extends ControllerBase{
}
//如果未获取到请求数据
elseif(empty(file_get_contents("php://input"))){
//告知用户系统繁忙,请稍候再试
//告知用户"系统繁忙,请稍候再试"
$rs['errcode'] = -1;
$rs['errmsg'] = "系统繁忙,请稍候再试";
$rs['data'] = null;
@ -472,7 +502,7 @@ class SmsController extends ControllerBase{
$request_arr = json_decode(file_get_contents("php://input"), true);
//如果请求数据整体为空
if(empty($request_arr)){
//告知用户系统繁忙,请稍候再试
//告知用户"系统繁忙,请稍候再试"
$rs['errmsg'] = "系统繁忙,请稍候再试";
$rs['errcode'] = -1;
$rs['data'] = null;
@ -483,17 +513,17 @@ class SmsController extends ControllerBase{
$rs['errmsg'] = "";
//如果未获取到appid
if(empty($request_arr['appid'])){
//告知用户appid is empty;
//告知用户"appid is empty;"
$rs['errmsg'].= "appid is empty;";
}
//如果未获取到access_token
if(empty($request_arr['access_token'])){
//告知用户access_token is empty;
//告知用户"access_token is empty;"
$rs['errmsg'].= "access_token is empty;";
}
//如果以上判断未通过
if(!empty($rs['errmsg'])){
//告知用户参数错误 error detail:
//告知用户"参数错误 error detail:".$rs['errmsg']
$rs['errmsg'] = "参数错误 error detail:".$rs['errmsg'];
$rs['errcode'] = 61451;
$rs['data'] = null;
@ -506,7 +536,7 @@ class SmsController extends ControllerBase{
$AppInfo = AppInfo::findFirst("AppId = '$appid' AND Enable = 0");
//如果未查询到接口信息
if(empty($AppInfo)){
//告知用户找不到app配置信息,appid无效,err detail:找不到app配置信息
//告知用户"找不到app配置信息,appid无效,err detail:找不到app配置信息"
$rs['errmsg'] = "找不到app配置信息,appid无效,err detail:找不到app配置信息";
$rs['errcode'] = 40036;
$rs['data'] = null;
@ -528,7 +558,7 @@ class SmsController extends ControllerBase{
if($last_req_date==$current_date){
//如果当天请求次数已达到接口请求次数限制
if($today_req_times>=$day_max_req_times){
//告知用户request today reached the request limit,err detail:超过请求上限限制
//告知用户"request today reached the request limit,err detail:超过请求上限限制"
$rs['errmsg'] = "request today reached the request limit,err detail:超过请求上限限制";
$rs['errcode'] = 80102;
$rs['data'] = null;
@ -543,7 +573,7 @@ class SmsController extends ControllerBase{
else{
//如果接口请求次数限制不大于0
if($day_max_req_times<=0){
//告知用户request today reached the request limit,err detail:超过请求上限限制
//告知用户"request today reached the request limit,err detail:超过请求上限限制"
$rs['errmsg'] = "request today reached the request limit,err detail:超过请求上限限制";
$rs['errcode'] = 80102;
$rs['data'] = null;
@ -563,7 +593,7 @@ class SmsController extends ControllerBase{
$AppInfo->LastReqTime = $current_date;
//如果更新失败
if(!($AppInfo->save())){
//告知用户系统繁忙,请稍候再试
//告知用户"系统繁忙,请稍候再试"
$rs['errmsg'] = "系统繁忙,请稍候再试";
$rs['errcode'] = -1;
$rs['data'] = null;
@ -576,7 +606,7 @@ class SmsController extends ControllerBase{
$AccessToken = AccessToken::findFirst("AppId = '$appid' AND (AccessToken = '$access_token' OR PrevAccessToken = '$access_token')");
//如果未查询到接口信息
if(empty($AccessToken)){
//告知用户accesstoken 不正确,err detail:找不到accesstoken信息
//告知用户"accesstoken 不正确,err detail:找不到accesstoken信息"
$rs['errmsg'] = "accesstoken 不正确,err detail:找不到accesstoken信息";
$rs['errcode'] = 40039;
$rs['data'] = null;
@ -590,8 +620,11 @@ class SmsController extends ControllerBase{
//如果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 已过期
//告知用户"access_token is expired,err detail:accesstoken 已过期"
$rs['errmsg'] = "access_token is expired,err detail:accesstoken 已过期";
$rs['errcode'] = 80105;
$rs['data'] = null;
@ -601,7 +634,7 @@ class SmsController extends ControllerBase{
else{
//如果现access_token已过期
if($current_datetime>$ExpireTime){
//告知用户access_token is expired,err detail:accesstoken 已过期
//告知用户"access_token is expired,err detail:accesstoken 已过期"
$rs['errmsg'] = "access_token is expired,err detail:accesstoken 已过期";
$rs['errcode'] = 80105;
$rs['data'] = null;