API 通用说明

请求域名

https://uni.apistd.com

公共参数

公共参数为调用 API 请求时必须携带的参数,统一使用 URL Query 参数传输。

参数名类型是否必填描述示例值
actionstring接口名sms.message.send
accessKeyIdstring请求 AccessKey IDrQJEk4mz6gZzTC9X8XHfpQ1Vt

访问鉴权

UniSMS 提供以下两种鉴权方式共开发者选择,可在控制台-凭证管理中设置,默认为简易模式。

  • 简易模式 [默认]:此模式仅核验 AccessKey ID,不对请求参数进行验签,方便开发者快速接入。
  • HMAC模式:此模式要求使用 AccessKey Secret 对请求参数进行验签,以加强保障请求的安全与真实性。

简易模式

使用简易模式完成访问认证,仅需将从控制台-凭证管理中获得 AccessKey ID 值传入 URL Query 参数 accessKeyId 即可完成鉴权。

HMAC模式

使用 HMAC 模式完成访问认证,需将所有 URL Query 参数按字典顺序排列作为待签文本串,并根据指定签名哈希算法进行签名。

新增所须公共参数 (Query) 如下:

参数名类型是否必填描述示例值
algorithmstring签名哈希算法,目前仅支持 hmac-sha256hmac-sha256
timestampnumber时间戳 (ms),接受容差时间 10 分钟1620243278785
noncestring随机字符串,接受 8-64 个字符间的随机字符串d7041f4746a09b10
signaturestring签名串xvv9UjzOrQFWe7fFS5IUU9iqIZrncvF093SqXsnfcK8=

签名生成步骤

  1. 提取请求中所有 URL Query 参数对,根据参数 Key 按字典顺序排序 (正序),以=连接 Key-Value,以&连接参数对组成待签文本串,示例如下:

    accessKeyId=rQJEk4mz6gZzTC9X8XHfpQ1Vt&action=sms.message.send&algorithm=hmac-sha256&nonce=d7041f4746a09b10&timestamp=1620269782258
  2. 使用 HmacSHA256 算法,以 AccessKey ID 对应的 AccessKey Secret 作为签名秘钥,对待签文本串生成签名,输出为 Base64 (或 Hex) 字符串,示例如下:

    xvv9UjzOrQFWe7fFS5IUU9iqIZrncvF093SqXsnfcK8=
  3. 将签名串作为 signature 的值增加到请求 URL Query 参数中发送请求,最终完整的请求 URL 示例如下:

    https://uni.apistd.com/?action=sms.message.send&accessKeyId=rQJEk4mz6gZzTC9X8XHfpQ1Vt&algorithm=hmac-sha256&timestamp=1620269782258&nonce=d7041f4746a09b10&signature=xvv9UjzOrQFWe7fFS5IUU9iqIZrncvF093SqXsnfcK8%3D