API 通用说明
请求域名
https://uni.apistd.com
公共参数
公共参数为调用 API 请求时必须携带的参数,统一使用 URL Query 参数传输。
参数名 | 类型 | 是否必填 | 描述 | 示例值 |
---|---|---|---|---|
action | string | 是 | 接口名 | sms.message.send |
accessKeyId | string | 是 | 请求 AccessKey ID | rQJEk4mz6gZzTC9X8XHfpQ1Vt |
访问鉴权
UniSMS 提供以下两种鉴权方式共开发者选择,可在控制台-凭证管理中设置,默认为简易模式。
- 简易模式 [默认]:此模式仅核验
AccessKey ID
,不对请求参数进行验签,方便开发者快速接入。 - HMAC模式:此模式要求使用
AccessKey Secret
对请求参数进行验签,以加强保障请求的安全与真实性。
简易模式
使用简易模式完成访问认证,仅需将从控制台-凭证管理中获得 AccessKey ID
值传入 URL Query 参数 accessKeyId
即可完成鉴权。
HMAC模式
使用 HMAC 模式完成访问认证,需将所有 URL Query 参数按字典顺序排列作为待签文本串,并根据指定签名哈希算法进行签名。
新增所须公共参数 (Query) 如下:
参数名 | 类型 | 是否必填 | 描述 | 示例值 |
---|---|---|---|---|
algorithm | string | 是 | 签名哈希算法,目前仅支持 hmac-sha256 | hmac-sha256 |
timestamp | number | 是 | 时间戳 (ms),接受容差时间 10 分钟 | 1620243278785 |
nonce | string | 是 | 随机字符串,接受 8-64 个字符间的随机字符串 | d7041f4746a09b10 |
signature | string | 是 | 签名串 | xvv9UjzOrQFWe7fFS5IUU9iqIZrncvF093SqXsnfcK8= |
签名生成步骤
提取请求中所有 URL Query 参数对,根据参数 Key 按字典顺序排序 (正序),以
=
连接 Key-Value,以&
连接参数对组成待签文本串,示例如下:accessKeyId=rQJEk4mz6gZzTC9X8XHfpQ1Vt&action=sms.message.send&algorithm=hmac-sha256&nonce=d7041f4746a09b10×tamp=1620269782258
使用
HmacSHA256
算法,以AccessKey ID
对应的AccessKey Secret
作为签名秘钥,对待签文本串生成签名,输出为 Base64 (或 Hex) 字符串,示例如下:xvv9UjzOrQFWe7fFS5IUU9iqIZrncvF093SqXsnfcK8=
将签名串作为
signature
的值增加到请求 URL Query 参数中发送请求,最终完整的请求 URL 示例如下:https://uni.apistd.com/?action=sms.message.send&accessKeyId=rQJEk4mz6gZzTC9X8XHfpQ1Vt&algorithm=hmac-sha256×tamp=1620269782258&nonce=d7041f4746a09b10&signature=xvv9UjzOrQFWe7fFS5IUU9iqIZrncvF093SqXsnfcK8%3D