game2006api/webapp/services/callback/common/SignatureService.php
aozhiwei ff8bc949bd 1
2023-07-14 20:38:49 +08:00

47 lines
1.3 KiB
PHP

<?php
namespace services;
use phpcommon\SqlHelper;
class SignatureService {
const ERRCODE_SIGN_ERROR = 2001;
public static function web3ServiceCheck()
{
$cbUuid = getReqVal('_cb_uuid', '');
$row = SqlHelper::ormSelectOne(
myself()->_getMarketMysql(),
't_callback',
array(
'cb_uuid' => $cbUuid
)
);
if (!$row) {
error_log('error sign1:' . json_encode($_REQUEST));
myself()-_rspErr(self::ERRCODE_SIGN_ERROR, 'not found cb info');
die();
}
$sign = self::normalMd5Sign($_REQUEST, $row['secret_key'], array('_sign'));
if ($sign != $row['signature']) {
error_log('error sign2:' . json_encode($_REQUEST));
myself()->_rspErr(self::ERRCODE_SIGN_ERROR, 'sign error');
die();
}
}
public static function normalMd5Sign($params, $secretKey, $excludeKeys){
ksort($params);
$paramsStr = '';
$connStr = '&';
foreach($params as $key => $val){
if (!in_array($key, $excludeKeys)) {
$paramsStr = $paramsStr . $key . '=' . $val . $connStr;
}
}
return md5($paramsStr . $secretKey);
}
}