推送状态报告
功能说明:开通此接口后,我们将为您实时推送最新的状态报告。您需要提供一个callback url地址,接受http post请求。 该接口一次最多推送100个状态报告,为不影响推送速度,建议先接受数据后再做异步处理。
备注:
- 本功能默认不开启,如需开启请前往“系统设置-数据获取与推送”页设置。您可以设置固定的callback url 地址,也可以在每次发送请求中携带callback url 地址。我们会优先向发送请求中携带的callback url 地址推送。
- 所有带+86前缀的号码都会去掉+86
- 接收到数据后,请从参数sms_status中取值,取到值使用urldecode解码后为实际json格式数据(部分语言由于解码方式差异需要解码两次)处理成功请返回字符串"SUCCESS"或"0",其他返回值将被认为是失败。该接口失败重试次数为3次,每次间隔5分钟。
- 获取数据后,建议根据sid做去重。
HTTP头信息:
Accept:application/json;charset=utf-8;
Content-Type:application/x-www-form-urlencoded;charset=utf-8;
请求
URL:http://your_receive_url_address
注意:海外服务器地址 us.yunpian.com
访问方式:POST
请求参数
参数名 | 类型 | 是否必须 | 描述 |
sms_status | string | 是 | 经过urlencode编码的数据形式如:sms_status=urlencode(json) |
具体详解:
推送的数据格式:
<参数名>=<经过urlencode编码的数据>
例如:
sms_status=urlencode(json)
服务端推送数据形式如下:
curl --data "sms_status=url_encode_json" http://your_receive_url_address
推送json参数
名称 | 类型 | 描述 |
error_detail | string | 运营商反馈代码的中文解释,如使用该字段遇到问题请联系客服 |
sid | long(64位)是 | 短信id,64位整型, 对应Java和C#的long,不可用int解析 |
uid | string | 用户自定义id |
user_receive_time | string | 用户接收时间 |
error_msg | string | 运营商返回的代码,如:"DB:0103";由于不同运营商信息不同,此字段仅供参考; |
mobile | string | 接收手机号 |
report_status | string | 接收状态有: "SUCCESS" / "FAIL“ |
重要说明
请按照如下顺序使用参数
- 请先使用 report_status 判断接收状态;如果是"SUCCESS",为接收成功;如果是"FAIL",为接收失败;
- 如果接收状态失败,可以参考error_detail 以及 error_msg 来获取更详细信息;特别注意,这两个字段为解释型字段,请不要依据这两个字段判断接收状态;
- 请妥善保存推送信息;
- 如果您的系统接收推送信息失败,请及时联系我们。
其中json示例
[
{
"error_detail": "接收成功",
"sid": 9527,
"uid": "1234567",
"user_receive_time": "2014-03-17 22:55:21",
"error_msg": "DELIVRD",
"mobile": "15205201314",
"report_status": "SUCCESS"
},
{ "error_detail": "空号、停机或关机",
"sid": 9528,
"uid": "121",
"user_receive_time": "2014-03-17 22:55:23",
"error_msg": "MI:0024",
"mobile": "15212341235",
"report_status": "FAIL"
},
{
"error_detail": "接收成功",
"sid": 9529,
"uid": "abcdefg",
"user_receive_time": "2014-03-17 22:55:23",
"error_msg": "DELIVRD",
"mobile": "15212341234",
"report_status": "SUCCESS"
}
]