帮助中心 > 通信 > API文档 > 调用方式 > 请求签名

请求签名

申请安全凭证

在第一次使用云 API 之前,请前往 AccessKey管理页面 申请安全凭证。 安全凭证包括 accessId 和 accessSecret

有了安全凭证 accessId 和 accessSecret 后,就可以生成签名串了。以下是生成签名串的详细过程:
假设用户的 accessId 和 accessSecret 分别是:

accessId: abcdefghijklmnop
accessSecret: 098a6bcd4621d383cade4e232627b4f9

注意:这里只是示例,请根据用户实际申请的 accessId 和 accessSecret 进行后续操作!

以发送短信请求为例,当用户调用这一接口时,其请求参数可能如下:

名称类型是否必填说明
accessIdstring密钥 ID
timestampstring当前时间戳
nonceint随机正整数
phonestring手机号码,多个手机号码用逗号(,)分隔
templateCodestring模板编号
templateVarsstring模板变量

1. 对参数排序

首先对所有请求参数按参数名的字典序( ASCII 码)升序排序。用户可以借助编程语言中的相关排序函数来实现这一功能,如 PHP 中的 ksort 函数。上述示例参数的排序结果如下:

{
    'accessId' : 'abcdefghijklmnop',
    'timestamp' : '1577774759',
    'nonce' : 15486598,
    'phone': '13800000000',
    'templateCode': '100001',
    'templateVars': '{"code":12345}',
}

使用其它程序设计语言开发时,可对上面示例中的参数进行排序,得到的结果一致即可。

2. 拼接请求字符串

示例的拼接结果为:

    accessId=abcdefghijklmnop&nonce=48693365&phone=18306689868&templateCode=100001&templateVars={"code":123123}&timestamp=1577412873

3.生成签名串

此步骤生成签名串。 首先使用 HMAC-SHA1 算法对上一步中获得的签名原文字符串进行签名,然后将生成的签名串使用 Base64 进行编码,即可获得最终的签名串。
具体代码如下,以 PHP 语言为例

$accessSecret = '098a6bcd4621d383cade4e232627b4f9';
$signStr = 'accessId=abcdefghijklmnop&nonce=48693365&phone=18306689868&templateCode=100001&templateVars={"code":123123}&timestamp=1577412873';
$signature = base64_encode(hash_hmac("sha1", $signStr, $accessSecret, true));
echo $signature;

最终得到的签名串为:

BWo2qLPno5s8ZT3jRAxeDFjNYqk=
免费拨打  400 100 2938 免费拨打 400 100 2938
24小时售后技术支持 24小时售后技术支持
返回顶部 返回顶部