
# 接收状态报告
#### 功能介绍
该接口用于用户接收短信平台主动发送的短信状态报告，状态报告中的回调地址在"发送短信"与"发送分批短信"接口中的"statusCallback"字段中设置。
#### 前提条件
- 用户对短信平台推送的状态报告免鉴权。
- 用户服务器若有IP白名单配置，请联系运营经理获取短信平台IP地址并加入白名单。
 
#### 注意事项
短信发送成功后，平台收到状态报告，会实时推送状态报告给用户，最迟不超过72小时。
![](https://support.huaweicloud.com/api-msgsms/public_sys-resources/note_3.0-zh-cn.png)
- 若"statusCallback"字段已设置，则使用该字段的取值作为短信状态报告的回调地址。
- 若"statusCallback"字段未设置，则用户无法接收短信平台主动发送的状态报告。
 
#### 调试
您可以参考[接收状态报告代码样例](https://support.huaweicloud.com/devg-msgsms/sms_04_0018.html#ZH-CN_TOPIC_0000001606982993__section181149252366)，进行快速上手调试。
#### 接口类型
表1接口类型说明 
|   请求方法    |             POST             |
|---|---|
| **访问URI** | "发送短信"、"发送分批短信"接口中指定的用户回调地址。 |
| **通信协议**  | HTTPS/HTTP                   |
   
![](https://support.huaweicloud.com/api-msgsms/public_sys-resources/note_3.0-zh-cn.png)
回调接口使用HTTPS协议时，服务端需支持TLS1.2，加密套件需支持TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256，TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384，TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256，TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384中的一种或多种。
#### 请求参数
表2请求Headers参数 
| 参数名称          | 是否必选 | 参数类型   | 默认值 | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                |
|:---|:---|:---|:---|:---|
| Content-Type  | 是    | String | 无   | 固定填application/x-www-form-urlencoded。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
| X-Sdk-Date    | 否    | String | 无   | 签名时间戳，开启推送AKSK鉴权后携带。 格式为：yyyyMMdd'T'HHmmss'Z'                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| Authorization | 否    | String | 无   | 用于消息鉴权的哈希码，开启推送AKSK鉴权后携带。 格式为：SDK-HMAC-SHA256 Access= ***app_key*** ***的值*** , SignedHeaders=***参与签名的头域（小写）*** , Signature=***经过签名算法计算得到的值*** 具体计算方式请参考[添加签名信息到请求头](https://support.huaweicloud.com/devg-apisign/api-sign-algorithm-001.html)。 AKSK说明请参考[认证鉴权](https://support.huaweicloud.com/api-msgsms/sms_05_0046.html#section0)，验证方法请参考[推送AKSK验证](https://support.huaweicloud.com/api-msgsms/sms_05_0064.html)。 |
   
表3请求Body参数说明 
| 参数名称       | 是否必选 | 参数类型          | 默认值 | 说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
|:---|:---|:---|:---|:---|
| smsMsgId   | 是    | String(1-50)  | 无   | 发送短信成功时返回的短信唯一标识。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| total      | 否    | String(1-2)   | 无   | 长短信拆分后的短信条数。 当短信未拆分时该参数取值为1。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| sequence   | 否    | String(1-2)   | 无   | 长短信拆分后的短信序号，当total参数取值大于1时，该参数才有效。 当短信未拆分时该参数取值为1。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
| status     | 是    | String(1-7)   | 无   | 短信状态报告枚举值，常见取值请参考[表 Status常见取值]，处理方法请参考[状态报告错误码](https://support.huaweicloud.com/api-msgsms/sms_05_0051.html)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| statusDesc | 否    | String(1-500) | 无   | 错误码描述，常见取值请参考[表 Status常见取值]。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| source     | 否    | String(枚举)    | 无   | 短信状态报告来源： - 1：短信平台自行产生的状态报告。  - 2：短信中心返回的状态报告。  - 3：华为平台产生的状态报告。   |
| updateTime | 否    | String(1-20)  | 无   | 短信资源的更新时间，通常为短信平台接收短信状态报告的时间，为UTC时间，格式为：yyyy-MM-dd'T'HH:mm:ss'Z'，该时间会通过urlencode转义为%3a。 当短信平台未收到短信中心上报的状态报告时，会自行构造状态报告，该状态报告中不携带"updateTime"参数。                                                                                                                                                                                                                                                                                                                                                                                                                       |
| extend     | 否    | String(1-128) | 无   | 扩展字段，由用户在发送短信的请求中携带。若用户发送短信时未携带extend参数，则状态报告中也不会携带extend参数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| to         | 否    | String(1-21)  | 无   | 本条状态报告对应的短信的接收方号码，仅当状态报告中携带了extend参数时才会同时携带该参数。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
   
 表4Status常见取值 
| 取值      | 含义                           |
|:---|:---|
| DELIVRD | 用户已成功收到短信。                   |
| EXPIRED | 短信已超时。                       |
| DELETED | 短信已删除。                       |
| UNDELIV | 短信递送失败。                      |
| ACCEPTD | 短信已接收。                       |
| UNKNOWN | 短信状态未知。                      |
| REJECTD | 短信被拒绝。                       |
| E200018 | 国内短信发送方通道校验失败。               |
| E200019 | 国内短信发送方匹配通道失败。               |
| E200020 | 国内短信签名通道校验失败。                |
| E200021 | 国内短信签名匹配通道失败。                |
| E200022 | 国内短信接收方通道校验失败。               |
| E200023 | 国内短信接收方匹配通道失败。               |
| E200025 | 国际短信接收方通道校验失败。               |
| E200026 | 国际短信接收方匹配通道失败。               |
| E200027 | 匹配网关失败。                      |
| E200032 | 短信需要模板。                      |
| E200034 | 短信重传超时。                      |
| E200035 | 短信协议字段替换失败。                  |
| E200036 | 南向速率管控配置为0。                  |
| E200038 | 接收长短信超时。                     |
| MILIMIT | 号码达到分钟下发限制。                  |
| LIMIT   | 号码达到下发限制。                    |
| BEYONDN | 号码达到下发限制。                    |
| KEYWORD | 短信关键字拦截。                     |
| BLACK   | 号码黑名单。                       |
| MBBLACK | 号码黑名单。                       |
| DJ:0255 | 运营商拦截，一般是因为短信内容不允许发送。        |
| 1       | 此类错误码多为手机号码问题，如手机为空号，关机，停机等。 |
| 24      | 此类错误码多为手机号码问题，如手机为空号，关机，停机等。 |
| MK:xxxx | 此类错误码多为手机号码问题，如手机为空号，关机，停机等。 |
| MN:xxxx | 此类错误码多为手机号码问题，如手机为空号，关机，停机等。 |
| LT:0001 | 此类错误码多为手机号码问题，如手机为空号，关机，停机等。 |
| MA:xxxx | SMSC未返回响应消息。                 |
| MB:xxxx | SMSC返回错误响应消息。                |
| MC:xxxx | 未从SMSC处接收到状态报告。              |
| CA:xxxx | SCP未返回响应消息。                  |
| CB:xxxx | SCP返回错误响应消息。                 |
| DA:xxxx | DSMP未返回响应消息。                 |
| DB:xxxx | DSMP返回错误响应消息。                |
| SA:xxxx | SP未返回响应消息。                   |
| SB:xxxx | SP返回错误响应消息。                  |
| IA:xxxx | 下一级ISMG未返回响应消息。              |
| IB:xxxx | 下一级ISMG返回错误响应消息。             |
| IC:xxxx | 没有从下一级ISMG处接收到状态报告。          |
| SC:0001 | 人工审核拦截                       |
| SC:0002 | 人工审核告警拦截                     |
| SC:0003 | 黑名单拦截                        |
| SC:0004 | 红名单拦截                        |
| SC:0005 | 投诉黑名单                        |
| SC:0006 | 禁用关键字拦截                      |
| SC:0007 | 特征关键字拦截                      |
| SC:0008 | 管控关键字拦截                      |
| SC:0009 | 缺失必备关键字                      |
| SC:0010 | 短信超频拦截                       |
| SC:0011 | 时段管控拦截                       |
| SC:0012 | 人工审核超时处理                     |
| SC:0013 | 签名黑名单拦截                      |
| SC:0014 | 免审核模板匹配                      |
| SC:0015 | 拦截模板匹配                       |
| SC:0016 | 退订黑名单拦截                      |
| SC:0017 | 非报备模板拦截                      |
| SC:0018 | 非报备签名拦截                      |
   
#### 响应参数
用户可以返回任意响应消息给短信平台，短信平台不会对响应消息处理。
当鉴权失败，返回错误码401 Unauthorized。
#### 请求示例
```
POST /report HTTP/1.1
Host: 205.145.111.168:9330
Content-Type: application/x-www-form-urlencoded
X-Sdk-Date: 20241212T070653Z
Authorization: SDK-HMAC-SHA256 Access=exampleAk,SignedHeaders=connection;content-length;content-type;host;x-sdk-date,Signature=765a365f3851fd1c96011a82b893266fb7b3e79b3002526c43199c97e61bb88b
Connection: close
Pooltype: approxy
Ompsid: 7f540777fe4b40dfb3c21d10f48781e3
TerminalIP: ******
TrcModule: AP
UserTrace: application
TraceHandle: DMZ_818405
sequence=1&total=1&orgCode=000&updateTime=2018-04-13T06%3A31%3A46Z&source=2&smsMsgId=b9d9b4fe-ad0e-4a2a-a2c7-445505b674ac_6&status=DELIVRD
```
#### 响应示例
```
HTTP/1.1 200 OK
Date: Fri, 13 Apr 2018 06:31:45 GMT
Content-Type: application/JSON; charset=UTF-8
Content-Length: 43
{"returnCode":0,"returnCodeDesc":"Success"}
```
