# 查询运单

> 本文档描述服务器端接收的消息或事件，详细说明参见[消息推送](/miniprogram/dev/framework/server-ability/message-push.md)。

事件英文名：query_single_waybill

用户查询运单时，会发送此请求，开发者需要返回相应运单信息。

## 1. 消息参数

### 请求体 `Request Payload`

```json
[
  {
    "参数名": "ToUserName",
    "类型": "string",
    "说明": "快递公司小程序UserName"
  },
  {
    "参数名": "FromUserName",
    "类型": "string",
    "说明": "微信团队的OpenID（固定值）"
  },
  {
    "参数名": "CreateTime",
    "类型": "number",
    "说明": "事件时间，Unix时间戳"
  },
  {
    "参数名": "MsgType",
    "类型": "string",
    "说明": "消息类型，固定为event"
  },
  {
    "参数名": "Event",
    "类型": "string",
    "说明": "事件类型，固定为query_single_waybill，不区分大小写"
  },
  {
    "参数名": "Token",
    "类型": "string",
    "说明": "订单Token，下单时传入的值"
  },
  {
    "参数名": "WXAppId",
    "类型": "string",
    "说明": "下单的小程序的appid"
  },
  {
    "参数名": "WaybillId",
    "类型": "string",
    "说明": "运单号，运力方如有更新会同步带上"
  },
  {
    "参数名": "OrderID",
    "类型": "string",
    "说明": "订单ID，可以使用token而不用这个字段"
  }
]
```

## 2. 消息返回

### 返回体 `Response Payload`

```json
[
  {
    "参数名": "ToUserName",
    "类型": "string",
    "必填": "是",
    "说明": "原样返回请求中的FromUserName"
  },
  {
    "参数名": "FromUserName",
    "类型": "string",
    "必填": "是",
    "说明": "快递公司小程序UserName"
  },
  {
    "参数名": "CreateTime",
    "类型": "number",
    "必填": "是",
    "说明": "事件时间，Unix时间戳"
  },
  {
    "参数名": "MsgType",
    "类型": "string",
    "必填": "是",
    "说明": "消息类型，固定为event"
  },
  {
    "参数名": "Event",
    "类型": "string",
    "必填": "是",
    "说明": "事件类型，固定为query_single_waybill，不区分大小写"
  },
  {
    "参数名": "ResultCode",
    "类型": "number",
    "必填": "是",
    "说明": "处理结果错误码"
  },
  {
    "参数名": "ResultMsg",
    "类型": "string",
    "必填": "否",
    "说明": "处理结果的详细信息"
  },
  {
    "参数名": "WayBillID",
    "类型": "string",
    "必填": "否",
    "说明": "运单ID，已生成时必填"
  },
  {
    "参数名": "Sender",
    "类型": "object",
    "必填": "否",
    "说明": "发件人信息"
  },
  {
    "参数名": "Receiver",
    "类型": "object",
    "必填": "否",
    "说明": "收件人信息"
  },
  {
    "参数名": "GoodDetail",
    "类型": "object",
    "必填": "否",
    "说明": "物品详情"
  },
  {
    "参数名": "Insured",
    "类型": "object",
    "必填": "否",
    "说明": "保价信息"
  },
  {
    "参数名": "PathInfo",
    "类型": "object",
    "必填": "否",
    "说明": "轨迹信息"
  },
  {
    "参数名": "Fee",
    "类型": "number",
    "必填": "否",
    "说明": "运单所需要支付的费用，单位分，费用确定时必填"
  },
  {
    "参数名": "OriginalFee",
    "类型": "number",
    "必填": "否",
    "说明": "原价，单位分"
  },
  {
    "参数名": "OnlinePay",
    "类型": "number",
    "必填": "是",
    "说明": "是否支持在线支付，0-不支持，1-支持在线支付"
  },
  {
    "参数名": "PayResult",
    "类型": "number",
    "必填": "是",
    "说明": "支付结果 0-未支付 1-线上支付完成 2-线下支付完成"
  }
]
```

### Res.Sender `Object Payload`

