HTTP(S)短信接口开发文档

第一章 接入说明

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 接口对接规范

  1. 请勿在浏览器直接测试,因为受浏览器编码影响,建议采用代码或postman工具调试。
  2. 采用HTTP POST方式,请求参数写入HTTP请求体,不建议拼接在url后面。
  3. Content-type:application/x-www-form-urlencoded
  4. 参考开发示例代码进行修改调试。

第二章、账号余额接口

获取短信账号的余额(短信条数=余额*10)。

2.1 请求地址

{API基路径}/service/httpService/httpInterface.do

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" ?>

    
    0		--返回状态值:成功返回0 失败返回:失败代码
    5000	--当status为0时,会出现该属性
    

JSON数据格式:
   {"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.3 接口对接规范》
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 未开通此接口,联系客服申请开通“获取上行接口”权限

五、常用状态报告码

查看常用状态