ABXCDN-API简介
假设用户的 SecretId 和 SecretKey 分别是:
参数名称 | 数据类型 | 是否必选 | 参数说明 |
---|---|---|---|
Authorization | string | 是 | 该参数是Signature 的结构体。 |
参数名称 | 数据类型 | 是否必选 | 参数说明 | 示例值 |
---|---|---|---|---|
Id | string | 是 | 您的SecretId | LCA029E******T06JN888 |
Algorithm | string | 是 | 哈希签名方法 | 固定值:hmac-sha1 |
Date | string | 是 | 当前格林威治时间(GMT)格式 | Mon, 13 Mar 2023 08:33:00 GMT |
Version | string | 是 | API版本 | 固定值:2.0 |
Signature | string | 是 | 哈希二进制签名后并base64编码得到的签名串 | 见下述 |
Space | string | 是 | 自定义值,认证成功后会原样带回的base64编码 | VGVzdA== 可不填为空 |
Id
,Algorithm
,Date
,Version
;并使用密钥SecretKey
参与编码得到的值。注意
正确示例:Id="", Algorithm=""
错误示例:Id="",Algorithm=""
Space参数为自定义值,成功响应后会原样带回,传递时必须进行base64编码。
提示
$ApiUrl = 'https://api.dnss.vip/'; //接口地址
$Version = '2.0'; //版本号,固定值,目前为2.0
$HttpMethod = 'GET'; //请求方法
$Action = 'GetUserToken'; //需要调用的接口
$SecretId = 'LCA029E******T06JN888'; //您的SecretId
$SecretKey = 'LCK0UJ6******3IJR6AR6'; //您的SecretKey
$Space = base64_encode('Test'); //自定义值,该参数在成功授权后,响应时会原样带回,必须base64编码
$DateTime = gmdate('D, d M Y H:i:s T'); //格林威治时间(GMT)格式
$Authen = 'hmac Id="'.$SecretId.'", Algorithm="hmac-sha1", Date="'.$DateTime.'", Version="'.$Version.'"'; //拼接签名串
$Signature = base64_encode(hash_hmac('sha1', $Authen, $SecretKey, true)); //使用SecretKey对签名串进行哈希二进制签名
$Authorization = $Authen.', Signature="'.$Signature.'", Space="'.$Space.'"'; //拼接Authorization值
$Headers = array( //将Authorization放到Header请求头
"Authorization: {$Authorization}"
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $ApiUrl.$Action);
curl_setopt($ch, CURLOPT_HTTPHEADER, $Headers); //设置Header请求头
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $HttpMethod);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
$Result = curl_exec($ch);
curl_close($ch);
var_dump(json_decode($Result, true)); //得到认证信息
修改于 2024-11-15 13:45:25