47 lines
1.3 KiB
PHP
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);
|
|
}
|
|
|
|
}
|