
# 接受并处理gupshup发送的报告消息接口
#### 接口功能
接受并处理gupshup发送的报告消息。
#### 使用说明
- 前提条件 正确创建whatsApp渠道配置，选择服务提供商为gupshup。
  
- 详见官方文档：https://docs.gupshup.io/docs/overview
 
#### 接口鉴权
通过gupshup集成商接入WhatsApp使用该鉴权方式。
使用说明：
在AICC测，渠道配置页面，配置webhook密码。
调用whatsappadapter侧接口，请求中添加请求头Authorization，Authorization的值为webhook密码。
#### Headers请求参数
表1请求Headers参数说明 
| 参数名称          | 选取原则 | 参数类型   | 默认值 | 说明                                  |
|:---|:---|:---|:---|:---|
| Content-Type  | 必选   | String | 无   | 固定填 application/json;charset=UTF-8。 |
| Authorization | 必选   | String | 无   | AICC测渠道配置处配置的webhook认证密码            |
   
#### 接口原型
表2接口原型说明 
|   请求方法    |                                                                                                                    POST                                                                                                                    ||
|---|---|---|
| **请求URL** | https://ip:port/social/on/whatsapp/{whatsAppBsp}/message/{channelId} | 其中，ip:port为对外暴露的nslb的ip和port，whatsAppBsp为集成方， channelId为渠道id |
   
#### BODY请求参数
表3请求Body中参数说明 
| 参数名称      | 选取原则 | 参数类型   | 说明                                                                                                                          |
|:---|:---|:---|:---|
| timestamp | 必选   | long   | 用户发送消息的时间；为Unix时间戳；                                                                                                         |
| type      | 必选   | String | 消息的类型；message-report（消息报告）                                                                                                  |
| payload   | 必选   | object | 消息的载体；参考表[表4] |
   
 表4payload中参数说明 
| 参数名称        | 选取原则 | 参数类型   | 说明                                                                                                                    |
|:---|:---|:---|:---|
| gsId        | 必选   | String | gupshup侧的消息唯一id                                                                                                       |
| type        | 必选   | String | 消息类型：delivered（送达）；read（已读）                                                                                           |
| destination | 必选   | String | 用户手机号                                                                                                                 |
| payload     | 必选   | object | 消息内容；[表5] |
   
 表5payload中参数说明 
| 参数名称 | 选取原则 | 参数类型 | 说明                   |
|:---|:---|:---|:---|
| ts   | 必选   | long | 消息产生的时间；unix时间戳格式（秒） |
   
#### 响应参数
调用本接口无响应内容。
#### 接口示例
- 请求示例
  ```
  POST /social/on/whatsapp/gupshup/message/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
  Authorization: *************
  content-type: application/json;charset=UTF-8
  accept: */*
  {
    "timestamp" : 1743075951500,
    "type" : "message-event",
    "payload" :
    {
      "gsId" : "7d047a97-c5b8-4f13-82cb-f68068d1a33a",
      "type" : "read",
      "destination" : "8618******1",
      "payload" :
      {
        "ts" : 1743075950
      }
    }
  }
  ```
  
 
