From f60aa5235bae99789fc99d09f537e7f90c5a2a52 Mon Sep 17 00:00:00 2001 From: qinzongqing Date: Tue, 11 Apr 2023 10:58:25 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A1=A5=E8=B6=B3=E5=88=A4=E6=96=ADcode?= =?UTF-8?q?=E5=B7=B2=E4=BD=BF=E7=94=A8=E7=9A=84=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/Oauth2Controller.php | 78 ++++++++++++++++++---------- 1 file changed, 50 insertions(+), 28 deletions(-) diff --git a/app/controllers/Oauth2Controller.php b/app/controllers/Oauth2Controller.php index 472ddab..11e97f4 100644 --- a/app/controllers/Oauth2Controller.php +++ b/app/controllers/Oauth2Controller.php @@ -23,7 +23,7 @@ class Oauth2Controller extends ControllerBase{ $post_arr = array(); $post_arr['appid'] = "0e355010-67b9-4aa6-a53f-c92c972094a7"; $post_arr['appsecrect'] = "b82015bd-8d4c-4df8-87a8-c25477a8976f"; - $post_arr['code'] = "0db13957334c4244b03267b9ce9ccd7b"; + $post_arr['code'] = "j2407ptyalr6is31fc8ogez9quvxhmwd"; $post_json = json_encode($post_arr); $result = $this->__http_post_request($url, $post_json, true); print_r($result); die; @@ -325,29 +325,16 @@ class Oauth2Controller extends ControllerBase{ } //如果code未使用过 else{ - //查询当前接口过去是否有生成过access_token - $AccessToken = AccessToken::findFirst("AppId = '$appid'"); - //如果当前接口过去未生成过access_token - if(empty($AccessToken)){ - //准备新增AccessToken - $AccessToken = new AccessToken(); - $AccessToken->Id = $this->_get_act_code(32); - $AccessToken->AppId = $appid; - $AccessToken->PrevAccessToken = null; - $AccessToken->CreateTime = $current_datetime; - $AccessToken->LastModifiedTime = $current_datetime; - } - //如果当前接口过去有生成过access_token - else{ - //准备更新AccessToken - $AccessToken->PrevAccessToken = $AccessToken->AccessToken; - $AccessToken->LastModifiedTime = $current_datetime; - } + //开启事务 + $this->db->begin(); + //准备更新临时code + $TempCode->LastModifiedTime = $current_datetime; //其他字段 - $AccessToken->AccessToken = $access_token = $this->_get_act_code(32); - $AccessToken->ExpireTime = date("Y-m-d H:i:s", $current_time+14400); + $TempCode->IsUsed = 1; //如果保存失败 - if(!($AccessToken->save())){ + if(!($TempCode->save())){ + //回滚事务 + $this->db->rollback(); //告知用户系统繁忙,请稍候再试 $rs['errmsg'] = "系统繁忙,请稍候再试"; $rs['errcode'] = -1; @@ -355,12 +342,47 @@ class Oauth2Controller extends ControllerBase{ } //如果保存成功 else{ - //告知用户ok - $rs['errmsg'] = "ok"; - $rs['errcode'] = 0; - $rs['data']['access_token'] = $access_token; - $rs['data']['expire_in'] = 14400; - $rs['data']['refresh_token'] = null; + //查询当前接口过去是否有生成过access_token + $AccessToken = AccessToken::findFirst("AppId = '$appid'"); + //如果当前接口过去未生成过access_token + if(empty($AccessToken)){ + //准备新增AccessToken + $AccessToken = new AccessToken(); + $AccessToken->Id = $this->_get_act_code(32); + $AccessToken->AppId = $appid; + $AccessToken->PrevAccessToken = null; + $AccessToken->CreateTime = $current_datetime; + $AccessToken->LastModifiedTime = $current_datetime; + } + //如果当前接口过去有生成过access_token + else{ + //准备更新AccessToken + $AccessToken->PrevAccessToken = $AccessToken->AccessToken; + $AccessToken->LastModifiedTime = $current_datetime; + } + //其他字段 + $AccessToken->AccessToken = $access_token = $this->_get_act_code(32); + $AccessToken->ExpireTime = date("Y-m-d H:i:s", $current_time+14400); + //如果保存失败 + if(!($AccessToken->save())){ + //回滚事务 + $this->db->rollback(); + //告知用户系统繁忙,请稍候再试 + $rs['errmsg'] = "系统繁忙,请稍候再试"; + $rs['errcode'] = -1; + $rs['data'] = null; + } + //如果保存成功 + else{ + //执行事务 + $this->db->commit(); + //告知用户ok + $rs['errmsg'] = "ok"; + $rs['errcode'] = 0; + $rs['data']['access_token'] = $access_token; + $rs['data']['expire_in'] = 14400; + $rs['data']['refresh_token'] = null; + } } } }