接口概述
- 状态回执是短信在终端用户触达的状态,可以判断终端是否成功接收到了短信。状态分为成功、失败、未知这三大类,成功状态只有一个,即"status":"DELIVRD",三网均为“DELIVRD”;失败状态的种类比较多,详情参考短信状态码字典;
注意事项
- 只有成功和失败这两大类的状态可以通过本API获得,未知的状态代表空的意思,未知的状态会在72小时内可能有更新,如超过72小时未改变状态,那么不会再变更,并且不会生成回执报告。
- 状态回执的获得方式有两种,即推送和拉取,同时只能选择一种,不可同时选择。
- 每个号码短信的状态回执,您只能获得一次,当我们推送给您或者您拉取走这一条数据后,将不在重复获得。
接入流程
- 需要调用本API获得状态回执必须在发送短信时传入report参数,即"report"="true",否则无法使用本API获得状态回执。
- 获得的方式需要登录控制台,在对应"API账号"的"产品配置"目录下配置获得的方式以及推送地址,详情操作指引请查看控制台操作指南。
推送的方式
推送请求
URL:http://client_url
推送方式:GET
推送绑定状态报告接收地址
登录
控制台在对应"API账号"的"产品配置"目录下配置推送地址,
回送地址服务器需要启动一个 http 服务用于接收状态报告。用户在收到状态报告后需要自己写个方法去做处理收到的参数。
示例说明
比如用户账户设置的短信回送地址为:http://client_url,那么当 253 平台收到运营商回送的短信状态后便会以 get 请求访问以下 url:
http://client_url?receiver=&pswd=&msgid=24073116453300902203000007708373&reportTime=2411041728&mobile=13900000000&status=DELIVRD&
notifyTime=241104172820&statusDesc=%E7%9F%AD%E4%BF%A1%E5%8F%91%E9%80%81%E6%88%90%E5%8A%9F&length=1
注释:推送第一次不成功会推送第二次,第二次推送不成功推送第三次,第三次推送不成功就不会再推。间隔时间为 1 分钟。服务端推送:将推送地址配置在账号中,当服务端推送成功后需要客户端响应具体的 json 响应码
示例如下:
{"clcode":"000000"} ---- 代表成功
{"clcode":"111111"} ---- 代表失败,需要重新推送(按照一定规则重新推送)
推送 GET 参数
名称 | 类型 | 描述 | 示例 |
---|
receiver | string | 接收验证的用户名,配置时不填写则为空,如需配置请联系技术 | |
pswd | string | 接收验证的密码,配置时不填则为空,如需配置请联系技术 | |
mobile | string | 接收短信的手机号码 | "mobile":"13900000000" |
status | string | 运营商返回的短信接收状态(接收成功只有一个状态:DELIVRD,其余失败状态请前往 code.253.com 查看) | "status":"DELIVRD" |
statusDesc | string | "status"状态里对应的中文解释,内容经过 URLEncode 编码(UTF-8),需要自行解码后得到明文 | "statusDesc":"%E7%9F%AD%E4%BF%A1%E5%8F%91%E9%80%81%E6%88%90%E5%8A%9F" |
notifyTime | string | 253创蓝平台收到运营商推送状态报告的时间,格式 yyMMddHHmmss | "notifyTime":"241104172820" |
reportTime | string | 运营商返回的状态更新时间,格式 YYMMddHHmm,其中 YY=年份的最后两位(00-99) | "reportTime":"2411041728" |
msgid | string | 消息 id(32位纯数字,调用发送接口时接口响应的msgId) | "msgid":"24073116453300902203000007708373" |
length | int | 下发短信计费条数,纯数字 | "length":"1" |
uid | string | 请求发送接口传了uid参数,则会返回该参数,反之没有 | "uid":"154789574" |
拉取的方式
开通此接口功能后,数据拉取成功后服务器会删除当前拉取成功的数据,不再保存!请用户及时存储。此状态报告上限存储 100 万条,请在发送短信后立即拉取走,避免存储上限导致丢失。
注:该接口默认不开放,联系客服开启。
请求
URL:https://smssh1.253.com/msg/pull/report
请求方式:json 格式封装的字符串,采用 post 方式提交请求
请求协议:http,https
编码格式:utf-8
Content-Type:application/json
参数说明
参数名 | 类型 | 是否必须 | 描述 | 示例 |
---|
account | string | 是 | API 账号 | "account":"N9000001" |
password | string | 是 | API 密码(8-16 位) | "password":"ABCdef15301" |
count | integer | 否 | 拉取个数(上限 200,默认 20) | "count":"20" |
请求示例
{
"account":"N6000001",
"password":"123456",
"count":"20"
}
响应
参数说明
参数名 | 类型 | 描述 | 示例 |
---|
ret | int | 请求状态。0 成功,其他状态为失败 | "ret":0 |
result | string | 状态明细结果,没结果则返回空数组 | "result":[{ XXX:XXX }] |
mobile | string | 接收短信的手机号码 | "mobile":"13900000000" |
status | string | 运营商返回的状态(接收成功只有一个状态:DELIVRD,其余失败状态前往 code.253.com 查看) | "status":"DELIVRD" |
statusDesc | string | "status"状态里对应的中文解释 | "statusDesc":"短信发送成功 |
notifyTime | string | 253创蓝平台收到运营商推送状态报告的时间,格式 yyMMddHHmmss | "notifyTime":"241104172820" |
reportTime | string | 运营商返回的状态更新时间,格式 YYMMddHHmm,其中 YY=年份的最后两位(00-99) | "reportTime":"2411041728" |
msgId | string | 消息 id (32位纯数字,调用发送接口时我们响应的msgId) | "msgId":"24073116453300902203000007708373" |
length | string | 下发短信计费条数,纯数字 | "length":"1" |
uid | string | 请求发送接口传了uid参数,则会返回该参数,反之没有 | "uid":"154789574" |
响应示例
{
"ret":0,
"result":[{
"uid":"154789574",
"statusDesc":"短信发送成功",
"notifyTime":"241104172820",
"mobile":"13900000000",
"msgId":"24073116453300902203000007708373",
"reportTime":"2411041728",
"status":"DELIVRD",
"length": "1"
}]
}
没有更多了