目录

下行消息回执

为了更安全的网络访问,华为推送服务于2022年11月30日关闭Push相关域名的TLS1.0、TLS1.1协议及规定之外的加密套件,关闭后,应用使用TLS1.2以下协议或使用规定外的加密套件将无法正常推送消息。

若您的应用访问Push相关域名使用协议是TLS1.0或TLS1.1,后续可能无法正常发送消息,请您务必升级到TLS1.2及以上版本。

调整指导请查阅《Push Kit相关域名的TLS1.0和TLS1.1协议关闭通知》,如您有任何疑问,请联系技术支持,感谢您对华为推送的支持。

功能介绍

华为推送服务器调用此接口给您的服务器推送回执消息。

接口约束

您需要在AppGallery Connect上开通“消息回执”权益,如何开通请参见开发指南消息回执开发准备。

接口原型

承载协议

HTTPS POST

接口方向

华为服务器 -> 开发者回执消息接收服务器

接口URL

您的回执接收服务器的地址,由您定义,同AppGallery Connect上配置的回执地址一致。

数据格式

请求消息:Content-Type: application/json

响应消息:Content-Type: application/json

接口版本

回执接口版本分为V1和V2,不同版本的回执消息请求头和响应参数相同,仅请求体不同。

V1版本支持的下行消息接口为:

https://push-api.cloud.huawei.com/v1/[clientid]/messages:send

https://push-api.cloud.huawei.com/v2/[projectid]/messages:send

V2版本支持上述和后续新增的接口,建议您按照指导进行切换。

请求参数

Request Header

参数名

取值描述

样例

X-HUAWEI-CALLBACK-ID

消息头鉴权参数,可选字段。当回执配置中回调用户名与回调秘钥均已配置时为必选参数。

timestamp=1563105451261; nonce=a07bfa17-6d82-4b53-a9a2-07cfef5ceef1; value=E4YeOsnMtHZ6592U8B9S37238E+Hwtjfrmpf8AQXF+c=

  • timestamp为标准unix时间戳
  • nonce为UUID随机数
  • value为待加密字符串(value示例中为了展示各字段,实际上是由timestamp、nonce、回调用户名拼接而成,不需要“+”)使用回调秘钥进行HmacSHA256加密后,经Base64编码后获得

Request Body

参数

是否必选

参数类型

描述

statuses

是

Array [statuses Object ]

回执消息内容,包含最多100个statuses结构的数组,分为V1和V2版本。

statuses V1版本

参数

是否必选

参数类型

描述

token

是

String

消息发送目标用户Token,携带给应用服务器。

biTag

是

String

您在发送消息时携带的biTag。如果下发推送消息未设置bi_tag字段,则该字段内容为空。

status

是

Integer

返回的回执状态码,请参见回执状态码。

timestamp

是

Long

消息成功到达客户端的时间戳(标准unix时间戳)。

clientId

是

String

返回应用的Client ID。

requestId

是

String

请求ID,在发送接口中返回的值。

subStatus

否

Integer

针对回执状态码消息发送管控的细分状态码,取值如下:

  • 2:应用已卸载
  • 5:消息中指定的Token与设备当前登录的用户无法匹配
  • 6:用户关闭了显示通知栏消息

statuses V2版本

参数

是否必选

参数类型

描述

token

是

String

消息发送目标用户Token,携带给应用服务器。

appPackageName

是

String

消息发送方的应用包名。

biTag

是

String

您在发送消息时携带的biTag。如果下发推送消息未设置bi_tag字段,则该字段内容为空。

requestId

是

String

请求ID,在发送接口中返回的值。

deliveryStatus

否

deliveryStatus Object

消息的送达状态deliveryStatus结构体。

注意:

V2版本移除了V1版本中的subStatus字段,deliveryStatus.result字段会包含subStatus中的内容。

deliveryStatus

参数

是否必选

参数类型

描述

result

是

Integer

消息到达的回执状态码,请参见回执状态码。

timestamp

是

Long

消息成功到达客户端的时间戳(标准unix时间戳),失败则为回执消息生成的时间戳。

请求示例

V1版本

{
    "statuses": [
        {
            "biTag": "131415",
            "clientId": "132****013",
            "token": "148896*******000001",
            "status": 0,
            "timestamp": 1489993883189,
            "requestId": "1*******0"
        },
        {
            "biTag": "131415",
            "projectid": "60*******13",
            "token": "14889646*******13000001",
            "status": 2,
            "timestamp": 1489993888189,
            "requestId": "1*******890"
        }
    ]
}

V2版本

{
    "statuses": [
        {
            "biTag": "131415",
            "appPackageName": "com.****",
            "token": "148896*******000001",
            "requestId": "1*******0",
            "deliveryStatus":{
                "result": 0,
                "timestamp": 1607832761768
            }
        }
    ]
}

响应参数

Response Body

参数

是否必选

参数类型

描述

code

是

String

应用服务器返回的处理结果状态。

message

是

String

应用服务器返回的处理结果描述信息。

响应示例

{
    "code": "0",
    "message": "success"
}