场景描述
同步用户侧相关信息,专员服务信息回调见通用任务信息回调
调用方式
HTTP Post
功能
Open NSC 将使用统一的回调参数,将接入方需要的订单信息回传到接入方系统。接入方可根据此信息对订单进行更新,但需要对回调进行幂等控制。
接入流程
- 接入方根据自身业务需求,明确需要回调的信息,从目前支持的 section 中选取实际需要的信息区。
- Open NSC 增加相关接入方的接入配置。
- Open NSC 和接入方进行联调测试,确认回调成功后上线。
接口签名规范
为保证通讯安全,Open NSC 侧会用和验签相同的加签方式(见 签名规范),对发送的请求进行签名。
接口返回值要求
接口返回值请尽量参照 Response 结构 实现。 如果不能完全根据上述标准返回,必须返回 result_code 字段,并以 "success" 作为回调成功的标识。Open NSC 将以此作为回调成功与否的判断。
回调重试次数
Open NSC 支持回调重试,接入方需提供回调重试次数,重试次数默认值为 0。 重试次数最大不超过3次,每次都在失败之后立即重试。
订单状态回调-创建/更新 说明
订单状态回调通过创建、更新两个接口共同完成,在和渠道方的对接过程中,多次出现对两个接口可回调状态产生误解的情况,补充说明如下:
- 订单的首次回调一定通过创建接口回调,创建接口只会回调一次,并且状态可能是 1000,1100,1200
- 1000:创建订单,需求未冻结
- 1100:创建订单,需求已冻结,未分配资源
- 1200:创建订单,并立即分配资源成功(这也是最为常见的情况)
- 相同状态会在创建、更新接口分别回调,有且只有 1200
当下单成功,并且是立即分配资源成功时,系统会在很短的间隔内触发两次不同的回调- 在创建接口回调 1200
- 在更新接口也回调 1200
- 相同状态可能在更新接口回调多次
根据订单的执行流程不同,订单可能重复回到某种状态,因而在更新接口会有相同状态重复回调多次
订单信息
订单信息包含在不同的 section 中。
section 释义
Section | 说明 |
---|---|
channel_account | 渠道用户信息,只有通过 OAuth 接入时,才有需要在回调中提供相关信息 |
order | 订单基本信息 |
staff | 订单专员信息 |
vehicle | 订单相关车辆信息 |
parking_info | 订单停车信息 |
payment_info | 订单的用户支付信息 |
resource_info | 订单资源信息 |
soc_info | 下单时,用户填写的车辆 SoC 信息 |
cancellation_fee | 取消订单时产生的费用信息,仅在订单为完成态时返回,即订单状态为1300、1400或1500时才会返回 |
service_image | 订单服务图片信息 |
Post body 格式
application/json
参数示例
{
"channel_account":{
"access_token":"channal_access_token_xxx",
"user_id":"channal_user_id_xxx"
}
"order":{
"order_id":"820034787833641750",
"status":1000,
"creation_time":1517987834,
"update_time":1517987834,
"phone":"17865736543",
"pay_due_time":1517988434,
"original_start_time":1517988000,
"original_end_time":1517988912,
"estimate_start_time":1517988647,
"estimate_end_time":1517988659,
"actual_serve_start_time":1517987840,
"actual_serve_end_time":1517988902,
"resource_schedule_mode":0
},
"staff":{
"staff_id":"1234",
"avatar_url": "https://cdn-app.nio.com/lbSys/2020/1/9/f2446abc-9315-4a80-bae1-f315cab6982b.jpg",
"name":"张三",
"phone":"12345674567"
},
"vehicle":{
"model_id":"model-123",
"brand":"蔚来",
"model_name":"ES8",
"plate_number":"京A12222"
},
"parking_info":[
{
"type":13,
"latitude":36.443333,
"longitude":115.969948,
"poi_id":"qq:2577301541586800564",
"poi_name":"聊城市",
"poi_area_code":"371500",
"poi_address":"光岳楼",
"poi_latitude":36.443333,
"poi_longitude":115.969948
},
{
"type":14,
"latitude":36.443333,
"longitude":115.969948,
"poi_id":"qq:2577301541586800564",
"poi_name":"聊城市",
"poi_area_code":"371500",
"poi_address":"光岳楼",
"poi_latitude":36.443333,
"poi_longitude":115.969948
}
]
"payment_info":{
"status":1,
"amount":180
},
"resource_info":{
"resource_id":"CS-TLD-00000001-BJ-00003",
"name":"天津崇泰响螺湾王相大厦充电站",
"show_name":"特来电充电站(天津崇泰响螺湾王相大厦充电站)",
"latitude":36.443333,
"longitude":115.969948,
"region_code":"110000",
"operator_id":"TLD",
"opeartor_name":"特来电"
},
"soc_info":{
"soc":80,
"remaining_range":400
},
"cancellation_fee":{
"has_cancellation_fee":true
},
"service_image": [
{
"order_id": "820116867791554949",
"task_id": "830116867792554359",
"image_type": "1",
"image_url": "https://cdn-app-test.nio.com/tibbers/2020/9/14/e1d6f2d4-d624-4c9c-8e21-91b7a9ae045d",
"creation_time": 1600067844
}
]
}
参数说明
channel_account section
参数名 | 类型 | 说明 |
---|---|---|
access_token | string | Access token |
user_id | string | 渠道用户 id |
order section
参数名 | 类型 | 说明 |
---|---|---|
order_id | string | 订单 ID |
status | integer | 订单状态,参见 枚举值定义-一键加电订单状态 |
creation_time | timestamp | 创建时间 |
update_time | timestamp | 更新时间 |
phone | string | 联系方式 |
payment_need | Boolean | 是否需要支付 |
payment_status | Integer | 支付状态 |
pay_due_time | timestamp | 支付超时时间 |
original_start_time | timestamp | 下单时刻,系统计算的预计开始时间,通常为承诺给用户的取车时间 |
original_end_time | timestamp | 下单时刻,系统计算的预计完成时间,通常为承诺给用户的还车时间 |
estimate_start_time | timestamp | 当前时刻,系统计算的预计开始时间,通常为取车时间 |
estimate_end_time | timestamp | 当前时刻,系统计算的预计完成时间,通常为还车时间 |
actual_serve_start_time | timestamp | 订单实际的服务开始时间,取值为第一个 task 小哥接单时间 |
actual_serve_end_time | timestamp | 订单的实际服务完成时间,取值为最后一个 task 的完成时间,通常为还车时间 |
resource_schedule_mode | integer | 调度模式,参见 枚举值定义-resourceScheduleMode |
staff section
参数名 | 类型 | 说明 |
---|---|---|
staff_id | string | 专员 ID |
avatar_url | string | 专员头像 url |
name | string | 专员姓名 |
phone | string | 专员联系方式 |
vehicle section
参数名 | 类型 | 说明 |
---|---|---|
model_id | string | 车型 ID |
brand | string | 车辆品牌 |
model_name | string | 车型系列名称 |
plate_number | string | 车牌号 |
parking_info section
参数名 | 类型 | 说明 |
---|---|---|
type | byte | 参见 枚举值定义-ParkingInfoType |
longitude | double | 停车经度 |
latitude | double | 停车纬度 |
poi_id | string | 停车点 POI ID |
poi_name | string | 停车点 POI 名称 |
poi_area_code | string | 停车点区级邮编 |
poi_address | string | 停车点 POI 地址(不含行政区域) |
poi_latitude | double | POI 纬度 |
poi_longitude | double | POI 经度 |
payment_info section
参数名 | 类型 | 说明 |
---|---|---|
status | int | 1:未支付,2:已支付,3:已退款 |
amount | double | 支付总额 |
need_pay | Boolean | 是否需要支付 |
resource_info section
参数名 | 类型 | 说明 |
---|---|---|
resource_id | string | 资源 ID |
name | string | 资源名称 |
type | integer | 资源类型,参见 枚举值定义-PowerResourceType |
show_name | string | 资源显示名称 |
latitude | double | 资源 GPS 纬度 |
longitude | double | 资源 GPS 经度 |
region_code | string | 资源区域编码 |
operator_id | string | 资源供应商 ID |
operator_name | string | 资源供应商名称 |
soc_info section
参数名 | 类型 | 说明 |
---|---|---|
soc | double | SoC |
remaining_range | double | 电池剩余续航(KM) |
cancellation_fee section
参数名 | 类型 | 说明 |
---|---|---|
has_cancellation_fee | boolean | 是否有取消费用 |
service_image section
参数名 | 类型 | 说明 |
---|---|---|
order_id | string | 订单 ID |
task_id | string | 任务 ID |
image_type | int | 图片类型, 参见 枚举值定义-ServiceImageType |
image_url | string | 图片 url |
creation_time | int | 图片创建的 Unix 时间戳 |