Appearance
AK/SK 接口
AK/SK 方式兼容阿里云短信 API 的签名协议,支持 GET 和 POST,适合与现有阿里云兼容工具集成,或用于需要更严格签名校验的服务端环境。
请求方式判定
接口按以下优先级自动识别接入方式:
- 请求同时带
u、p、m、c参数:按 短信宝协议处理。 Version为2021-01-11,或请求头带X-TC-Action/X-TC-Version:按 腾讯云协议处理。- GET 请求且带
Action=SendSms参数:按 AK/SK 方式处理。 - POST 请求:按 AK/SK 方式处理。
- GET 请求但不带
Action参数:按 SysKey 方式处理。 - 其他请求方法:返回
405 MethodNotAllowed。
请求格式
http
POST /?AccessKeyId=xxx&Action=SendSms&PhoneNumbers=13800138000&SignName=签名&TemplateCode=模板ID&TemplateParam={"code":"123456"}&Signature=xxx参数说明
| 参数 | 必填 | 说明 |
|---|---|---|
AccessKeyId | 是 | 用户的 AccessKeyId。 |
Action | 是 | 固定为 SendSms。 |
PhoneNumbers | 是 | 手机号码。 |
SignName | 否 | 短信签名。可省略,系统自动按账户类型处理:会员可使用管理员配置的签名前缀,免费用户强制使用系统默认签名。 |
TemplateCode | 是 | 模板代码,直接使用阿里云模板 ID。特殊模板 SMS_500650100 只校验签名,不校验模板。 |
TemplateParam | 是 | 模板参数,JSON 格式字符串,必须是有效 JSON,否则返回 InvalidParameter。 |
Signature | 是 | 按照阿里云签名算法计算得到的签名。 |
提示
参与签名的参数还应包含阿里云协议要求的公共参数,如 Format、RegionId、SignatureMethod、SignatureNonce、SignatureVersion、Timestamp、Version 等,详见下方示例和阿里云官方文档。
通用响应
成功响应(HTTP 200)
json
{
"Code": "OK",
"Message": "短信已发送",
"RequestId": "unique_id"
}失败响应
json
{
"Code": "SignatureDoesNotMatch",
"Message": "签名验证失败",
"RequestId": ""
}失败时 Code 为对应错误码,详见 错误码。
签名说明
服务端会读取 access_key_id 和 access_key_secret,并使用相同签名算法计算期望的 Signature。请求必须包含 Signature 参数,服务端会校验请求参数和签名。
- 签名按请求实际使用的方法计算:GET 请求用
GET,POST 请求用POST,两者结果不同。 - 签名校验在参数校验之前进行,请确保参数编码和密钥完全一致。
详细签名规则可参考 阿里云官方 API 请求文档。
GET 示例
bash
curl "https://smspanel.szczk.top/?AccessKeyId=ak_xxx&Action=SendSms&PhoneNumbers=13800138000&SignName=starcloud&TemplateCode=SMS_CODE&TemplateParam={\"code\":\"123456\"}&Signature=..."POST 示例
bash
curl -X POST https://smspanel.szczk.top/ \
-d "AccessKeyId=ak_xxx" \
-d "Action=SendSms" \
-d "PhoneNumbers=13800138000" \
-d "SignName=starcloud" \
-d "TemplateCode=SMS_CODE" \
-d "TemplateParam={\"code\":\"123456\"}" \
-d "Signature=..."计费说明
发送成功后按短信实际内容长度扣费:若系统后台存在对应模板内容,按变量替换后的内容每 50 字计 1 条;否则按 1 条计算。发送失败不扣费。