Postman Collection

下载完整的 Postman 集合文件,包含所有 API 接口的请求示例和配置。

下载 Postman Collection

BBT打车 API 文档

简介

BBT打车API提供完整的打车服务接口,包括价格预估、订单管理、司机位置查询、司乘沟通等功能。

主要特点

  • 简单认证:使用 X-API-Key Header 认证
  • 统一接口:所有API采用统一的请求/响应格式
  • 完整功能:覆盖从价格预估到订单完成的全流程

认证方式

API Key 认证

所有API请求需要在HTTP Header中携带 X-API-Key

X-API-Key: your_api_key

请求格式

  • 请求方法:POST
  • Content-Type:application/json
  • 字符编码:UTF-8

示例请求

curl -X POST \
  -H "Content-Type: application/json" \
  -H "X-API-Key: your_api_key" \
  -d '{"bookingType": "1", "countryName": "香港", ...}' \
  https://your-api-host/api/estimatePrice

注意:如果服务端未配置 MIDDLEWARE_API_KEY 环境变量,则API Key认证将被跳过(适用于开发环境)。


响应格式

成功响应

{
  "success": true,
  "response": {
    "code": 200,
    "msg": "成功",
    "data": { ... }
  }
}

错误响应

{
  "error": "错误描述",
  "type": "ErrorType"
}

API 接口列表

一、商品类接口

1.1 价格预估 - estimatePrice

叫车预估费用,预估价格仅供参考,最终支付费用以实际产生费用为准。

请求路径POST /api/estimatePrice

请求参数

参数名类型必填说明
bookingTypeString预订类型:"1"=实时叫车,"2"=预约叫车
countryNameString国家/地区名称,如:"中国"、"香港"
countryIdString国家/地区ID,如:"279"(香港)
departAddressObject出发地址信息
arriveAddressObject目的地址信息
useTimeString预约用车时间,13位毫秒时间戳(预约叫车时必填)

地址对象(departAddress/arriveAddress)结构

字段名类型必填说明
addressString地址标题
addressDetailString地址详情
cityNameString城市名称
cityIdString城市ID
latitudeString纬度
longitudeString经度

请求示例

{
  "bookingType": "1",
  "countryName": "香港",
  "countryId": "279",
  "departAddress": {
    "address": "香港-雅高工業大樓",
    "addressDetail": "香港-雅高工業大樓",
    "cityName": "香港",
    "latitude": "22.313832",
    "longitude": "114.196877",
    "cityId": "279"
  },
  "arriveAddress": {
    "address": "香港-天天洗衣",
    "addressDetail": "香港-天天洗衣",
    "cityName": "香港",
    "latitude": "22.318384",
    "longitude": "114.198753",
    "cityId": "279"
  }
}

响应示例

{
  "success": true,
  "response": {
    "code": 200,
    "msg": "成功",
    "data": {
      "estimateId": "xxx",
      "priceList": [
        {
          "priceMark": "646b4a1857a3a349a3636a81",
          "carTypeName": "经济型",
          "estimatePrice": "50.00",
          "currency": "HKD"
        }
      ]
    }
  }
}

二、订单类接口

2.1 创建订单 - createOrder

用户根据需要发起叫车请求。

请求路径POST /api/createOrder

请求参数

参数名类型必填说明
priceMarksArray[String]价格标识数组,来自estimatePrice返回的priceMark
passengerNameString乘客姓名
passengerPhoneString乘客电话
passengerPhoneAreaCodeString乘客电话区号,如:"+86"
estimateIdString预估ID,来自estimatePrice返回
userIdString用户ID
customOrderIdString自定义订单ID(用于对接方系统)
contactNameString联系人姓名
contactPhoneString联系人电话
contactPhoneAreaCodeString联系人电话区号

请求示例

{
  "priceMarks": ["646b4a1857a3a349a3636a81"],
  "passengerName": "张三",
  "passengerPhone": "13800138000",
  "passengerPhoneAreaCode": "+86",
  "contactName": "张三",
  "contactPhone": "13800138000"
}

响应示例

{
  "success": true,
  "response": {
    "code": 200,
    "msg": "成功",
    "data": {
      "orderId": 100000030
    }
  }
}

