# onOrderStatus

本文档描述服务器端接收的消息或事件,详细说明参见消息推送

配送单配送状态更新通知接口

# 消息参数

# Object

属性 类型 说明
ToUserName string 快递公司小程序 UserName
FromUserName string 微信团队的 OpenID (固定值)
CreateTime number 事件时间,Unix时间戳
MsgType string 消息类型,固定为 event
Event string 事件类型,固定为 update_waybill_status,不区分大小写
shopid string 商家id, 由配送公司分配的appkey
shop_order_id string 唯一标识订单的 ID,由商户生成
shop_no string 商家门店编号, 在配送公司侧登记
waybill_id string 配送单id
action_time number Unix时间戳
order_status number 配送状态,详见下方的order_status 枚举值
action_msg string 附加信息
agent Object 骑手信息

agent 的结构

属性 类型 说明
name string 骑手姓名
phone string 骑手电话
reach_time number 预计送达时间戳, 配送中返回

order_status 枚举值

说明
101 配送公司接单阶段——等待分配骑手,即初始状态
102 配送公司接单阶段——分配骑手成功
103 配送公司接单阶段——商家取消订单, 订单结束
201 骑手取货阶段——骑手到店开始取货
202 骑手取货阶段——取货成功
203 骑手取货阶段——取货失败,商家取消订单, 订单结束
204 骑手取货阶段——取货失败,骑手因自身原因取消订单, 订单结束
205 骑手取货阶段——取货失败,骑手因商家原因取消订单, 订单结束
301 骑手配送阶段——配送中
302 骑手配送阶段——配送成功, 订单结束
303 骑手配送阶段——商家取消订单,配送物品开始返还商家
304 骑手配送阶段——无法联系收货人,配送物品开始返还商家
305 骑手配送阶段——收货人拒收,配送物品开始返还商家
401 骑手返回配送货品阶段——货品返还商户成功, 订单结束
501 因运力系统原因取消, 订单结束
502 因不可抗拒因素(天气,道路管制等原因)取消,订单结束

补充说明:

  1. 最终状态包括成功状态302,失败状态: 103,203,204,205,401,501,502。
  2. 当状态更新时,我们会在关键节点给收件用户推送服务通知,告知配送状态,同一配送单常态下会收到三条通知,即【骑手已接单】、【骑手已取货,配送中】、【配送已完成】,配送异常时会下发【配送异常】服务通知。

此外,不同服务通知对应的 order_status 枚举值为

服务通知 对应的order_status值
骑手已接单 102
骑手已取货,配送中 202或301
配送已完成 302
配送异常 203、204、205、303、304、305、501、502

# 消息返回

属性 类型 默认值 必填 说明
ToUserName string 原样返回请求中的 FromUserName
FromUserName string 快递公司小程序 UserName
CreateTime number 事件时间,Unix时间戳
MsgType string 消息类型,固定为 event
Event string 事件类型,固定为 update_waybill_status,不区分大小写
resultcode number 错误码
resultmsg string 错误描述

# 使用场景

当配送公司更新订单配送状态时,微信会通过本接口同步通知商户

# 消息数据包示例

JSON 格式

{
  "ToUserName": "toUser",
  "FromUserName": "fromUser",
  "CreateTime": 1546924844,
  "MsgType": "event",
  "Event": "update_waybill_status",
  "shopid": "123456",
  "shop_order_id": "123456",
  "waybill_id": "123456",
  "action_time": 1546924844,
  "order_status": 102,
  "action_msg": "",
  "shop_no": "123456",
  "agent": {
     "name": "xxx",
     "phone": "1234567"
  }
}