总结一下常见的 签名生成规则
每个 HTTP 请求中均需要携带以下的 HTTP 标头字段(HTTP Request Header)
默认名称 | 带 RC-前缀 | 类型 | 说明 |
|---|---|---|---|
App-Key | RC-App-Key | String | 后台分配的 App Key |
Nonce | RC-Nonce | String | 随机数,不超过 18 个字符 |
Timestamp | RC-Timestamp | String | 时间戳,从1970年1月1日0点0分0秒开始到现在的毫秒数 |
Signature | RC-Signature | String | 数据签名。您需要参考下文的签名计算方法生成该字段的值 |
将以下三个字符串按顺序(App Secret + Nonce + Timestamp)拼接成一个字符串,进行 SHA1 哈希计算。
以下是计算数据签名的 PHP 代码示例:
// 重置随机数种子。
srand((double)microtime()*1000000);
$appSecret = 'your-own-app-secret'; // App Secret
$nonce = rand(); // 获取随机数
$timestamp = time()*1000; // 获取时间戳(毫秒)
$signature = sha1($appSecret.$nonce.$timestamp);$appkey='abc';//双方约定的key,不参与http请求,只用于计算签名
$sign=112233;//请求带的签名
$params=[
'timestamp'=>time(),
'name'=>111,
];
$params['appkey']=$appkey;
ksort($params);//数组key以字典顺序排序
$str='';
foreach ($params as $key=>$value){
$str.=$value;
}
//生成签名
$sign2=md5($str);