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