push.md 2.3 KB

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

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

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

Payload(OrderPushBodyDto JSON)

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

通知正文

事件 接收端 title content(渲染后)
骑手抢单 用户 App 消息no.message.push.message 骑手已接单,NO:{orderNo}
骑手取件 用户 App 同上 骑手配送中,NO:{orderNo}
骑手送达 用户 App 同上 骑手已送达,NO:{orderNo}
订单取消 骑手 App 同上 订单已取消,NO:{orderNo}
可抢闪送新单 骑手 App 同上 有新的闪送订单,NO:{orderNo}no.message.push.new.flash.order
  • 文案按接收方 locale 渲染(vi/zh/tw/en/th,复用既有 6 份 i18n 资源)。
  • 取消通知只发给接单骑手;寄件用户不发(spec FR-004/FR-005)。
  • 每条推送同时经 PushEventService 写入 push_message(消息中心可回看)。
  • 外卖骑手新单改用 no.message.push.new.food.order(“有新的外卖订单”),避免与闪送文案混淆;两者 payload 的 pushType 仍分别按各自业务类型路由。

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

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