2.2 订单详情 - queryOrderDetail

查询订单详细信息。

请求路径POST /api/queryOrderDetail

请求参数

参数名类型必填说明
orderIdInteger订单ID

请求示例

{
  "orderId": 100000030
}

响应示例

{
  "success": true,
  "response": {
    "code": 200,
    "msg": "成功",
    "data": {
      "orderId": 100000030,
      "orderStatus": 1,
      "passengerName": "张三",
      "passengerPhone": "13800138000",
      "departAddress": { ... },
      "arriveAddress": { ... },
      "driverInfo": { ... }
    }
  }
}

2.3 取消订单 - cancelOrder

取消订单。派单中可无偿取消,已派单可能收取取消费。

请求路径POST /api/cancelOrder

请求参数

参数名类型必填说明
orderIdInteger订单ID
forceBoolean是否强制取消,默认为true
customerOrderIdString自定义订单ID

请求示例

{
  "orderId": 100000030,
  "force": true
}

2.4 订单取消原因 - cancelReason

提交订单取消原因。

请求路径POST /api/cancelReason

请求参数

参数名类型必填说明
orderIdInteger订单ID
reasonString取消原因

请求示例

{
  "orderId": 100000030,
  "reason": "不需要用车了"
}

三、司机类接口

3.1 司机实时位置 - queryDriverLocation

查询司机实时位置,适用于已派单和行进中状态定时查询。

请求路径POST /api/queryDriverLocation

请求参数

参数名类型必填说明
orderIdInteger订单ID

请求示例

{
  "orderId": 100000030
}

响应示例

{
  "success": true,
  "response": {
    "code": 200,
    "msg": "成功",
    "data": {
      "latitude": "22.313832",
      "longitude": "114.196877",
      "heading": 90,
      "speed": 30
    }
  }
}

3.2 司机评分 - orderScore

对司机服务进行评分,仅在订单结束后可进行评价。

请求路径POST /api/orderScore

请求参数

参数名类型必填说明
orderIdInteger订单ID
levelFloat评分等级(1-5)
commentString评价内容

请求示例

{
  "orderId": 100000030,
  "level": 5,
  "comment": "服务很好"
}

四、司乘沟通类接口

4.1 获取司乘沟通记录 - listMessages

获取订单的沟通消息记录。

请求路径POST /api/listMessages

请求参数

参数名类型必填说明
orderIdInteger订单ID
languageString语言代码,如:"zh"、"en"

请求示例

{
  "orderId": 100000030,
  "language": "zh"
}

4.2 发送消息 - postMessagest

发送消息给司机。

请求路径POST /api/postMessagest

请求参数

参数名类型必填说明
orderIdInteger订单ID
languageString语言代码
textString消息内容
templateIdInteger消息模板ID

请求示例

{
  "orderId": 100000030,
  "language": "zh",
  "text": "你好,请在大门口等我"
}

4.3 获取消息模板 - getTemplateChat

获取消息类型和模板列表。

请求路径POST /api/getTemplateChat

请求参数

参数名类型必填说明
orderIdInteger订单ID
languageString语言代码
typeInteger模板类型

请求示例

{
  "orderId": 100000030,
  "language": "zh"
}

五、投诉类接口

5.1 投诉原因 - reason

查询投诉原因列表,会根据指定订单的不同场景返回不同的投诉选项。

请求路径POST /api/reason

请求参数

参数名类型必填说明
orderIdInteger订单ID

请求示例

{
  "orderId": 100000030
}

5.2 乘客投诉 - complain

乘客发起投诉,一个订单只能投诉一次,不可重复投诉。

请求路径POST /api/complain

请求参数

参数名类型必填说明
orderIdInteger订单ID
typeInteger投诉类型(从reason接口获取)
mobileAreaCodeString手机区号,如:"+86"
mobileString手机号码
contentString投诉内容详情

请求示例

{
  "orderId": 100000030,
  "type": 1,
  "mobileAreaCode": "+86",
  "mobile": "13800138000",
  "content": "司机态度不好"
}

六、Webhook 回调

6.1 支付通知回调 - paymentNotify

接收支付完成通知的Webhook端点。当订单支付状态发生变化时,系统会主动调用此接口。

