push.md 1.9 KB

Push Payload Contract: 闪送订单状态变更消息推送

Date: 2026-09-17 | Spec: spec.md

本特性不新增 HTTP 接口端点。对外契约只有一份:推送给客户端的 payload 形状(经 uni 云函数透传给 App)。

Payload(OrderPushBodyDto JSON)

{
  "ddId": "FD7A3F9C2E1B4D5A6F7C8D9E",
  "state": "ACCEPTED",
  "type": -1,
  "pushType": 3
}
字段 取值 说明
ddId 闪送 orderNoFD + 24 位大写十六进制) 订单标识;沿用历史字段名以兼容客户端既有解析
state ACCEPTED / PICKED_UP / DELIVERED / CANCELLED 推送对应的目标状态(闪送状态枚举字符串,非外卖数字状态)
type -1 -1=非语音提醒(0 仅用于外卖骑手新单语音)
pushType 3 新增取值:3=闪送订单(既有:1=外卖、2=充值)。客户端按此路由到闪送订单详情页

通知正文

事件 接收端 title content(渲染后)
骑手抢单 用户 App 消息no.message.push.message 骑手已接单,NO:{orderNo}
骑手取件 用户 App 同上 骑手配送中,NO:{orderNo}
骑手送达 用户 App 同上 骑手已送达,NO:{orderNo}
订单取消 骑手 App 同上 订单已取消,NO:{orderNo}
  • 文案按接收方 locale 渲染(vi/zh/tw/en/th,复用既有 6 份 i18n 资源)。
  • 取消通知只发给接单骑手;寄件用户不发(spec FR-004/FR-005)。
  • 每条推送同时经 PushEventService 写入 push_message(消息中心可回看)。

客户端适配注意(本仓库外)

  • 客户端收到 pushType=3 的推送时,用 ddId(orderNo)跳转闪送订单详情;state 为闪送状态枚举字符串,与外卖的数字 state 语义不同,勿混用。
  • 客户端适配不在本仓库范围(spec Assumptions)。