一、工作方式
双方通过HTTP方式交互数据,第三方可以简单的“name=value”方式发送提交内容或响应请求内容。即通过HTTP的GET/POST方式交换。
另外双方需要保证数据传输的完整性和安全性,每次发送请求都有响应(响应返回格式为纯文本),安全验证目前采用用户名、密码和IP绑定的方式。
1.1 密码验证方式
接口密码使用“登录密码”与“用户名”拼接字符串后能过md5加密进行验证
如登录密码是:123123
如用户名是:test
接口密码(pwd)=md5(登录密码+用户名)
pwd=md5(123123test)
pwd=b9887c5ebb23ebb294acab183ecf0769
二、字符编码
服务器接收数据可以是GBK或UTF-8编码字符,默认接收数据是GBK编码,如提交的是UTF-8编码字符,需要添加参数encode=utf8。请求响应返回内容是GBK编码。
三、响应格式
所为响应即每次向服务器提交请求后返回值
响应值格式为纯文本
四、短信发送(单条,多条发送)
GET/POST操作格式:
http://api.sms.cn/mt/?uid=用户账号&pwd=MD532位密码&mobile=号码&mobileids=消息编号&content=内容
接口参数说明:
参数名
参数字段
参数说明
uid
用户账号
登录名
pwd
用户密码
32位MD5加密md5(密码+uid)
如登录密码是:123123 ,uid是:test;
pwd=md5(123123test)
pwd=b9887c5ebb23ebb294acab183ecf0769
time
定时时间
可选项,及时发送时参数无 格式:YYYY-MM-DD HH:MM 如:"2010-05-2712:01"(年-月-日 时:分),发送时间以北京时间为准
mid
子扩展号
可选项,根据用户账号是否支持扩展
encode
字符编码
可选项,默认接收数据是GBK编码,如提交的是UTF-8编码字符,需要添加参数 encode=utf8
mobile
接收号码
同时发送给多个号码时,号码之间用英文半角逗号分隔(,);小灵通需加区号
如:13972827282,13072827282,02185418874
GET方式每次最多可以提交50条号码
POST方式每次最多可以提交2000条号码[建议用POST方式提交]
mobileids
消息编号
可选项
该参数用于发送短信收取状态报告用,格式为消息编号+逗号;与接收号码一一对应,可以重复出现多次。
消息编号:全部由数字组成接收状态报告的时候用到,该消息编号的格式为目标号码+当前时间戳整数,精确到毫秒,确保唯一性。供收取状态报告用如: 1590049111112869461937;
content
短信内容
发送内容需要进行URL字符标准化转码。{URL字符编码说明:返回字符串,此字符串中除了-_.之外的所有非字母数字字符都将被替换成百分号(%)后跟两位十六进制数,空格则编码为加号(+)}
ASP:server.URLEncode("短信内容")
PHP:urlencode("短信内容")
JAVA:java.net.URLEncoder.encode("短信内容")
例:
接 收 号:13900008888,13900009999,13100006666
发送内容:发送测试
发成功时响应状态码值:
sms&stat=100&message=发送成功
stat 状态码
message状态说明
返回发送的状态码
状态码 说明
100发送成功
101验证失败
102 短信不足
103操作失败
104 非法字符
105内容过多
106号码过多
107频率过快
108号码内容空
109账号冻结
110禁止频繁单条发送
112 号码错误
113 定时时间格式不对
114 账号被锁,10分钟后登录
116 禁止接口发送
117 绑定IP不正确
120系统升级
五、接收状态报告
5.1 主动获取状态
GET/POST操作格式:
http://api.sms.cn/st/?uid=用户账号&pwd=MD532位密码
接口参数说明:
参数名
参数字段
参数说明
uid
用户账号
pwd
用户密码
32位MD5加密 md5(登录密码+用户账号)
例:
http://api.sms.cn/st/?uid=test&pwd=b9887c5ebb23ebb294acab183ecf0769
响应返回值:
18817660001,100,188176600011234556789,2011-03-11 11:22:11
18817660002,100,188176600021234556311,2011-03-11 11:28:22
说明:
手机号,状态,发送唯一编号,状态返回时间+换行
每条状态记录以换行分隔,一行一条状态记录
5.2 推送接收状态报告
发送状态报告请求消息
使用说明:由服务器平台发送状态报告到您的接口程序上,使用Http协议GET和POST方式发送,您需要提交一个http接口地址来接收如下格式参数值
操作的格式:
http://您服务器接口地址?cmd=stat&uid=用户账号&mobileids=消息编号&mobile=接收号码&status=消息状态
接口参数说明:
参数
参数字段名
说明
cmd
操作命令
返回值:stat
uid
用户账号
返回值:发送短信用户名
mobileids
消息编号
返回值:消息编号
mobile
接收号码
返回值:接收的号码
status
消息状态
100 //成功
130 //失败
131 //空号
132 //停机
133 //关机
134 //无状态
例:
http://您服务器接口地址?cmd=stat&uid=test&mobileids=1590049111112869461937&mobile=15900491111&status=100
六、接收上行短信(回复)
6.1 主动接收上行短信(回复)
操作的格式:
http://api.sms.cn/rx/?uid=用户账号&pwd=MD5 32位密码
注:提取的回复短信不能在重复提取
接口参数说明:
参数
参数字段名
说明
uid
用户账号
pwd
用户密码
小写32位MD5加密
例:
响应结果为纯文本,每次可接收多条回复信息:
状态码{&}回复号码||回复内容||回复时间||回复网关号{&}回复号码||回复内容||回复时间||回复网关号…….
例响应结果值:
100{&}13912341234||短信测试回复||2008-05-27 12:10:11||1068112227282{&}15912343333||短信测试回复2||2008-05-27 13:11:11||106811222728200返回发送的状态码
无回复内容时返回空
注:对回复的内容中有||会自动转成全角||字符串
6.2 推送接收上行短信(回复)
使用说明:由服务器平台发送上行回复短信到您的接口程序上,使用Http协议GET和POST方式发送,您需要提交一个http接口地址来接收如下格式参数值
操作的格式:
http://您服务器接口地址?cmd=res&uid=用户账号&mobileids=消息编号&mobile=接收号码&status=消息状态
接口参数说明:
参数
参数字段名
说明
cmd
操作命令
返回值:res
uid
用户账号
返回值:发送短信用户名
time
回复时间
返回值:YYYY-MM-DD HH:II:SS
mobile
接收号码
返回值:接收的号码
content
消息内容
返回值:GBK字符串
七、接口安全(绑定IP)
为了接口安全,请登录WEB平台在“系统设置”中绑定你服务器的IP地址,可绑定3个固定IP,绑定IP后只有通过你的服务器来发送短信,防止他人使用