请求路径POST /api/webhook/paymentNotify

请求参数

参数名类型必填说明
signString请求签名
reqSidString请求会话ID
reqFromString请求来源
channelKeyString渠道Key
orderIdInteger订单ID

处理流程

  1. 验证请求有效性
  2. 验证channelKey匹配
  3. 如配置了 PAYMENT_NOTIFY_WEBHOOK_URL,将通知转发到该地址
  4. 返回处理结果

响应格式

成功:

{
  "code": 200,
  "msg": "成功",
  "data": null
}

验证失败:

{
  "code": 600,
  "msg": "验证失败",
  "data": null
}

6.2 订单状态变更推送 - UpdateOrderStatus

当订单状态发生变化时,平台会向您配置的回调地址发送请求。推送仅包含状态信息,完整订单信息请通过「订单详情」接口查询;新建订单首次回调状态为派单中(dispatching)。中间件支持 GET、POST、PUT、DELETE 方法接收并转发。

请求路径POST /api/callback/UpdateOrderStatus

请求参数

参数名类型必填说明
signString请求签名
orderIdString订单ID
orderStatusString回调状态,取值见下方「orderStatus 取值说明(附录B)」
timestampLong时间戳
channelKeyString部分渠道需要在回调时提供渠道 Key
eventString事件名称,见下方事件说明
extendObject扩展字段(部分渠道支持)
extend.userTypeString用户类型
extend.userAreaCodeString区号(如 +86)
extend.userPhoneString手机号
extend.exChannelIdString外部渠道ID

请求示例

{
  "sign": "test",
  "orderId": "10000068",
  "orderStatus": "dispatched",
  "timestamp": "1000023586423",
  "channelKey": "123456789",
  "event": "booking.status.updated"
}

orderStatus 取值说明(附录B 状态定义)

回调中的 orderStatus 为字符串,可能取值如下(马上叫车状态):

orderStatus说明
inavlid无效订单(注:接口文档原文拼写为 inavlid)
dispatching派单中(新建订单首次回调状态)
dispatched司机已接单
confirmed订单已确认(仅预约单,不会返回司机位置)
assign分配司机(仅预约单,不会返回司机位置)
driverStartService司机出发(部分运力支持)
driverArrived司机到达
orderReassigned订单改派中
inService行进中
endService行程结束(部分运力支持)
completed已完成
waitpay待支付
payed已支付
canceling取消中(部分运力支持)
canceled已取消

处理流程

  1. 接收平台回调请求
  2. 若配置了 ORDER_STATUS_WEBHOOK_URL,则按相同 method 与 body 转发到该地址
  3. 返回处理结果

响应格式

成功:

{
  "code": 200,
  "msg": "成功",
  "data": null
}

事件说明(event)

事件说明
booking.status.updated订单状态更新
booking.receipt.created金额已创建
booking.vehicle.reassigned分配司机
booking.chat.message.created聊天记录创建
booking.status.complaintRefund客诉退款
booking.status.changePrice改价

错误码说明

错误码说明
200成功
401无效调用凭证(API Key错误或channelKey不匹配)
402参数不正确
500系统内部错误
600验证失败

环境配置

服务通过环境变量进行配置:

变量名必填说明
CHANNEL_KEY渠道Key
CHANNEL_SECRET渠道Secret
BASE_URLAPI服务地址,默认:http://fat-open-overseas.heycars.cn
MIDDLEWARE_API_KEYAPI Key,设置后启用认证
PAYMENT_NOTIFY_WEBHOOK_URL支付通知转发地址
ORDER_STATUS_WEBHOOK_URL订单状态变更推送转发地址
DEBUG调试模式,设为true显示详细日志
ENABLE_TEST_PAGES启用测试页面UI

附录

订单状态说明

状态值说明
0待支付
1派单中
2已派单(等待司机)
3司机已到达
4行程中
5已完成
6已取消

预订类型说明

类型值说明
1实时叫车
2预约叫车

常用地区ID

地区ID
香港279
中国大陆1

更新日志

  • v1.0.1 - 新增 6.2 订单状态变更推送(UpdateOrderStatus)Webhook 文档及 Postman 示例
  • v1.0.0 - 初始版本,支持完整的打车API功能