发件人信息

```json
[
  {
    "参数名": "Name",
    "类型": "string",
    "必填": "是",
    "说明": "收件人姓名"
  },
  {
    "参数名": "Tel",
    "类型": "string",
    "必填": "是",
    "说明": "收件人座机号码"
  },
  {
    "参数名": "Mobile",
    "类型": "string",
    "必填": "是",
    "说明": "收件人手机号码"
  },
  {
    "参数名": "Province",
    "类型": "string",
    "必填": "是",
    "说明": "省份，比如\"广东省\""
  },
  {
    "参数名": "City",
    "类型": "string",
    "必填": "是",
    "说明": "地区/市，比如\"广州市\""
  },
  {
    "参数名": "Area",
    "类型": "string",
    "必填": "是",
    "说明": "区/县，比如\"海珠区\""
  },
  {
    "参数名": "Street",
    "类型": "string",
    "必填": "否",
    "说明": "街道，比如新港中路"
  },
  {
    "参数名": "Address",
    "类型": "string",
    "必填": "是",
    "说明": "详细地址，比如\"XX路XX号XX大厦XX\""
  }
]
```

### Res.Receiver `Object Payload`

收件人信息

```json
[
  {
    "参数名": "Name",
    "类型": "string",
    "必填": "是",
    "说明": "收件人姓名"
  },
  {
    "参数名": "Tel",
    "类型": "string",
    "必填": "是",
    "说明": "收件人座机号码"
  },
  {
    "参数名": "Mobile",
    "类型": "string",
    "必填": "是",
    "说明": "收件人手机号码"
  },
  {
    "参数名": "Province",
    "类型": "string",
    "必填": "是",
    "说明": "省份，比如\"广东省\""
  },
  {
    "参数名": "City",
    "类型": "string",
    "必填": "是",
    "说明": "地区/市，比如\"广州市\""
  },
  {
    "参数名": "Area",
    "类型": "string",
    "必填": "是",
    "说明": "区/县，比如\"海珠区\""
  },
  {
    "参数名": "Street",
    "类型": "string",
    "必填": "否",
    "说明": "街道，比如新港中路"
  },
  {
    "参数名": "Address",
    "类型": "string",
    "必填": "是",
    "说明": "详细地址，比如\"XX路XX号XX大厦XX\""
  }
]
```

### Res.GoodDetail `Object Payload`

物品详情

```json
[
  {
    "参数名": "Weight",
    "类型": "number",
    "必填": "是",
    "说明": "货物总重量，比如1.2，单位是千克(kg)",
    "枚举": "-"
  },
  {
    "参数名": "Special",
    "类型": "number",
    "必填": "是",
    "说明": "物品类型，见物品类型说明",
    "枚举": "枚举值"
  }
]
```

### Res.Insured `Object Payload`

保价信息

```json
[
  {
    "参数名": "UseInsured",
    "类型": "number",
    "必填": "否",
    "说明": "是否保价，0表示不保价，1表示保价，默认0"
  },
  {
    "参数名": "InsuredValue",
    "类型": "number",
    "必填": "否",
    "说明": "保价金额，单位是分，比如:10000表示100元"
  }
]
```

### Res.PathInfo `Object Payload`

轨迹信息

```json
[
  {
    "参数名": "path_info",
    "类型": "objarray",
    "必填": "是",
    "说明": "轨迹内容"
  }
]
```

">

### Res.PathInfo.path_info(Array) `Object Payload`

轨迹内容

