
# 接受处理infobip发送的报告信息接口
#### 接口功能
接受处理infobip发送的报告信息，分为三种：座席发送消息的状态报告；用户已读消息的报告；用户删除消息的报告。
#### 使用说明
- 前提条件 正确创建whatsApp渠道配置，选择服务提供商为infobip。
  
- 详见官方文档：https://www.infobip.com/docs
 
#### 接口鉴权
通过infobip集成商接入WhatsApp使用该鉴权方式。
使用说明：
在AICC侧，渠道配置页面，配置webhook密码。
调用whatsappadapter测接口，请求中添加请求头AccountKey，AccountKey的值为webhook密码。
表1接口鉴权说明（调用接口方法） 
|   请求方法    |                                                    POST                                                    ||
|---|---|---|
| **请求URL** | https://ip:port/social/on/whatsapp/{whatsAppBsp}/report/\*\* | 其中，ip:port为对外暴露的nslb的ip和port，whatsAppBsp为集成方 |
   
表2请求Headers参数说明 
| 参数名称         | 选取原则 | 参数类型   | 默认值 | 说明                                  |
|:---|:---|:---|:---|:---|
| Content-Type | 必选   | String | 无   | 固定填 application/json;charset=UTF-8。 |
| AccountKey   | 必选   | String | 无   | AICC测渠道配置处配置的webhook认证密码            |
   
#### 接口原型
表3接口原型说明 
|   请求方法    |                                                                                                                   POST                                                                                                                    ||
|---|---|---|
| **请求URL** | https://ip:port/social/on/whatsapp/{whatsAppBsp}/report/{channelId} | 其中，ip:port为对外暴露的nslb的ip和port，whatsAppBsp为集成方， channelId为渠道id |
   
#### 请求参数
表4请求Body中参数说明 
| 参数名称    | 选取原则 | 参数类型      | 说明                                                                                                                     |
|:---|:---|:---|:---|
| results | 必选   | Array\[\] | 报告消息列表。[表5] |
   
 表5请求results中参数说明 
| 参数名称      | 选取原则 | 参数类型       | 说明                                                                                                                            |
|:---|:---|:---|:---|
| messageId | 必选   | String     | 报告消息唯一编码                                                                                                                      |
| bulkId    | 可选   | String     | 状态信息（座席消息发送状态）                                                                                                                |
| deletedAt | 可选   | Timestamp  | 删除时间（用户删除消息，infobip推送删除消息的报告）                                                                                                 |
| seenAt    | 可选   | Timestamp  | 已读时间（用户阅读消息，infobip推送消息已读的报告）                                                                                                 |
| to        | 必选   | String     | 用户ID                                                                                                                          |
| status    | 可选   | jsonobject | 座席发送消息的状态信息。[表6] |
   
 表6请求status中参数说明 
| 参数名称        | 选取原则 | 参数类型   | 说明                                                                                       |
|:---|:---|:---|:---|
| groupName   | 必选   | String | 报告类型：DELIVERED（发送成功）：0；PENDING（等待中）：1；UNDELIVERABLE（发送失败）：2；EXPIRED（超时）：2；REJECTED（拒绝）：2 |
| groupId     | 必选   | String | 报告类型ID                                                                                   |
| description | 必选   | String | 状态信息描述                                                                                   |
   
#### 响应参数
调用本接口无响应内容。
#### 接口示例
- 请求示例
  ```
  POST /social/on/whatsapp/infobip/report/202105102694809992
  host: 10.10.10.2:18446
  connection: Keep-Alive
  x-forwarded-for: 10.10.10.3, 10.10.10.4
  x-real-ip: 10.10.10.5
  content-length: 401
  remote-host: 10.10.10.6
  user-agent: java/socket
  accountkey: ***************
  content-type: application/json;charset=UTF-8
  cookie: JSESSION*****#*#*****3
  accept: */*
  {
      "results": [
          {
              "messageId": "742f868d-c9e9-4eda-b5c0-2747cb7ef773",
              "bulkId": "111111",
              "to": "8618257518838",
              "status": {
                  "groupName": "UNDELIVERABLE",
                  "groupId": 4,
                  "description": "UNDELIVERABLE"
              }
          }
      ]
  }
  ```
  
 
