上一篇
http短信接口文档
- 行业动态
- 2025-04-27
- 3189
短信接口文档提供POST请求发送短信功能,需传入手机号、签名及模板参数,返回JSON格式结果含状态码与
接口基本信息
请求URL:https://api.example.com/v1/sms/send
请求方式:POST
请求头:Content-Type: application/json; charset=UTF-8
字符编码:UTF-8
请求参数说明
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
mobile | string | 是 | 手机号(支持国内11位手机号,需符合正则 ^1[3-9]d{9}$ ) |
content | string | 是 | (长度限制为500字符,需符合运营商内容规范) |
timestamp | int | 是 | 请求时间戳(单位:秒,UTC时间) |
nonce | string | 是 | 随机字符串(长度≥32字符,用于签名防重放) |
sign | string | 是 | 签名(MD5(secretKey + nonce + timestamp ),转为大写) |
extendData | object | 否 | 扩展数据(如模板变量时需为JSON对象,例:{"code":"1234"} ) |
返回格式说明
返回数据结构:JSON
成功响应示例:
{ "status": "OK", "message": "短信发送成功", "data": { "msgId": "202310150101001", "mobile": "13812345678", "fee": 1, "remaining": 999 } }
失败响应示例:
{ "status": "ERROR", "code": "4001", "message": "签名校验失败", "details": "Sign mismatch or missing parameters" }
错误码说明
错误码 | 说明 | 解决方案 |
---|---|---|
4001 | 签名校验失败 | 检查 secretKey 、nonce 、timestamp 是否匹配,并确保签名算法正确 |
4002 | 非规手机号 | 验证手机号格式是否符合 ^1[3-9]d{9}$ |
4003 | 内容包含敏感词 | 修改短信内容,避开运营商禁用词汇 |
5000 | 系统内部错误 | 联系技术支持,提供 msgId 和请求参数 |
签名生成规则
- 拼接字符串:
secretKey + nonce + timestamp
(按顺序拼接) - MD5加密:对拼接后的字符串进行MD5加密(如:
MD5("yourSecretKey123abc4567890")
) - 转大写:将MD5结果转为大写作为最终签名(例:
SIGN=F1D3B5C7E8A9B...
)
请求频率限制
用户等级 | 单日限额 | 单次请求间隔(秒) |
---|---|---|
普通用户 | 1000条 | 1秒 |
企业用户 | 10000条 | 5秒 |
IP白名单配置
功能 | 说明 |
---|---|
绑定IP | 需提交工单申请,审核通过后仅允许指定IP段访问接口 |
动态IP | 支持轮询IP(需在申请时注明业务场景,如多机房容灾) |
解除绑定 | 联系技术支持并提供账户信息,审核后解除 |
常见问题与解答
问题1:如何测试接口是否可用?
解答:
- 使用工具(如Postman或cURL)发送请求,确保参数符合规范。
- 检查签名是否正确(可打印日志对比本地计算结果)。
- 如果返回
4001
错误,确认secretKey
是否与文档一致,且参数无缺失。 - 若持续失败,联系技术支持并提供完整的请求报文和错误响应。
问题2:签名生成时需要注意哪些细节?
解答:
- 参数顺序:必须严格按照
secretKey + nonce + timestamp
的顺序拼接。 - 时间同步:客户端时间需与服务器时间误差小于30秒,否则可能因
timestamp
过期导致签名失败。 - 编码一致性:所有参数需使用UTF-8编码,避免中文或特殊字符导致签名不一致。
- 大小写敏感:最终签名需转为大写(如 `SIGN=ABCD