智能短信

1、智能短信发送

请求头Content-Type:application/x-www-form-urlencoded
请求方式:POST 返回值:JSON

备注:黑名单等拦截错误实时返回,一次最多提交一万条

地址:https://api.3yit.com/api/send-aim

参数

参数名参数介绍示例必填
sp_id产品sp_id5xxxxx(开发者-http接口文档中查看)
mobiles手机号如果是普通模版则是手机号的json数组,例:["176xxxxxxxx","171xxxxxxxx"];如果是含有动参数的模版则是手机号+动参数组的json数组,其中动参按照模版中的动参数排序,例:[["176xxxxxxxx",["var1","var2"]],["171xxxxxxxx",["var3","var2"]]]
content短信内容【测试】$url$(其中$url$是aim短信的占位符必须带有,位置可自己确认)
template_idaim模版id123
signature签名(和密码二选一即可)a92569901189fxxxxxxxx957c096c432e2d47635
password密码(和签名二选一即可),通过sp_id的密码进行md5处理xxxxxxxxxxx(32位,开发者,http接口文档中查看)


结果

参数名参数说明示例
code详情见错误表0
msg成功-success 错误-其他提示success
msg_id消息id100000052


postman-13.png

2、获取报告状态

请求头Content-Type:application/x-www-form-urlencoded
请求方式:GET  返回值:JSON

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

地址:https://api.3yit.com/api/report

参数

参数名参数介绍示例必填
sp_id产品sp_id5xxxxx(开发者-http接口文档中查看)
signature签名(和密码二选一即可)a92569901189fxxxxxxxx957c096c432e2d47635
password密码(和签名二选一即可),通过sp_id的密码进行md5处理xxxxxxxxxxx(32位,开发者,http接口文档中查看)


返回值

参数名参数说明示例
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

4、获取用户上行回复

请求方式:GET 返回值:JSON

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

地址:https://api.3yit.com/api/get-reply

参数

参数名参数介绍示例必填
sp_id产品sp_id5xxxxx(开发者-http接口文档中查看)
signature签名(和密码二选一即可)a92569901189fxxxxxxxx957c096c432e2d47635
password密码(和签名二选一即可),通过sp_id的密码进行md5处理xxxxxxxxxxx(32位,开发者,http接口文档中查看)


返回值

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

7、错误码

发送错误码

错误码说明
10000服务出错,请稍后再试
10001参数错误,请确认
10008账号被锁定,请联系管理员确认
10011余额不足,请尽快充值
10100签名校验失败
10101您的ip不在白名单内,请确认
10102密码错误,请确认
10700aim模版未报备通过
10701请使用aim产品发送
10702请选择正确的aim模版
10703动参个数不正确,请确认
10704发送内容需要带有aim url占位符
10705请按照文档格式传输mobiles字段


状态发送

错误码说明
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超频限制

8、签名生成规则

第一步:准备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

3、状态报告推送

每条仅推送一次

注意事项:

推送的是utf8原始字节流

推送格式:

扩展号,调用发送接口返回的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

5、推送用户上行回复

每条上行回复仅推送一次

注意事项:

推送的是utf8原始字节流

推送格式:

urlencode后的内容,手机号,扩展号,时间 字段以,分隔多条记录以|分隔

内容示范:

TD,158114xxxx,048842426601,20220325123304|退订,1891456xxxx,0615,20211115173903

6、获取余额

请求方式:GET 返回值:JSON

https://api.3yit.com/api/balance

参数

参数名参数介绍示例必填
sp_id产品sp_id5xxxxx(开发者-http接口文档中查看)
signature签名(和密码二选一即可)a92569901189fxxxxxxxx957c096c432e2d47635
password密码(和签名二选一即可),通过sp_id的密码进行md5处理xxxxxxxxxxx(32位,开发者,http接口文档中查看)


返回值

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