本节导读

发送图标

接口说明

本接口用于向一个或多个手机号码发送短信。支持定时发送功能。V2.0版本采用MD5加密密钥进行安全认证,相比V1.0明文密码方式更加安全可靠。

信息图标 接口地址

UTF-8:http://cloud.thinksms.cn/v2sms.aspx

GBK:http://cloud.thinksms.cn/v2smsGBK.aspx

Content-Type: application/x-www-form-urlencoded

支持HTTPS协议

提示图标

提示:V2.0接口使用MD5加密密钥替代明文密码,有效防止密码在传输过程中被窃取,建议新用户优先使用V2.0接口

密钥图标

签名算法

V2.0接口使用MD5加密密钥替代V1.0的明文密码,签名生成规则如下:

签名生成步骤

第一步:将账号、接口密码、时间戳依次拼接

第二步:对拼接后的字符串进行MD5加密(32位小写)

第三步:将加密后的字符串作为sign参数提交

签名示例

账号:test 接口密码:thinksms 时间戳:20190117230015 拼接字符串:testthinksms20190117230015 MD5加密后(32位小写):4ae39a0f109f521b488752b9628ac79c

时间戳格式

时间戳为系统当前时间字符串,格式为:年月日时分秒,例如:20190117230015

各语言签名示例

Java示例:

String account = "test"; String password = "thinksms"; String timestamp = "20190117230015"; String signStr = account + password + timestamp; String sign = MD5Utils.md5(signStr).toLowerCase(); // 结果:4ae39a0f109f521b488752b9628ac79c

PHP示例:

$account = "test"; $password = "thinksms"; $timestamp = "20190117230015"; $signStr = $account . $password . $timestamp; $sign = strtolower(md5($signStr)); // 结果:4ae39a0f109f521b488752b9628ac79c

Python示例:

import hashlib account = "test" password = "thinksms" timestamp = "20190117230015" sign_str = account + password + timestamp sign = hashlib.md5(sign_str.encode('utf-8')).hexdigest() # 结果:4ae39a0f109f521b488752b9628ac79c

Node.js示例:

const crypto = require('crypto'); const account = "test"; const password = "thinksms"; const timestamp = "20190117230015"; const signStr = account + password + timestamp; const sign = crypto.createHash('md5').update(signStr).digest('hex'); // 结果:4ae39a0f109f521b488752b9628ac79c
列表图标

请求参数

参数名称 含义 类型 必填 说明
action 请求动作 string 是 固定为:send
userid 企业ID string 是 企业ID(登录后台-客户管理-我的信息)
timestamp 时间戳 string 是 系统当前时间字符串,年月日时分秒,例如:20190117230015
sign 接口密钥 string 是 使用(账号+接口密码+时间戳)拼接字符串后通过MD5加密(32位小写)
mobile 接收号码 string 是 手机号码,多个号码之间用英文逗号隔开
content 发送内容 string 是 短信内容,内容需要UTF-8编码
sendTime 定时发送时间 string 否 为空表示立即发送,不能为0,定时发送格式:2010-10-24 09:08:10
extno 扩展子号 string 否 请先询问配置的通道是否支持扩展子号,如果不支持,请填空。子号只能为数字,且最多10位数。
rt 返回格式 string 否 固定值:json,不填则为XML格式返回

请求示例

JSON格式请求:

http://cloud.thinksms.cn/v2sms.aspx?action=send&rt=json&userid=108&timestamp=20190117230015&sign=4ae39a0f109f521b488752b9628ac79c&mobile=15900159000&content=【安徽智想云创】验证码:5679&extno=

XML格式请求:

http://cloud.thinksms.cn/v2sms.aspx?action=send&userid=108&timestamp=20190117230015&sign=4ae39a0f109f521b488752b9628ac79c&mobile=15900159000&content=【安徽智想云创】验证码:5679&extno=

参数对比(V1.0 vs V2.0)

参数 V1.0 V2.0 说明
account ✓ 必填 ✗ 不需要 V2.0账号信息已包含在sign中
password ✓ 必填(明文) ✗ 不需要 V2.0使用sign加密代替
timestamp ✗ 不需要 ✓ 必填 V2.0新增时间戳参数
sign ✗ 不需要 ✓ 必填 V2.0新增MD5签名
回复图标

响应数据

JSON格式响应:

{ "ReturnStatus": "Success", "Message": "ok", "RemainPoint": 109346, "TaskID": 365, "SuccessCounts": 2 }

字段说明

ReturnStatus 返回状态值:成功返回Success,失败返回:Fail
Message 返回信息提示
RemainPoint 返回余额
TaskID 返回本次任务的序列ID
SuccessCounts 成功短信数:当成功后返回提交成功短信数

常见返回信息

返回信息提示 说明
ok 提交成功
用户名或密码不能为空 提交的用户名或密码为空
发送内容包含sql注入字符 包含sql注入字符
用户名或密码错误 表示用户名或密码错误
短信号码不能为空 提交的被叫号码为空
短信内容不能为空 发送内容为空
包含非法字符 表示检查到不允许发送的非法字符
对不起,您当前要发送的量大于您当前余额 当支付方式为预付费时,检查到账户余额不足
其他错误 其他数据库操作方面的错误

签名错误返回

当签名验证失败时,将返回以下错误信息:

{ "ReturnStatus": "Fail", "Message": "签名验证失败" }
警告图标

注意事项

客服图标 需要帮助?

我们的服务团队随时为您提供支持,解决您在使用过程中遇到的任何问题

时间图标 服务时间:周一至周日 8:00-22:00(全年在线)