From caa43d3504abb5dc9845a028d06bd8880d58a549 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Sat, 2 Apr 2022 15:31:57 +0800 Subject: [PATCH] 1 --- webapp/controller/MarketController.class.php | 48 ++++---------------- webapp/services/MarketService.php | 46 +++++++++++++++++++ 2 files changed, 56 insertions(+), 38 deletions(-) create mode 100644 webapp/services/MarketService.php diff --git a/webapp/controller/MarketController.class.php b/webapp/controller/MarketController.class.php index 7173722f..5608a8e0 100644 --- a/webapp/controller/MarketController.class.php +++ b/webapp/controller/MarketController.class.php @@ -12,12 +12,15 @@ require_once('models/BoxOrder.php'); require_once('models/Nft.php'); require_once('models/BuyRecord.php'); +require_once('services/MarketService.php'); + require_once('phpcommon/bchelper.php'); use phpcommon\SqlHelper; use models\BoxOrder; use models\Nft; use models\BuyRecord; +use services\MarketService; const CURRENCY_DECIMALS = 8; const PRICE_PAD = '0000000000'; @@ -27,8 +30,6 @@ const PRESALE_PREPARE = 1; const PRESALE_STARTED = 2; const PRESALE_SOLD_OUT = 3; -const TOKEN_SALT = 'B8E6BD4F-FD7B-E2B8-6688-80A2D8632064'; - class MarketController extends BaseController { private function isTestMode() @@ -202,7 +203,7 @@ class MarketController extends BaseController { $signature = getReqVal('signature', ''); $gameId = 2006; $funcId = 1; - if (!$this->isValidToken($buyerAddress, $token)) { + if (!MarketService::isValidToken($buyerAddress, $token)) { myself()->_rspErr(100, 'invalid token'); return; } @@ -328,7 +329,7 @@ class MarketController extends BaseController { $token = getReqVal('token', ''); $account = getReqVal('account', ''); $orderId = getReqVal('order_id', ''); - if (!$this->isValidToken($account, $token)) { + if (!MarketService::isValidToken($account, $token)) { myself()->_rspErr(100, 'invalid token'); return; } @@ -361,7 +362,7 @@ class MarketController extends BaseController { { $account = getReqVal('account', ''); $token = getReqVal('token', ''); - if (!$this->isValidToken($account, $token)) { + if (!MarketService::isValidToken($account, $token)) { myself()->_rspErr(100, 'invalid token'); return; } @@ -381,7 +382,7 @@ class MarketController extends BaseController { $account = getReqVal('account', ''); $token = getReqVal('token', ''); $tokenId = getReqVal('token_id', ''); - if (!$this->isValidToken($account, $token)) { + if (!MarketService::isValidToken($account, $token)) { myself()->_rspErr(100, 'invalid token'); return; } @@ -485,7 +486,7 @@ class MarketController extends BaseController { $token = getReqVal('token', ''); $nonce = uniqid() . '_' . myself()->_getNowTime(); myself()->_rspData(array( - 'state' => $this->isValidToken($account, $token) ? 1 : 0, + 'state' => MarketService::isValidToken($account, $token) ? 1 : 0, 'nonce' => $nonce, )); } @@ -494,7 +495,7 @@ class MarketController extends BaseController { { $account = getReqVal('account', ''); $token = getReqVal('token', ''); - if (!$this->isValidToken($account, $token)) { + if (!MarketService::isValidToken($account, $token)) { myself()->_rspErr(1, 'invalid token'); return; } @@ -544,7 +545,7 @@ class MarketController extends BaseController { return; } else { myself()->_rspData(array( - 'token' => $this->genToken($account, $nonce) + 'token' => MarketService::genToken($account, $nonce) )); } } @@ -564,33 +565,4 @@ class MarketController extends BaseController { return $web3ServiceCluster[rand() % count($web3ServiceCluster)]; } - private function genToken($account, $nonce) - { - $data = array( - 'account' => $account, - 'rand' => uniqid(), - 'nonce' => $nonce, - 'createtime' => myself()->_getNowTime(), - ); - $data['sign'] = md5(TOKEN_SALT . $data['account'] . $data['rand'] . $data['nonce'] . $data['createtime']); - return base64_encode(json_encode($data)); - } - - private function isValidToken($account, $token) - { - $deToken = base64_decode($token); - if (empty($deToken)) { - return false; - } - if (empty($account)) { - return false; - } - $data = json_decode($deToken, true); - $sign = md5(TOKEN_SALT . $data['account'] . $data['rand'] . $data['nonce'] . $data['createtime']); - if ($sign == $data['sign']) { - return phpcommon\isSameAddress($data['account'], $account); - } - return false; - } - } diff --git a/webapp/services/MarketService.php b/webapp/services/MarketService.php new file mode 100644 index 00000000..1a917206 --- /dev/null +++ b/webapp/services/MarketService.php @@ -0,0 +1,46 @@ + $account, + 'rand' => uniqid(), + 'nonce' => $nonce, + 'createtime' => myself()->_getNowTime(), + ); + $data['sign'] = md5(TOKEN_SALT . + $data['account'] . + $data['rand'] . + $data['nonce'] . + $data['createtime']); + return base64_encode(json_encode($data)); + } + +}