```json
[
  {
    "参数名": "action_time",
    "类型": "number",
    "必填": "是",
    "说明": "轨迹变化Unix时间戳",
    "枚举": "-"
  },
  {
    "参数名": "action_type",
    "类型": "number",
    "必填": "是",
    "说明": "轨迹变化类型，与普通单保持一致，参见附录action_type定义",
    "枚举": "枚举值"
  },
  {
    "参数名": "action_msg",
    "类型": "string",
    "必填": "是",
    "说明": "轨迹变化具体信息说明，展示在快递轨迹详情页中。若有手机号码，则直接写11位手机号码。使用UTF-8编码。",
    "枚举": "-"
  },
  {
    "参数名": "pickup_courier_name",
    "类型": "string",
    "必填": "否",
    "说明": "取件员姓名,当分配取件员成功时返回",
    "枚举": "-"
  },
  {
    "参数名": "pickup_courier_phone",
    "类型": "string",
    "必填": "否",
    "说明": "取件员电话,当分配取件员成功时返回",
    "枚举": "-"
  },
  {
    "参数名": "delivery_courier_name",
    "类型": "string",
    "必填": "否",
    "说明": "派件员姓名,当分配派件员成功时返回",
    "枚举": "-"
  },
  {
    "参数名": "delivery_courier_phone",
    "类型": "string",
    "必填": "否",
    "说明": "派件员电话,当分配派件员成功时返回",
    "枚举": "-"
  }
]
```

## 3. 枚举信息

### Res.GoodDetail.Special `Enum`

物品类型，见物品类型说明

```json
[
  {
    "枚举值": "0",
    "描述": "文件类"
  },
  {
    "枚举值": "1",
    "描述": "电子产品类(包括家用电器)"
  },
  {
    "枚举值": "2",
    "描述": "办公用品类,服装鞋帽，箱包类"
  },
  {
    "枚举值": "3",
    "描述": "化妆品，美容产品类"
  },
  {
    "枚举值": "4",
    "描述": "珠宝，手表，眼镜，贵重饰品类"
  },
  {
    "枚举值": "5",
    "描述": "食品，保健药品类"
  },
  {
    "枚举值": "6",
    "描述": "工艺品类(包括瓷器，茶具，烹饪用品)"
  },
  {
    "枚举值": "7",
    "描述": "玩具乐器类"
  },
  {
    "枚举值": "8",
    "描述": "其他类"
  }
]
```

__action_type">

### Res.PathInfo.path_info(Array).action_type `Enum`

轨迹变化类型，与普通单保持一致，参见附录action_type定义

```json
[
  {
    "枚举值": "90001",
    "描述": "揽件前阶段-网点接单"
  },
  {
    "枚举值": "90002",
    "描述": "揽件前阶段-分配业务员"
  },
  {
    "枚举值": "90003",
    "描述": "揽件前阶段-重新分配业务员"
  },
  {
    "枚举值": "90010",
    "描述": "揽件前阶段-待支付"
  },
  {
    "枚举值": "90011",
    "描述": "揽件前阶段-已支付"
  },
  {
    "枚举值": "100001",
    "描述": "揽件阶段-揽件成功"
  },
  {
    "枚举值": "100002",
    "描述": "揽件阶段-揽件失败"
  },
  {
    "枚举值": "200001",
    "描述": "运输阶段-更新运输轨迹"
  },
  {
    "枚举值": "300002",
    "描述": "派送阶段-派送中"
  },
  {
    "枚举值": "300003",
    "描述": "派送阶段-签收成功"
  },
  {
    "枚举值": "300004",
    "描述": "派送阶段-签收失败"
  },
  {
    "枚举值": "300005",
    "描述": "派送阶段-第三方代收入库"
  },
  {
    "枚举值": "300006",
    "描述": "派送阶段-第三方代收快递员取出"
  },
  {
    "枚举值": "300007",
    "描述": "派送阶段-代签收"
  },
  {
    "枚举值": "400001",
    "描述": "异常阶段-订单取消"
  },
  {
    "枚举值": "400002",
    "描述": "异常阶段-订单滞留"
  },
  {
    "枚举值": "400003",
    "描述": "异常阶段-订单退回"
  },
  {
    "枚举值": "400004",
    "描述": "异常阶段-订单拒收"
  },
  {
    "枚举值": "400005",
    "描述": "异常阶段-问题件"
  },
  {
    "枚举值": "500001",
    "描述": "兜底状态-其他未分类状态纳入本action_type"
  }
]
```

## 4. 注意事项

本事件无特殊注意事项

## 5. 代码示例

本事件无代码示例
