直通车改期:Step ①

GetChangeDateBusOrder取得直通车订单中可改期的信息

接口说明

HTTPS请求方式:POST

url:https://youdali.com/OpenApi/GetChangeDateBusOrder

使用调试工具调试该接口 因为一个直通车订单,可分为往返线路,线路中可能又包含中转班次,而订单又分全票、半票、特惠票三种。
因此,必须把这些信息都展示给用户,让用户来选择改期的线路、时间和班次。
对接方需要提供类似于下面的页面给用户进行操作选择:
参数说明
参数 类型 长度 可空 描述
apiKey string 32 由官方平台提供的apiKey
number string 20 订单number
sign string 32

由apiSecret,与参数number生成的待签名字符串,通过MD5签名运算后的值。

签名规则
返回说明

Json格式的Result对象

返回值 描述
Success 本次调用是否成功
ErrorCode 错误代码
Message 失败时为异常信息,成功时为null
Value Json格式的List对象列表
Tag 如无特别说明,在返回数据带分页的情况下,Tag一般指查询记录的总条数,其它情况为null
{
    "ErrorCode":0,
    "HasETicket":false,
    "Success":true,
    "Message":null,
    "HasException":false,
    "Value":[
        {
            "Id":789440,  // 改期项ID
            "Tel":"15125166095",    // 游客手机
            "Title":"[全](大理古城景区直通车服务中心→双廊古镇)【西去】古城直通车服务中心→双廊古镇(单程直通车)", // 改期项名称
            "Date":"2024-06-07",    // 改期项当前日期
            "Schedule":"10:00",     // 改期项当前班次
            "Schedules":    // 改期项可选班次
             [
                {
                    "Schedule":"12:00",
                    "Seats":30,
                    "OccupiedSeats":30
                },
                {
                    "Schedule":"13:00",
                    "Seats":30,
                    "OccupiedSeats":30
                },
                {
                    "Schedule":"14:00",
                    "Seats":30,
                    "OccupiedSeats":30
                }
            ]
        },
        {
            "Id":789441,
            "Tel":"15125166095",
            "Title":"[全](双廊古镇→大理古城景区直通车服务中心)【西回】双廊古镇→古城直通车服务中心(单程直通车)",
            "Date":"2024-06-07",
            "Schedule":"17:00",
            "Schedules":[
                {
                    "Schedule":"17:00",
                    "Seats":5,
                    "OccupiedSeats":0
                },
                {
                    "Schedule":"17:30",
                    "Seats":30,
                    "OccupiedSeats":0
                },
                {
                    "Schedule":"18:30",
                    "Seats":30,
                    "OccupiedSeats":0
                }
            ]
        }
    ],
    "Tag":null
}
直通车改期:Step ②

GetChangeDateSchedulesSchedules取得改期订单的班次

接口说明

http请求方式:POST

url:http://youdali.com/OpenApi/GetChangeDateSchedulesSchedules

使用调试工具调试该接口 每一天的排班情况不同,因此会根据改期的不同日期来获取当天的可用班次。
对接方需要实现日期的change事件,同步回调此函数,来重新绑定班次下拉框,下图仅提供参考:
参数说明
参数 类型 长度 可空 描述
apiKey string 32 由官方平台提供的apiKey
id int 4 改期项Id
date datetime 日期(yyyy-MM-dd)
sign string 32

由apiSecret,与参数id、date生成的待签名字符串,通过MD5签名运算后的值。

签名规则
以上参数均可以从第一步中的返回值中获取
返回说明

Json格式的Result对象

返回值 描述
Success 本次调用是否成功
ErrorCode 错误代码
Message 失败时为异常信息,成功时为null
Value

Json格式的Schedule对象列表:

Schedule:班次

Seats:总座位数

OccupiedSeats:已占用座位数

注:总座位数和已占用座位数,对接方可根据情况决定是否展示给用户

Tag 如无特别说明,在返回数据带分页的情况下,Tag一般指查询记录的总条数,其它情况为null
{
    "ErrorCode": 0,
    "Success": true,
    "Message": null,
    "HasException": false,
    "Value": [
        {
            "Schedule": "09:00",
            "Seats": 20,
            "OccupiedSeats": 5
        },
        {
            "Schedule": "09:30",
            "Seats": 20,
            "OccupiedSeats": 0
        },
        {
            "Schedule": "10:00",
            "Seats": 26,
            "OccupiedSeats": 0
        },
        {
            ......
        }
    ],
    "Tag": null
}
直通车改期:Step ③

BusOrderChangeDate提交改期

接口说明

http请求方式:POST

url:http://youdali.com/OpenApi/BusOrderChangeDate

使用调试工具调试该接口 最后一步,当改期的日期和班次都选择好之后,提交改期请求。
对接方可根据需要来确定是否使用[短信通知改期]的功能,电话号码如果没有填写,我们则从订单里读取:
参数说明
参数 类型 长度 可空 描述
apiKey string 32 由官方平台提供的apiKey
changedOrder Json格式的changedOrder对象(与上一步骤对应):
[
    {
        "Id":789440,    // 改期项ID
        "Date":"2024-06-18",    // 新班次日期
        "Schedule":"10:00"  // 新班次
    },
    {
        "Id":789441,    // 改期项ID
        "Date":"2024-06-18",    // 新班次日期
        "Schedule":"18:00"  // 新班次
    }
]
isSendSms int 4 是否发送给客人改期短信。值为1=true,0=false
tel string 30 客人电话
sign string 32

由apiSecret,与参数buslineId、date、productId、departId、arriveId生成的待签名字符串,通过MD5签名运算后的值。

签名规则
以上参数均可以从第二步中的返回值中获取
返回说明

Json格式的Result对象

返回值 描述
Success 本次调用是否成功
ErrorCode 错误代码
Message 失败时为异常信息,成功时为null
Value
Tag 如无特别说明,在返回数据带分页的情况下,Tag一般指查询记录的总条数,其它情况为null
{
    "ErrorCode": 0,
    "Success": true,
    "Message": null,
    "HasException": false,
    "Value": null,
    "Tag": null
}