航变消息接收接口
外部系统(邮件解析、机器人等)向系统推送航班变更、机型座位变更等航变消息。消息进入系统后写入消息盒子,并弹出「航变消息」强提醒,运营点击「已处理」后弹窗才会关闭。
请求地址
POST {baseUrl}/prod-api/order/flightMessage/notify?token={notifyToken}
Content-Type: application/json{notifyToken} 是我方提供的固定密钥,通过 URL 参数 token 传入,不放在 Header 中。
请求参数
必填
| 参数 | 位置 | 说明 |
|---|---|---|
token | URL | 接口认证密钥。缺失或错误时不写入消息盒子,只记录失败的接收日志 |
content | Body | 航变消息原文,建议直接传邮件或机器人消息中的整段文本 |
curl -X POST 'https://你的网关域名/prod-api/order/flightMessage/notify?token=我方提供的固定密钥' \
-H 'Content-Type: application/json' \
-d '{"content":"订单号:SO202610090001\n标题:航班时刻变更\nMU5101 10月12日 起飞时间变更为09:35"}'可选
以下字段不传时,系统会从 content 中按关键字自动提取:
| 字段 | 不传时的处理 |
|---|---|
orderNo | 从「订单号:」提取;值为「未查询到」「未查到」时不保存 |
reservationNo | 从「预约号码:」或「预约号:」提取 |
receiveEmail | 从「接收邮箱:」提取 |
emailReceiveTime | 从「邮件接收时间:」提取 |
subject | 从「标题:」提取 |
source | 外部来源标识,如 email、robot,只用于记录 |
不需要传
title、messageType、readStatus、processStatus、userId、createTime、dedupeKey 均由系统维护。消息会推送给所有在线用户,不需要指定用户。
响应
{ "code": "0", "msg": "success", "data": { "accepted": true } }| 场景 | code | reason |
|---|---|---|
| 成功 | 0 | — |
| 认证失败 | 401 | AUTH_FAILED |
content 为空 | 400 | EMPTY_CONTENT |
去重规则
系统按以下维度自动去重:
FLIGHT_CHANGE_MESSAGE + orderNo/reservationNo + content 正文哈希重复推送的同一条消息不会重复生成记录,也不会重复弹窗,但接收日志仍会记录。
系统处理效果
- 写入接收日志;
- 写入消息盒子;
- 通过 WebSocket 推送给在线用户;
- 前端弹出「航变消息」强提醒;
- 运营点击「已处理」后关闭弹窗。
离线期间收到的未处理消息,在用户重新进入系统或 WebSocket 重连后会继续提醒。