HTTP/HTTPS协议接入
使用手册短信网关与ISP互为HTTP的服务器端和客户端,通过HTTP传递短信内容。分为下行(MT)短信与上行(MO)短信两种方式:下行(MT)短信:当ISP系统通过短信网关向用户手机发短信(MT服务),ISP系统采用类似的方式向短信网关的CGI发短信:
http://GATEWAY.IEMS.NET.CN/GsmsHttp?username=user&password=pass&from=001&to=130xxxxxxxxx&content=hell,world&presendTime=2003-02-03 12:12:03CGI带的参数说明:
username:ISP登陆名(公司分配给ISP) 非空,如果为机构版,则应以“机构ID:登陆名”方式赋值
password:ISP登陆密码(公司分配给ISP)非空
from:发短信的端口扩展号
to: 接收短信的手机号 非空 支持多个(<=15)手机号码,中间以“,”分割
content:短信内容 不能为空(只支持GBK编码,若使用其它编码需要转换一下)
presendTime:定时发送时间(格式:YYYY-MM-DD HH24:MI:SS)参数的传输格式为:x-www-form-urlencoded短信网关返回结果包括:
OK:发送成功的短信的ID
ERROR:错误信息例:OK:325689 表示短信发送成功 发送成功的最后一条短信ID为325689
ERROR:eUser 表示短信发送不成功,出错原因是因为用户名称有误
上行(MO)短信当ISP系统主动向短信网关请求接收用户手机发的短信(MO服务),ISP系统采用类似的方式向短信网关的发送请求:
http://GATEWAY.IEMS.NET.CN/GsmsHttpMo?username=user&password=pass&&lastID=0&itemNum=10CGI带的参数说明:
username:ISP登陆名(公司分配给ISP),如果为机构版,则应以“机构ID:登陆名”方式赋值
password:ISP登陆密码(公司分配给ISP)
lastID: 收取大于该ID的短信,全部收取则输入0。当收取完全部短信后,请设置lastID为最后收取的短信序号,这样下次接收时会接收最新的短信
itemNum:每次收取的上行短信数量,默认为10短信网关返回结果示例:
1488842|13723793002|075525581601149376|2009-05-15 10:54:07|测试 1488863|13877786721|075525581601149376|2009-05-15 11:38:11|收到Ok END短信网关返回结果说明:
1) OK:发送成功的短信的ID
2) ERROR:错误信息
举例:
OK:325689 表示短信发送成功 发送成功的最后一条短信ID为325689;
ERROR:eUser 表示短信发送不成功,出错原因是因为用户名称有误;
ERROR:eDate 表示日期错误,出错原因是预发送时间格式不对;
ERROR:eIllegalPhone 表示发送号码错误;
ERROR:ePassword 表示密码错误;
ERROR:eStop 表示用户已经停用;
ERROR:eDenyDate 表示帐户过期;
ERROR:eBalance 表示余额不足;
ERROR:不明错误!表示不明错误,出错原因一般是SQL异常(内容过长或者机构ID填写英文字母等类似错误);
ERROR:eFrequent 表示请求频繁;
ERROR:eContentLen 表示短信内容超长;
ERROR:nContent 表示短信内容为空;
ERROR:未知错误 表示未知错误。
常见问题:1、哪些ISP会采用这种开发接口?
当ISP具有以下特点时,比较愿意采用双向HTTP的方式:
具有CGI开发经验
接受HTTP/HTTPS这种标准互联网协议
2、开发量有多大?
采用双向HTTP的方式,ISP的开发量较小,主要工作包括:
理解HTTP的各个参数
定义短信应用数据库表结构(也可在已有的数据库上添加相关表)
开发一个CGI3、请求频繁如何处理?
请求频繁处理指的是由密码错误或其他原因导致请求失败的情况,当每次请求的时间间隔在30秒内,失败次数达到5次,系统自动锁定帐号;
对于被锁定的帐号,将于当前时间算起的24小时后自动解封。