短信接口(http协议)

一、单条短信发送(黑名单等拦截错误实时返回)

地址:http://121.4.162.220:9511/api/send-sms-single

请求头Content-Type:application/x-www-form-urlencoded

请求方式:POST 返回值:JSON

参数

参数名 参数介绍 示例 是否必填
sp_id 产品sp_id 666666
mobile 手机号 176xxxxxxxxx
content 短信内容 【测试】验证码123
signature 签名(和密码二选一即可,点击查看签名算法) a92569901189f2574effc957c096c432e2d47635
password 密码(和签名二选一即可),通过sp_id的密码进行md5处理 666666
ext 扩展号 123

返回值

参数名 参数介绍 示例
code 详情见错误表 0
msg 成功-success 错误-其他提示 success
msg_id 消息id,用来获取状态报告时候匹配是哪条消息,成功返回 17
data 失败有返回,详情见错误表 WL:NMLJ

二、批量短信发送(黑名单等拦截错误实时返回,一次最多提交一万条)

地址:http://121.4.162.220:9511/api/send-sms-batch

请求头Content-Type:application/x-www-form-urlencoded

请求方式:POST 返回值:JSON

参数

参数名 参数介绍 示例 是否必填
sp_id 产品sp_id 666666
mobiles 手机号 176xxxxxxxxx,171xxxxxxxxx
content 短信内容 【测试】验证码123
signature 签名(和密码二选一即可) a92569901189f2574effc957c096c432e2d47635
password 密码(和签名二选一即可),通过sp_id的密码进行md5处理 666666
ext 扩展号 123

返回值

参数名 参数介绍 示例
code 详情见错误表 0
msg 成功-success 错误-其他提示 success
msg_id 消息id,用来获取状态报告时候匹配是哪条消息,批量发送的时候msg_id和该批次中的手机号形成唯一标志,成功返回 17
failed_data 发送号码中失败的号码对应的错误码,全部成功则为空数组 ["15651453123":"WL:CWHM"]

三、变量短信发送(黑名单等拦截错误实时返回,一次最多提交一万条)

地址:http://121.4.162.220:9511/api/send-variable

请求头Content-Type:application/x-www-form-urlencoded

请求方式:POST 返回值:JSON

参数

参数名 参数介绍 示例 是否必填
sp_id 产品sp_id 666666
params 变量参数,多条短信以英文;分割,多个变量之间以英文,分割,变量前带上手机号 176xxxxxxxxx,822233;175xxxxxxxxx,656552
content 短信内容 【测试】验证码${Text}
signature 签名(和密码二选一即可) a92569901189f2574effc957c096c432e2d47635
password 密码(和签名二选一即可),通过sp_id的密码进行md5处理 666666
ext 扩展号 123

返回值

参数名 参数介绍 示例
code 详情见错误表 0
msg 成功-success 错误-其他提示 success
msg_id 消息id,用来获取状态报告时候匹配是哪条消息,批量发送的时候msg_id和该批次中的手机号形成唯一标志,成功返回 17
failed_data 发送号码中失败的号码对应的错误码,全部成功则为空数组 ["15651453123":"WL:CWHM"]

四、一对一批量发送(黑名单等拦截错误实时返回,一次最多提交一万条)

地址:http://121.4.162.220:9511//api/send-biunique

请求头Content-Type:application/x-www-form-urlencoded

请求方式:POST 返回值:JSON

参数

参数名 参数介绍 示例 是否必填
sp_id 产品sp_id 666666
params 一对一参数,json格式key是手机号,value是内容 {"17655555555":"测试111","17666666666":"测试222"}
signature 签名(和密码二选一即可) a92569901189f2574effc957c096c432e2d47635
password 密码(和签名二选一即可),通过sp_id的密码进行md5处理 666666
ext 扩展号 123

返回值

参数名 参数介绍 示例
code 详情见错误表 0
msg 成功-success 错误-其他提示 success
msg_id 消息id,用来获取状态报告时候匹配是哪条消息,批量发送的时候msg_id和该批次中的手机号形成唯一标志,成功返回 17
failed_data 发送号码中失败的号码对应的错误码,全部成功则为空数组 ["17655555555":"WL:CWHM"]

五、获取状态报告(每条短信状态仅可获取一次)

地址:http://121.4.162.220:9511/api/report

请求方式:GET 返回值:JSON

运营商返回某条短信状态后,此接口就能拉取到,之后调用此接口将不会返回此条短信的状态,所以调用者拉到数据后需要根据 手机号+msg_id 将状态存在本地

参数

参数名 参数介绍 示例 是否必填
sp_id 产品sp_id 666666
signature 签名(和密码二选一即可) a92569901189f2574effc957c096c432e2d47635
password 密码(和签名二选一即可),通过sp_id的密码进行md5处理 666666

返回值

