第一章 接入说明
1.1 API基路径
接口统一访问地址:{API基路径}/service/httpService/httpInterface.do
API基路径说明:
请求 | API基路径 | 说明 |
HTTP | http://*:* | 接入时客服提供接口参数 |
HTTP+SSL | https://*:* | 接入时客服提供接口参数 |
1.2 接口参数说明
联系客服获取短信帐号接入参数。
参数 | 名称 | 说明 |
method | 接口方法 | 一个接口对应一个固定方法名,详情说明见各接口说明。 getAmount:获取账户余额接口 sendMsg、sendUtf8Msg、sendGbkMsg:短信发送接口 queryReport:获取短信状态报告 queryMo:获取上行短信 |
username | 用户账号 | |
password | 用户密码 | |
veryCode | 通信key(通信认证密码) |
1.3 接口对接规范
- 请勿在浏览器直接测试,因为受浏览器编码影响,建议采用代码或postman工具调试。
- 采用HTTP POST方式,请求参数写入HTTP请求体,不建议拼接在url后面。
- Content-type:application/x-www-form-urlencoded
- 参考开发示例代码进行修改调试。
第二章、账号余额接口
获取短信账号的余额(短信条数=余额*10)。
2.1 请求地址
2.2 参数说明
参数 | 名称 | 说明 |
method | 接口方法 | 一个接口对应一个固定方法名,详情说明见各接口说明。 getAmount:获取账户余额接口 sendMsg、sendUtf8Msg、sendGbkMsg:短信发送接口 queryReport:获取短信状态报告 queryMo:获取上行短信 |
username | 用户账号 | |
password | 用户密码 | |
veryCode | 通信key(通信认证密码) |
参数名称 | 含义 | 说明 |
method | 查询余额 | 查询余额,固定为getAmount |
username | 用户账号 | 用户账号 |
password | 用户密码 | 用户密码 |
veryCode | 通信认证密码 | |
rt | 响应数据格式 | xml、json 默认:xml |
- 示例(实际对接请参考《1.3 接口对接规范》):
- http(s)://*:*/service/httpService/httpInterface.do?method=getAmount&username=JSM001&password=123&veryCode=456
2.3返回值
XML响应数据格式:<?xml version="1.0" encoding="UTF-8" ?>JSON数据格式:0 --返回状态值:成功返回0 失败返回:失败代码5000 --当status为0时,会出现该属性
{"status":"0","account":"735"}JSON返回值说明:
名称 | 说明 |
status | 返回状态值,具体参照状态码说明,0-成功,其他代码-失败 |
account | 账号余额,条数= acount * 10 请求成功才会有此节点 |
返回码 | 描 述 |
0 | 查询成功 |
100 | 查询余额失败 |
101 | 用户账号不存在或密码错误 |
102 | 账号已禁用 |
103 | 参数不正确 |
105 | 认证码错误 |
117 | 未开通此接入方式 |
第三章 短信发送接口
支持普通短信/模板短信/定时短信发送,账号接口发送最大速率20条/s,根据客户实际业务发送量可以申请提速。普通短信需人工审核。定时短信需人工审核,审核通过且到达定时发送间才发送,在未到达定时发送时间允许联系客服撤销。模板短信免审,短信模板需要事先登陆客户端申请报备并审核通过,短信3-5秒收到,所有行业短信(业务通知\验证码)优先采用模板短信发送,以免影响短信时效性。
3.1 请求地址
{API基路径}/service/httpService/httpInterface.do
method参数说明:{API基路径}/service/httpService/httpInterface.do?method=sendMsg&code=utf-8
指定字符编码提交地址,无需携带code参数- Utf8编码:
- {API基路径}/service/httpService/httpInterface.do?method=sendUtf8Msg
- GBK编码
- {API基路径}/service/httpService/httpInterface.do?method=sendGbkMsg
2.2 参数说明
参数名称
|
含义
|
说明
|
method
|
发送短信(必填)
|
取值范围:sendMsg,sendUtf8Msg,sendGbkMsg |
username
|
用户账号(必填)
|
用户账号
|
password
|
用户密码(必填)
|
用户密码
|
veryCode
|
通信认证密码(必填) | |
mobile | 手机号码(必填) | 手机号码(群发短信时,最多100个,英文逗号,隔开),发送前过滤错号并去除重复号码 |
content | 短信内容(必填) | 短信内容(最多300个汉字),含特殊字符请URL编码,编码后不影响计费;如果使用模板短信发送,此参数用来传递模板短信的变量和值,参数之间以逗号隔开 |
sendtime | 定时时间(24小时制) | 定时短信的定时时间,格式为: (yyyyMMddHHmmss),例如:20140504111010 代表2014年5月4日 11时10分10秒,短信会在指定的时间发送出去 sendTime值为空时,为即时发送短信 sendTime值不为空时,为定时发送短信,值为空时表示即时发送短信 |
msgtype |
短信类型(必填) |
短信类型。1-普通短信,2-模板短信。 |
tempid |
模板短信编号 |
模板编号,(msgtype=2时参数必填) |
code | 编码格式 | 编码方式(utf-8,gbk),默认:gbk;指定字符编码提交地址时无需赋值 |
rt | 响应数据格式 | xml、json 默认:xml |
- 说明:
- 1) IP:如果用户开账户时指定IP,则接口只接收来自该IP的请求。
- 2) 模板变量值不允许包含英文逗号(,)和等号(=)
- 3) 短信内容或变量值包含url特殊字符请进行转义,部分http框架会自动对参数值进行转义
- 4) 发送短信建议采用post方式,请求参数放入http请求体中,不建议拼接在URL后面
- 1 发送普通短信示例(需要人工审核):
- http://*:*/service/httpService/httpInterface.do?method=sendMsg&username=JSM001&password=123&veryCode=456&mobile=15951977097&content=您好!您本次验证码为:174687,请勿告知他人&msgtype=1&code=gbk
- 2 发送定时短信示例:
- http://*:*/service/httpService/httpInterface.do?method=sendMsg&username=JSM001&password=123&veryCode=456&mobile=15951977097&content=您好!您本次验证码为:174687,请勿告知他人&msgtype=1&code=gbk&sendtime=20150501093030
-
登录综合信息管理系统客户端后,菜单:短信中/短信模版,详细操作流程请查看《综合信息管理系统_使用手册(客户端).docx》,如客户定义的编号为JSM4001-0001模板短信为:
尊敬的@1@您好,您在江苏美圣网站(www.jsmsxx.com),注册的手机验证码为@2@,请在验证页面及时输入。
http://*:*/service/httpService/httpInterface.do?method=sendMsg&username=JSM001&password=123&veryCode=456&mobile=15951977097&tempid=JSM4001-000&content=@1@=李先生,@2@=928371&msgtype=2&code=gbk发送短信内容:【江苏美圣】尊敬的李先生你好,您在江苏美圣网站(www.jsmsxx.com),注册的手机验证码为928371,请在验证页面及时输入。
Content变量为模版中各变量对应的变量值,多个变量以英文逗号隔开:content=@1@=李先生,@3@=928371。
- 测试注意事项:
- 1、正式账号发送模板短信都为免审,直接转发至运营商下发。
- 2、测试账号发送模板短信,若模板变量值不包含中文则免审;若模板变量值中包含中文则上审核平台;
- 3、发送常用语短信模板(无变量的模板),content传递空值,即“content=”后面不赋值,直接连接下一个参数。如:&content=&msgtype=2&tempid=模板编号
3.3返回值
XML响应数据格式:<?xml version="1.0" encoding="UTF-8" ?> <sms> <mt> <status>0</status> <msgid>816f333305664fb9bdd8c1bc96ae12b8</msgid> </mt> </sms>JSON数据格式:
{ "status": "0", "msgid": "d7cd217727894a2ab6a818d75180959a,91a63c911d114f19bc25d8649d869fdb" }返回值说明:
名称 | 说明 |
status | 返回状态码,请参照状态码说明 |
msgid | 群发短信时返回多个msgid,英文逗号隔开,且以发送号码顺序对应。 |
<?xml version="1.0" encoding="UTF-8" ?>状态码说明:0 816f33336ae12b1,830c96ae12b2, 816f3338c6ae12b3
返回码 | 描述 |
0 | 提交成功 |
100 | 获取上行短信失败 |
101 | 用户账号不存在或密码错误 |
102 | 账号已禁用 |
103 | 参数不正确 若是发送模板短信,可能模板变量值中包含英文逗号(,)如:@1@=订单号DD01,DD02 |
104 | 暂无上行短信 |
105 | 短信内容超过300字或为空、或内容编码格式不正确 |
106 | 手机号码超过100个或有错误号码 |
108 | 余额不足 |
109 | ip错误 |
110 | 短信内容存在系统保留关键词,可以登录客户端,查找具体的敏感词。 |
114 | 模板短信序号不存在 |
115 | 短信签名标签序号不存在 |
116 | 认证码不正确 |
117 | 未开通此接入方式 |
四、状态报告接口
获取短信状态报告接口,只能获取当天短信的状态报告,每次调用只查询未被获取的状态报告。访问频率:建议控制在1-3分钟调用一次
4.1 请求地址
{API基路径}/service/httpService/httpInterface.do
4.2参数说明
参数名称 | 含义 | 说明 |
method | 获取状态报告(必填) | 固定为queryReport |
username | 用户账号(必填) | 用户账号 |
password | 用户密码(必填) | 用户密码 |
veryCode | 通信认证密码(必填) | |
rt | 响应数据格式 | xml、json 默认:xml |
示例(实际对接请参考《1.3 接口对接规范》):
http://*:*/service/httpService/httpInterface.do?method=queryReport&username=JSM40001&password=123456&veryCode=123456
4.3返回值
XML响应数据格式:<?xml version="1.0" encoding="UTF-8" ?> <sms> <rpt> <mobile>1595****097</mobile> <!--手机号码--> <msgid>7506751276725633025</msgid> <!--消息ID ,对应发送的消息id--> <status>MA:0006</status> <!--状态报告,DELIVRD-成功,其他-失败--> <time>2015-06-08 11:21:46</time> <!--报告时间--> <extno></extno> <!--扩展码--> </rpt> <rpt> <mobile>1595****097</mobile> <msgid>7506751276725633026</msgid> <status>MA:0006</status> <time>2015-06-08 11:21:46</time> <extno></extno> </rpt> <rpt> <mobile>1595****097</mobile> <msgid>7507418680283693057</msgid> <status>DELIVRD</status> <time>2015-06-08 11:59:37</time> <extno></extno> </rpt> </sms>JSON数据格式:
var a= { "status": "0", "rpts": [ { "mobile": "18120130706", "msgid": "d239bbe3bba24163b27066caef635829", "status": "DELIVRD", "time": "2021-04-12 13:44:20", "extno": "" }, { "mobile": "18120130706", "msgid": "d7cd217727894a2ab6a818d75180959a", "status": "DELIVRD", "time": "2021-04-12 15:15:57", "extno": "" } ] }返回值说明:
名称 | 说明 |
mobile | 手机号码 |
msgid | 消息id,和发送接口内msgid匹配的 |
status | 状态码,DELIVRD-成功,其他-失败,见《附表一:常用状态报告码》 |
time | 状态报告时间 |
extno | 扩展码 |
4.4 错误返回值
XML响应数据格式:<?xml version="1.0" encoding="utf-8" ?> <sms> <mt> <status>104</status> </mt> </sms>JSON数据格式:
{ "status": "104", }返回值说明:
返回码 | 描 述 |
status | 返回状态码,具体参照状态码说明 |
返回码 | 描 述 |
100 | 获取状态报告失败 |
101 | 用户账号不存在或密码错误 |
102 | 账号已禁用 |
103 | 参数不正确 |
104 | 暂无短信状态报告,表示当前无未被获取的状态报告 |
105 | 认证码错误 |
117 | 未开通此接入方式 |
118 | 未开通此接口,联系客服申请开通“获取状态报告接口”权限 |
五、上行回复接口
获取短信状态报告接口,只能获取当天上行回复短信,每次调用只查询未被获取的上行回复短信告。 访问频率:建议控制在1-3分钟调用一次,具体根据客户实际业务设置。
5.1 请求地址
{API基路径}/service/httpService/httpInterface.do
5.2参数说明
参数名称 | 含义 | 说明 |
method | 获取上行短信(必填) | 固定为queryMo |
username | 用户账号(必填) | 用户账号 |
password | 用户密码(必填) | 用户密码 |
veryCode | 通信认证密码(必填) | |
rt | 响应数据格式 | xml、json 默认:xml |
示例(实际对接请参考《1.3 接口对接规范》):
http://*:*/service/httpService/httpInterface.do?method=queryMo&username=test&password=123&veryCode=456
5.3返回值
XML响应数据格式:<?xml version="1.0" encoding="utf-8" ?> <sms> <mo> <mobile>15951****97</mobile> <!--手机号码--> <recvcode>106905994140001</recvcode> <!--接受号码--> <content>江苏美圣信息技术有限公司</content><!--回复内容--> <time>2015-04-02 22:12:11</time> <!--接收时间--> </mo> <mo> <mobile>15951****97</mobile> <!--对应的手机号码--> <recvcode>106905994140001</recvcode> <!--接受号码--> <content>4006000699</content> <!--回复内容--> <time>2014-04-03 08:12:11</time> <!--接收时间--> </mo> </sms>JSON数据格式:
{ "status": "0", "mos": [ { "mobile": "1812***706", "recvcode": "106905994540001", "content": "收到", "time": "2021-04-12 15:49:19" } ] }返回值说明:
名称 | 说明 |
mobile | 对应的手机号码 |
recvcode | 接受号码 |
content | 回复内容 |
time | 接收时间 |
4.4错误返回值
<?xml version="1.0" encoding="utf-8" ?> <sms> <mt> <status></status> </mt> </sms>返回值说明:
名称 | 说明 |
status | 返回状态码,请参照状态码说明 |
返回码 | 描 述 |
100 | 获取上行短信失败 |
101 | 用户账号不存在或密码错误 |
102 | 账号已禁用 |
103 | 参数不正确 |
104 | 暂无上行短信,表示当前无未被获取的上行回复短信 |
105 | 认证码错误 |
117 | 未开通此接入方式 |
118 | 未开通此接口,联系客服申请开通“获取上行接口”权限 |