From c8ff4c4dfc0d0d43ab07652c4c501e812b5a4ab3 Mon Sep 17 00:00:00 2001 From: qinzongqing Date: Tue, 11 Apr 2023 15:10:31 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A4=87=E4=BB=BD=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/Oauth2Controller.php | 9 ++++- app/controllers/SmsController.php | 50 +++++++++++++++++++++++++--- 2 files changed, 53 insertions(+), 6 deletions(-) diff --git a/app/controllers/Oauth2Controller.php b/app/controllers/Oauth2Controller.php index 6f7a07e..4b6c040 100644 --- a/app/controllers/Oauth2Controller.php +++ b/app/controllers/Oauth2Controller.php @@ -388,8 +388,15 @@ class Oauth2Controller extends ControllerBase{ //如果当前接口过去有生成过access_token else{ //准备更新AccessToken - $AccessToken->PrevAccessToken = $AccessToken->AccessToken; $AccessToken->LastModifiedTime = $current_datetime; + //如果前access_token已过期 + if($current_datetime>$AccessToken->ExpireTime){ + $AccessToken->PrevAccessToken = null; + } + //如果前access_token未过期 + else{ + $AccessToken->PrevAccessToken = $AccessToken->AccessToken; + } } //其他字段 $AccessToken->AccessToken = $access_token = $this->_get_act_code(32); diff --git a/app/controllers/SmsController.php b/app/controllers/SmsController.php index 33ebf2b..0b6f58c 100644 --- a/app/controllers/SmsController.php +++ b/app/controllers/SmsController.php @@ -20,8 +20,8 @@ class SmsController extends ControllerBase{ $url = "http://wxapp.wemediacn.com/smsoauth2_qa/api/sms/send"; //$url = "http://127.0.0.1/tiffany/api/sms/send?qaz=wsx"; $post_arr = array(); - $post_arr['appid'] = "0e355010-67b9-4aa6-a53f-c92c972094a7"; - $post_arr['access_token'] = "4ff40da297e143ed83f45b8499f64300"; + $post_arr['appid'] = "4fb8f3fa-30b4-4814-86d5-f2ea36a9b62a"; + $post_arr['access_token'] = "be4f6d1d08af434f933b1bbf6dbc02d2"; $post_arr['mobile'] = "999"; $post_arr['content'] = "test"; $post_arr['format'] = "555"; @@ -162,9 +162,49 @@ class SmsController extends ControllerBase{ } //如果更新成功 else{ - //{"errmsg":"accesstoken 不正确,err detail:找不到accesstoken信息","errcode":40039,"data":null} - //{"errmsg":"发送失败,err detail:短信发送失败:ERROR:200:[非手机号码]","errcode":70000,"data":null} - //{"errmsg":"发送失败,err detail:短信发送失败:ERROR:108:[FormatID 非法数值]","errcode":70000,"data":null} + //准备判断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; + } + } + //如果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'])){ + //{"errmsg":"发送失败,err detail:短信发送失败:ERROR:200:[非手机号码]","errcode":70000,"data":null} + //{"errmsg":"发送失败,err detail:短信发送失败:ERROR:108:[FormatID 非法数值]","errcode":70000,"data":null} + } + } } } }