参数名 参数介绍 示例
code 详情见错误表 0
msg 成功-success 错误-其他提示 success
data 扩展号,调用发送接口返回的msg_id,手机号,状态,时间,售价 字段以,分隔 多条记录以|分隔 123,2,1762532xxxx,DELIVRD,2021-12-23 01:02:03,0.2|123,2,17862532xxxx,DELIVRD,2021-12-23 01:02:03,0.1

六、获取用户上行回复(比如退订等,每条短信状态仅可获取一次)

地址:http://121.4.162.220:9511/api/get-reply

请求方式:GET 返回值:JSON

手机回复上行后,此接口就能拉取到上行数据,每个上行数据只能拉取到一次,所以调用者拉到上行后,需要将上行的内容存在本地,然后自行根据 msg_id,手机号 等信息匹配具体哪条短信产生的上行回复

参数

参数名 参数介绍 示例 是否必填
sp_id 产品sp_id 666666
signature 签名(和密码二选一即可) a92569901189f2574effc957c096c432e2d47635
password 密码(和签名二选一即可),通过sp_id的密码进行md5处理 666666

返回值

参数名 参数介绍 示例
code 详情见错误表 0
msg 成功-success 错误-其他提示 success
data urlencode后的内容,手机号,调用发送接口返回的msg_id,扩展号,时间 字段以,分隔多条记录以|分隔 TD,158114xxxx,100000006,048842426601,20220325123304|退订,1891456xxxx,100000007,0615,20211115173903

七、获取余额

地址:http://121.4.162.220:9511/api/balance

请求方式:GET 返回值:JSON

参数

参数名 参数介绍 示例 是否必填
sp_id 产品sp_id 666666
signature 签名(和密码二选一即可) a92569901189f2574effc957c096c432e2d47635
password 密码(和签名二选一即可),通过sp_id的密码进行md5处理 666666

返回值

参数名 参数介绍 示例
code 详情见错误表 0
msg 成功-success 错误-其他提示 success
data 余额 {"balance": "99999.89"}

错误码(code)

错误码 说明
10000 服务出错,请稍后再试
10001 参数错误,请确认
10008 账号被锁定,请联系管理员确认
10011 余额不足,请尽快充值
10100 签名校验失败
10101 您的ip不在白名单内,请确认
10102 密码错误,请确认
10200 产品sp_id必须填写
10201 手机号必须填写
10202 短信内容必须填写
10203 发送时间格式必须为UNIX时间戳
10208 短信进拦截,具体原因参考data字段
10209 触发防刷,请调整配置

错误码(data)

错误码 说明
WL:MBLJ 短信内容匹配到了模板,并且此模板类型是拦截
WL:MBSH 命中审核模板
WL:NMLJ 短信内容没有匹配到模板,并且用户的模板审核方式是未匹配到就进拦截
WL:NMSH 短信内容没有匹配到模板,并且用户的模板审核方式是未匹配到就进审核
WL:KHLJ 命中空号,进拦截
WL:QHLJ 命中用户签名黑名单,进拦截
WL:SHLJ 命中用户SPID黑名单,进拦截
WL:CHLJ 命中系统产品黑名单,进拦截
WL:CWHM 错误号码
WL:QWBB 签名未报备,进拦截
WL:MQM 需要签名但没有,进拦截
WL:CS 超过限速了
WL:ZJLJ 不匹配任何模板,直接拦截
WL:CMT 产品未配置相应通道,进拦截
WL:CDQC 通道不支持该地区发送,进拦截
WL:CGMT 产品通道池中没有相应通道,进拦截
WL:CNH 所选的通道不健康,进拦截
WL:TCLJ 不在发送时间段,进拦截
WL:TCSH 不在发送时间段,进审核
WL:CPL 超频限制

签名生成规则

第一步:准备QueryString
  1. 将所有参数(除了signature)按照key排序(顺序)
  2. 将排序好的参数key和值进行URLEncode,之后再增加三种字符替换:加号(+)替换成 %20、星号(*)替换成 %2A、%7E 替换回波浪号(~)
  3. 将格式化后的key和值按照key + "=" + 值进行拼接成字符串QueryString,多个参数间用&连接,例:”a=%E5%93%88%E5%93%88&b=haha”
  4. 在上一步得到的QueryString前拼接上请求方式,生成新的QueryString,HTTPMethod + "&" + URLEncode("/") + "&" + QueryString
第二步:准备signature
  1. 将上面得到的QueryString进行HmacSHA1算法进行编码,HMAC生成信息摘时需要用您的产品密码作为密钥。
  2. 之后将上面加编码后的字符串进行base64编码,得到签名signature
    注意:本文档的所有接口都不支持 curl的100 continue协议,如果接口响应过慢就关闭此协议,在Curl中加入curl_setopt($ch, CURLOPT_HTTPHEADER, array("Expect:"))即可
下载php demo
下载java demo

第三方短信接口请联系客服确认