# 1001 打车服务动态

## content_json 定义

| 参数 | 是否必填 | 类型 | 说明 | 格式要求 |
| -------- | -------- | -------- | -------- | -------- |
| cur_status | 是 | int32 | 当前状态id |  |
| wxa_path_query | 是 | string | 卡片点击跳转路径与query |  |
| car_kind_count | 参考状态要求 | uint32 | 选择车型数，若传入为0则不展示该信息 |  |
| license_plate | 参考状态要求 | string | 车牌号 | 会进行车牌号格式校验 |
| arrival_time | 参考状态要求 | uint32 | 预计到达上车点时间（cur_status为2时）、预计到达目的地时间（cur_status为6时） | 秒级时间戳，展示为HH:mm格式 |
| car_color | 参考状态要求 | string | 车辆颜色 | 最多两个可见字符，如「白色」、「灰色」 |
| pay_amount | 参考状态要求 | uint32 | 支付金额 | 单位为分 |
| distance_to_passenger | 参考状态要求 | uint32 | 距乘客上车点距离 | 单位为m |
| distance_to_destination | 参考状态要求 | uint32 | 距目的地距离 | 单位为m |

**车牌号格式校验**

1. 最少7个可见字符，最多8个可见字符
2. 第一个汉字需要命中「京津沪渝苏浙豫粤川陕冀辽吉皖闽鄂湘鲁晋黑赣贵甘桂琼云青蒙藏宁新使领」
3. 除第一个汉字和最后一个汉字/字符外，其他字符需要命中[A-Z][0-9]
4. 最后一个汉字/字符需要命中[A-Z][0-9]「学港澳挂」
5. 支持传入空值（""）

示例：「粤A12345」、「粤A123456」、「粤A1234学」、「粤A12345学」

## cur_status 传入状态 id 的含义，与不同状态 id 下的字段要求

| id | 激活时是否可为此状态 | 可变更自上一状态* | 状态描述 | 此状态下必填字段 | 此状态下选填字段 | content_json示例 |
| -------- | -------- | -------- | -------- | -------- | -------- | -------- |
| 1 | 是 | 1 | 呼叫车辆中 | car_kind_count
wxa_path_query |  | `"{\"cur_status\":1,\"car_kind_count\":3,\"wxa_path_query\":\"pages/index/index\"}"` |
| 2 | 是 | 1, 2, 4 | 司机前往上车点中 | license_plate
arrival_time
wxa_path_query | distance_to_passenger | `"{\"cur_status\":2,\"license_plate\":\"粤A1245A\",\"arrival_time\":1696157643,\"distance_to_passenger\": 1500,\"wxa_path_query\":\"pages/index/index\"}"` |
| 3 | 否 | 1, 2, 4, 5, 6 | 订单已取消 | wxa_path_query |  | `"{\"cur_status\":3,\"wxa_path_query\":\"pages/index/index\"}"` |
| 4 | 否 | 2, 4, 5 | 重新呼叫车辆中 | car_kind_count
wxa_path_query |  | `"{\"cur_status\":4,\"car_kind_count\":3,\"wxa_path_query\":\"pages/index/index\"}"` |
| 5 | 否 | 1, 2, 4 | 司机到达上车点 | license_platecar_color
wxa_path_query |  | `"{\"cur_status\":5,\"license_plate\":\"粤A1245A\",\"car_color\":\"白色\",\"wxa_path_query\":\"pages/index/index\"}"` |
| 6 | 否 | 5, 6 | 前往目的地中 | arrival_time
wxa_path_query | distance_to_destination | `"{\"cur_status\":6,\"arrival_time\":1696157643,\"arrival_time\":1696157643, \"distance_to_destination\":1000, \"wxa_path_query\":\"pages/index/index\"}"` |
| 7 | 否 | 6 | 行程结束待支付 | pay_amount
wxa_path_query |  | `"{\"cur_status\":7,\"pay_amount\":10000,\"wxa_path_query\":\"pages/index/index\"}"` |
| 8 | 否 | 6, 7 | 行程结束已支付 | pay_amount
wxa_path_query |  | `"{\"cur_status\":8,\"pay_amount\":9000,\"wxa_path_query\":\"pages/index/index\"}"` |

**「可变更自上一状态」说明**

1. 此列中的数字表示当前状态只能由这些状态变更（激活时无此要求）
2. 需要注意的是当前状态变更为当前状态，也要求状态id在此列中：如当前为状态为1，只有当1也在此列中，才允许下一次更新时状态传入1
3. 在此列中不存在的状态id，意为结束态，后续不再可更新服务状态

## ext_json 定义

| 参数 | 是否必填 | 类型 | 说明 | 格式要求 |
| -------- | -------- | -------- | -------- | -------- |
| pay_info | 是 | object | 支付信息 |  |

**pay_info 定义**

| 参数 | 是否必填 | 类型 | 说明 | 格式要求 |
| -------- | -------- | -------- | -------- | -------- |
| transaction_id | 是 | string | 微信支付订单号对于合单支付场景，目前仅支持使用传入第一个子单的订单号 | |
| pay_amount | 是 | uint32 | 订单实际支付金额，若订单有优惠，需传入优惠后金额
若为合单支付的第一个子订单，需传入合单支付的总实际支付金额 | 单位为分 |
| pay_time | 是 | uint32 | 支付时间 | 秒级时间戳 |
