首页开放APIAPI说明API调用说明

接口说明


1)此接口用于供应商查询目的地行政区域相关信息 行政区示例

2)仅支持行政区父节点查询,例如通过洲id查询国家

3)支持分页查询

1、调用方法

Method:HTTP-POST

Url:{API_Url}/api/poi/getPoiDistrict

2、系统参数

API调用参数分为系统参数和业务参数,请求时,系统参数是必传的,否则无法成功请求,业务参数由具体业务接口定义。

入参格式

系统参数
名称 类型 必填 描述
apiKey String 分配给供应商的唯一身份标识
sign String 请求签名,生成规则参见签名机制
timestamp String 时间戳,参见时间戳

3、业务参数

接口入参

名称 类型 必填 示例值 描述
parentId Integer 1602 父行政区id 当以南京的行政区id"1602"查询时,查询结果为南京市的各区域信息. 当为空的情况下,默认查询最高级行政区"洲"
page Integer 1 分页查询页数 第几页

入参示例

{
"patentId": 1600,
"page":1
}
						

接口出参

名称 类型 必填 示例值 描述
success boolean true 成功,失败
errorMsg String "执行成功" 返回信息
returnCode Integer 210000 成功错误码
data json 返回为true时必填

data中需要包含

名称 类型 必填 示例值 描述
pageCount Integer 1 分页总页数
result PoiDistrictResultTo poiDistrictResultTo 目的地数据集合

出参示例

{
  "returnCode": 170000,
  "errorMsg": "",
  "success": true,
  "data": {
    "pageCount": 1,
    "result": [
      {
        "id": "3600",
        "name": "欧洲",
        "parentId": "0"
      },
      {
        "id": "3700",
        "name": "北美洲",
        "parentId": "0"
      },
      {
        "id": "3800",
        "name": "南美洲",
        "parentId": "0"
      },
      {
        "id": "3900",
        "name": "亚洲",
        "parentId": "0"
      },
      {
        "id": "4000",
        "name": "非洲",
        "parentId": "0"
      },
      {
        "id": "4100",
        "name": "大洋洲",
        "parentId": "0"
      },
      {
        "id": "44994",
        "name": "南极洲",
        "parentId": "0"
      }
    ]
  }
}						

4、自定义数据类型说明

PoiDistrictResultTo

名称 类型 必填 示例值 描述
id Integer 3900 行政区编号id
parentId Integer 0 行政区父节点Id
name String "亚洲" 行政区名称

5、常见问题

行政区示例:

国家 一级行政区 二级行政区 三级行政区
亚洲 (3900) 中国 (40002) 江苏 (1600) 南京 (1602) 玄武区 (40680)
欧洲 (3600) 英国 (3608) 英格兰 (46061) 伦敦 (46085)
北美洲 (3700) 美国 (3738) 加利福尼亚州 (44556) 旧金山 (44557)

接口说明


1)此接口用于供应商查询目的地景点相关信息

2)支持目的地行政区编号和关键字组合查询

3)支持分页查询

1、调用方法

Method:HTTP-POST

Url:{API_Url}/api/poi/getPoiDistrictAttraction

2、系统参数

API调用参数分为系统参数和业务参数,请求时,系统参数是必传的,否则无法成功请求,业务参数由具体业务接口定义。

入参格式

系统参数
名称 类型 必填 描述
apiKey String 分配给供应商的唯一身份标识
sign String 请求签名,生成规则参见签名机制
timestamp String 时间戳,参见时间戳

3、业务参数

接口入参

名称 类型 必填 示例值 描述
code Integer 1602 行政区编码 (行政区编码通过查询行政区接口获取) 和key属性不能都为空
key String “南京” 关键字 和key属性不能都为空
page Integer 2 分页查询页数 第几页

入参示例

{
"code": 1602,
"key": "南京",
"page":1
}
						

接口出参

名称 类型 必填 示例值 描述
success boolean true 成功,失败
errorMsg String "执行成功" 返回信息
returnCode Integer 210000 成功错误码
data json 返回为true时必填

data中需要包含

名称 类型 必填 示例值 描述
pageCount Integer 1 分页页数总和,表示一共有这么多页数据
data PoiSearchResultTo poiSearchResultTo 景点具体数据集合

出参示例

{
  "returnCode": 170000,
  "errorMsg": "",
  "success": true,
  "data": {
    "pageCount": 2,
    "data": [
      {
        "name": "南京白马湖",
        "parentId": 40680,
        "parentName": "中国/江苏/南京/玄武区",
        "id": 8580,
        "districtInfo": {
          "continentId": 3900,
          "continentName": "亚洲",
          "countryId": 40002,
          "countryName": "中国",
          "provinceId": 1600,
          "provinceName": "江苏",
          "cityId": 1602,
          "cityName": "南京",
          "countyId": 40680,
          "countyName": "玄武区"
        }
      },
      {
        "name": "南京夫子庙大成殿",
        "parentId": 40682,
        "parentName": "中国/江苏/南京/秦淮区",
        "id": 9004,
        "districtInfo": {
          "continentId": 3900,
          "continentName": "亚洲",
          "countryId": 40002,
          "countryName": "中国",
          "provinceId": 1600,
          "provinceName": "江苏",
          "cityId": 1602,
          "cityName": "南京",
          "countyId": 40682,
          "countyName": "秦淮区"
        }
      }
    ]
  }
}							

4、自定义数据类型说明

PoiSearchResultTo

名称 类型 必填 示例值 描述
name String "南京白马湖" 景点名称
parentId Integer 40680 景点行政区父节点
parentName String "中国/江苏/南京/玄武区" 父节点名称
id Intger 8580 景点id 新增产品所需要的id
districtInfo DistrictInfoTo districtInfo 对应景点行政区域信息

DistrictInfoTo

名称 类型 必填 示例值 描述
continentId Integer 3900 洲-行政区id
continentName String "亚洲" 洲-行政区名称
countryId Integer 40002 国家-行政区id
countryName String "中国" 国家-行政区名称
provinceId Integer 1600 省-行政区id
provinceName String "江苏" 省-行政区名称
cityId Integer 1602 城市-行政区id
cityName String "南京" 城市-行政区名称
countyId Integer 40680 区/县-行政区id
countyName String "玄武区" 区/县-行政区名称

5、常见问题

接口说明


1)此接口由途牛提供,用于供应商上传图片,供应商必须先将图片上传到途牛的图片库,生成对应的图片ID后才能够在产品中使用

首选图片 行程图片
实景图片 实景图片
不得含有水印或LOGO 不得含有水印或LOGO
图片像素不低于2048*1536 图片像素不低于1024*768
图片为宽高比例为4:3
图片的大小不超过5M 图片的大小不超过3M
不得存在侵权行为 不得存在侵权行为

1、调用方法

Method:HTTP-POST

Url:{API_Url}/gentuan/product/1.1/upload/imgUpload

2、系统参数

API调用参数分为系统参数和业务参数,请求时,系统参数是必传的,否则无法成功请求,业务参数由具体业务接口定义。

入参格式

系统参数
名称 类型 必填 描述
apiKey String 分配给供应商的唯一身份标识
sign String 请求签名,生成规则参见签名机制
timestamp String 时间戳,参见时间戳

3、业务参数

接口入参

名称 类型 必填 示例值 描述
imgInfos Array 图片信息
imgName String “图片名称” 图片名称
suffix String “jpg” 图片后缀
typeId Integer 1 图片类型 1:图片
purpose Integer 1 图片用途 1:首选图片;2:行程图片
inputStream String inputStream 图片输入流,base64编码

入参示例

{
  "imgInfos": [{
    "imgName": "图片名称",
    "suffix": "jpg",
    "typeId": 1,
    "purpose": 1,
    "inputStream": "图片输入流"
 }]
}
							

接口出参

名称 类型 必填 示例值 描述
success boolean true 成功,失败
errorMsg String "执行成功" 返回信息
returnCode Integer 210000 成功错误码
data json 返回为true时必填

data中需要包含

名称 类型 必填 示例值 描述
data Array 图片地址具体数据集合

出参示例

{
  "data": [{
      "imgName": "crop_6675740_1471507724437.jpg",
      "url": "http://10.10.32.160/fb2/t1/group1/M00/05/08/Cgogo1hsrTiILF-uAABHAijvQYcAAAA6QM2mFsAAEca169.jpg"
   }],
  "returnCode": 170000,
  "errorMsg": "",
  "success": true
}
							

5、常见问题

接口说明


1)此接口用户供应商维护某个门票资源的采购规则,即某天的价格和清位时间

2)此接口支持批量操作

3)若原本该团期下无采购规则,则新增

4)若原本该团期下有打开的采购规则,则更新;

5)若原本该团期下有关闭的采购规则,则打开采购规则,且更新价格;

1、调用方法

Method:HTTP-POST

Url:{API_Url}/product/planDate/addOrModify

2、系统参数

API调用参数分为系统参数和业务参数,请求时,系统参数是必传的,否则无法成功请求,业务参数由具体业务接口定义。

入参格式

系统参数
名称 类型 必填 描述
apiKey String 分配给供应商的唯一身份标识
sign String 请求签名,生成规则参见签名机制
timestamp String 时间戳,参见时间戳

3、业务参数

接口入参

名称 类型 必填 示例值 描述
vendorResId String “11309” 供应商资源id
vendorResName String “马尔代夫6天5晚” 供应商资源名称
planDates PlanDates[] 团期数组

入参示例

{
  "vendorResId": "11309",
  "vendorResName": "马尔代夫6天5晚",
  "planDates": [
    {
      "departsDates": "2015-02-14,2015-02-16",
      "costAdult": "175",
      "costChild": "160",
      "releaseDay": "1",
      "releaseOclock": "22",
      "releaseMinute": "0",
      "currencyType": 0
    }
  ]
}							

接口出参

名称 类型 必填 示例值 描述
success bool true 成功失败
errorMsg String "执行成功" 返回信息
returnCode int 210000 成功错误码
data json 返回为true时必填

data中需要包含

名称 类型 必填 示例值 描述
operateId string "200012" 该次操作ID, 用于反馈接口标示唯一性

出参示例

{
  "success": true,
  "returnCode": 100000,
  "errorMsg": "执行成功",
  "data": {
    "operateId": "200012"
  }
}							

4、自定义数据类型说明

PlanDates(团期采购规则信息信息)

名称 类型 必填 示例值 描述
departsDates string "2015-02-15" 团期 可传多个,用逗号分隔
costAdult string "175" 成本价(成人)
costChild string "160" 成本价(儿童)
releaseDay string "1" 清位时间-天
releaseOclock string "22" 清位时间-时
releaseMinute string "0" 清位时间-分钟
currencyType int 0 币种,默认不传为人民币
0: "人民币",
1: "欧元",
2: "美元",
3: "港币",
4: "新币",
5: "日元",
6: "韩币",
7: "加币",
8: "人民币",
9: "泰铢",
10: "葡币",
11: "台币"

5、常见问题

接口说明


1)此接口用于供应商关闭某天的采购规则(团期)

2)此接口支持批量,但业务风险较大,建议批量关团谨慎操作

1、调用方法

Method:HTTP-POST

Url:{API_Url}/product/planDate/close

2、系统参数

API调用参数分为系统参数和业务参数,请求时,系统参数是必传的,否则无法成功请求,业务参数由具体业务接口定义。

入参格式

系统参数
名称 类型 必填 描述
apiKey String 分配给供应商的唯一身份标识
sign String 请求签名,生成规则参见签名机制
timestamp String 时间戳,参见时间戳

3、业务参数

接口入参

名称 类型 必填 示例值 描述
vendorResId String "11309" 供应商资源id
vendorResName String "马尔代夫6天5晚" 供应商资源名称
planDates String "2015-02-14,2015-02-16" 团期,多个用逗号分隔

入参示例

{
    "vendorResId": "11309",
    "vendorResName": "马尔代夫6天5晚",
    "planDates": "2015-02-14,2015-02-16"
}							

接口出参

名称 类型 必填 示例值 描述
success bool true 成功失败
errorMsg String "执行成功" 返回信息
returnCode int 210000 成功错误码
data json 返回为true时必填

data中需要包含

名称 类型 必填 示例值 描述
operateId string "200012" 该次操作ID, 用于反馈接口标示唯一性

出参示例

{
  "success": true,
  "returnCode": 100000,
  "errorMsg": "执行成功",
  "data": {
    "operateId": "200012"
  }
}							

4、常见问题

接口说明


1)网站用户下单付款后调用此接口往供应商系统下单

2)此接口由供应商实现,入参出参严格按照此文档

3)供应商需实现此接口的同步方法,且在认证阶段将url 告知途牛api系统

1、调用方法

Method:HTTP-POST

Url:供应商提供

2、系统参数

API调用参数分为系统参数和业务参数,请求时,系统参数是必传的,否则无法成功请求,业务参数由具体业务接口定义。

入参格式

系统参数
名称 类型 必填 描述
apiKey String 分配给供应商的唯一身份标识
sign String 请求签名,生成规则参见签名机制
timestamp String 时间戳,参见时间戳

3、业务参数

接口入参

名称 类型 必填 描述
orderInfo json 订单信息
customers json array 出游人列表,可以设置为必填

入参示例

{
    "orderInfo": {
        "tuniuOrderId": "3569878",
        "tuniuSerialId": "265987456",
        "amount": 3,
        "vendorResId": "11360",
        "vendorResName": "东京一日游",
        "costPrice": "1658.00",
        "costCurrencyType": 8,
        "planDate": "2015-02-16",
        "bookerName": "张三",
        "bookerTel": "15856886888",
        "bookerEmail": "ceshi@tuniu.com",
        "bookerIdCard":"110101198001019437",
        "bookerIdType":"1"
    },
    "customers": [
        {
            "name": "张三",
            "enName": "zhangsan",
            "mobile": "15858886888",
            "psptType": 2,
            "psptId": "340126198502146662",
            "birthday": "1985-02-14 "
        }
    ]
}							

接口出参

名称 类型 必填 示例值 描述
success bool true 成功失败
errorMsg String "执行成功" 返回信息
returnCode int 210000 成功错误码
data json 返回为true时必填

data中需要包含

名称 类型 必填 示例值 描述
proofNos array[String] ["34587","35689"] 取票凭证
qrCodeNos array[String] ["url1","url2"] 二维码,为空时该字段不传
vendorOrderId string "200012" 供应商订单id
scanEnable int 1 该资源否支持扫码入园(不传或者传0表示不支持,1表示支持)
useTimes int 3 支持一码多验(目前仅支持proofNos为单一入园凭证,多个入园凭证时默认每个只能使用一次)

出参示例

{
  "success": true,
  "returnCode": 100000,
  "errorMsg": "执行成功",
  "data": {
    "qrCodeNos": [
      "url1",
      "url2"
    ],
    "proofNos": [
      "35689"
    ],
    "vendorOrderId": "200012",
    "scanEnable": 1,
    "useTimes": 3
  }
}							

4、自定义数据类型说明

OrderInfo(订单信息)

名称 类型 必填 示例值 描述
tuniuOrderId String "3569878" 途牛订单号
tuniuSerialId String "265987456" 途牛订单序列号,此订单号为途牛系统对供应商的订单号,是双方系统交互的凭据。确认下单和取消订单均基于此序列号,由途牛系统保证唯一性。
amount Int 3 订单人数/票数
vendorResId String "11360" 供应商资源id
vendorResName String "东京一日游" 供应商资源名称
costPrice String "1658.00" 资源采购单价
costCurrencyType Int 2 价格币种 默认人民币 支持:1:欧元 2:美元 3:港币 4:新币 5:日元 6:韩元 7:加元 8:人民币 9:泰铢 10:英镑 11:澳元 12:马币 13:斐济元 14:瑞士法郎 15:澳门元
planDate String "2015-02-16" 出游日期
bookerName String "张三" 预订人名称
bookerTel String "15868885888" 预订人电话
bookerEmail String "ceshi@tuniu.com" 预订人邮箱
bookerIdType String "1" 预订人证件类型:1=身份证、2=护照、3=军官证、4=港澳通行证、6=其它、7=台胞证
bookerIdCard String "110101198001019437" 预订人证件号码(可以根据需求设置为必填)

Customers(游客信息)

名称 类型 必填 示例值 描述
name String "张三" 姓名
enName String "zhangsan" 英文姓名
mobile String "15858886888" 手机号
psptType Int 2 证件类型:1=身份证、2=护照、3=军官证、4=港澳通行证、6=其它、7=台胞证
psptId String "340126198502146662" 证件号码
birthday String "1985-02-14 " 生日

5、常见问题

接口说明


1)供应商下单成功后网站用户发起订单取消调用此接口

2)此接口由供应商实现,入参出参严格按照此文档

3)供应商需实现此接口的同步方法,且在认证阶段将url 告知途牛api系统

1、调用方法

Method:HTTP-POST

Url:供应商提供

2、系统参数

API调用参数分为系统参数和业务参数,请求时,系统参数是必传的,否则无法成功请求,业务参数由具体业务接口定义。

入参格式

系统参数
名称 类型 必填 描述
apiKey String 分配给供应商的唯一身份标识
sign String 请求签名,生成规则参见签名机制
timestamp String 时间戳,参见时间戳

3、业务参数

接口入参

名称 类型 必填 示例值 描述
orderInfo json 订单信息
customers array[json] 游客信息

入参示例

{
    "orderInfo": {
        "tuniuOrderId": "3569878",
        "tuniuSerialId": "265987456",
        "vendorOrderId": "2458658",
        "amount": 3,
        "vendorResId": "11360",
        "vendorResName": "东京一日游"
    },
    "customers": [
        {
            "name": "张三",
            "enName": "zhangsan",
            "mobile": "15858886888",
            "psptType": 2,
            "psptId": "340126198502146662",
            "birthday": "1985-02-14 "
        }
    ]
}							

接口出参

名称 类型 必填 示例值 描述
success bool true 成功失败
errorMsg String "执行成功" 返回信息
returnCode int 210000 成功错误码
data json 返回为true时必填

data中需要包含

名称 类型 必填 示例值 描述
proofNos array[String] ["35698","36798"] 已作废的取票凭证

出参示例

{
  "success": true,
  "returnCode": 100000,
  "errorMsg": "执行成功",
  "data": {
    "proofNos": [
      "35698",
      "36798"
    ]
  }
}							

4、自定义数据类型说明

orderInfo(订单信息)

名称 类型 必填 示例值 描述
tuniuOrderId String "3569878" 途牛订单号
tuniuSerialId String "265987456" 途牛订单序列号,此订单号为途牛系统对供应商的订单号,是双方系统交互的凭据。确认下单和取消订单均基于此序列号,由途牛系统保证唯一性。
vendorOrderId String "2458658" 供应商订单号
amount Int 3 订单人数/票数
vendorResId String "11360" 供应商资源id
vendorResName String "东京一日游" 供应商资源名称

customers(游客信息)

名称 类型 必填 示例值 描述
name String "张三" 姓名
enName String "zhangsan" 英文姓名
mobile String "15858886888" 手机号
psptType Int 2 证件类型 1=身份证、2=护照、3=军官证、4=港澳通行证、6=其它、7=台胞证
psptId String "340126198502146662" 证件号码
birthday String "1985-02-14 " 生日

5、常见问题

接口说明


1)用户使用验证码后由供应商调用此接口

2)由于验证码可能有多个,所以同一订单可能会被调用多次,此接口支持同一订单下的单个或者多个凭证。暂不支持多个订单同时核销

1、调用方法

Method:HTTP-POST

Url:{API_Url}/1.0/order/verified

2、系统参数

API调用参数分为系统参数和业务参数,请求时,系统参数是必传的,否则无法成功请求,业务参数由具体业务接口定义。

入参格式

系统参数
名称 类型 必填 描述
apiKey String 分配给供应商的唯一身份标识
sign String 请求签名,生成规则参见签名机制
timestamp String 时间戳,参见时间戳

3、业务参数

接口入参

名称 类型 必填 示例值 描述
vendorOrderId String "11309" 供应商订单号
proofNos array[String] ["26589748","246689413"] 已使用的取票凭证;传空默认为核销该订单的所有取票凭证
useTime String "2015-06-12" 使用时间

入参示例

{
  "vendorOrderId": "11309",
  "proofNos": [
    "26589748",
    "246689413"
  ],
  "useTime": "2015-06-12"
}							

接口出参

名称 类型 必填 示例值 描述
success bool true 成功失败
errorMsg String "执行成功" 返回信息
returnCode int 210000 成功错误码

出参示例

{
    "success": true,
    "returnCode": 100000,
    "errorMsg": "执行成功"
}							

4、常见问题

接口说明


1)供应商调用途牛资源采购规则维护接口时返回的operateId,实际该业务处理成功时会反馈通知此接口

2)此接口由供应商实现,入参出参严格按照此文档

3)供应商需实现此接口的同步方法,且在认证阶段将url 告知途牛api系统

1、调用方法

Method:HTTP-POST

Url:供应商提供

2、系统参数

API调用参数分为系统参数和业务参数,请求时,系统参数是必传的,否则无法成功请求,业务参数由具体业务接口定义。

入参格式

系统参数
名称 类型 必填 描述
apiKey String 分配给供应商的唯一身份标识
sign String 请求签名,生成规则参见签名机制
timestamp String 时间戳,参见时间戳

3、业务参数

接口入参

名称 类型 必填 示例值 描述
operateId String "13568" 操作批次ID, 与供应商调用途牛接口后返回的id一致
opResult bool true 成功失败
opMsg String "执行成功" 成功失败提示信息

入参示例

{
  "operateId": "11309",
  "opResult": true,
  "opMsg": "操作成功"

}							

接口出参

名称 类型 必填 示例值 描述
success bool true 成功失败
errorMsg String "执行成功" 返回信息
returnCode int 100000 成功错误码

出参示例

{
    "success": true,
    "returnCode": 100000,
    "errorMsg": "执行成功"
}							

4、常见问题

接口说明


此接口由api提供给供应商,用于新产品推送。

1、调用方法

Method:HTTP-POST

Url:{API_Url}/1.1/plan/addProductBaseInfo

Data_Type:json

2、系统参数

API调用参数分为系统参数和业务参数,请求时,系统参数是必传的,否则无法成功请求,业务参数由具体业务接口定义。

入参格式

系统参数
名称 类型 必填 描述
apiKey String 分配给供应商的唯一身份标识
sign String 请求签名,生成规则参见签名机制
timestamp String 时间戳,参见时间戳

3、业务参数

接口入参

名称 类型 必填 示例值 描述
agencyProductId Varchar(100) test10001 供应商产品编号:由供应商自行保证每个操作的产品都存在这个值,且该值在该供应商所有产品下无重复。
agencyProductName String “直通车” 支持供应商一个产品id对应多个团的情况,如不传该字段,表明只支持单个团
isDefault Integer 0 是否属默认行程。0:不是默认行程;1:是,默认是
festaName Integer 1 资源名称-节日。支持0:无;1:“元旦”;2:“春节”;3:“元宵”;4:“清明”;5:“五一”;6:“端午”;7:“中秋”;8:“国庆”;9:“圣诞”
mainName String “厦门三日游” 资源名称-产品名,限70字以内
lastName String “0购物0自费,全程不换车导,玩转厦门” 资源名称-产品名后缀,限70字以内
productMode Integer 0 采购方式0 打包 1 地接
saleType String 0 是否是尾货"1000" 否 "800" 是
agencyManagerName String “张三” 供应商OP:供应商实际负责此资源/产品的业务对接人,如操作、计调等。
tuniuManagerId Integer 4872 途牛产品经理id
tuniuManagerNickname String “李四” 途牛产品经理名称
smallpic String “” 图片,保留字段,暂未启用
destSpotKeyName String “鼓浪屿” 景点关键字,通过关键字获取景点,多个关键词以逗号隔开
continentName String “亚洲”
countryName String “中国” 国家
provinceName String “江苏”
cityName String “南京”
absSmallpic String “” 首选图片,保留字段,暂未启用
districtName String “玄武” 区、县
otherCharacter String "厦门直通车" 产品特色词,限6字以内
charactericWord2 String “厦门直通车2” 特色词2,限6字以内
charactericWord3 String “厦门直通车3” 特色词3,限6字以内
charactericWord4 String “厦门直通车4” 特色词4,限6字以内
charactericWord5 String “厦门直通车5” 特色词5,限6字以内
charactericWord6 String “厦门直通车6” 特色词6,限6字以内
productManageRecomment String “欣赏厦门环岛路,感受阳光、蓝天、大海、沙滩组合为一体的迷人风光” 产品推荐信息,限210字以内
noLeader Integer 0 是否含领队 0含、1不含
supportMultiTrip Integer 0 是否支持多行程 1:支持 0不支持。默认0

入参示例

{
  "agencyProductId": "供应商产品id",
  "agencyProductName": "供应商产品名称",
  "isDefault": 0,
  "festaName": "7",
  "mainName": "产品前缀名称",
  "lastName": "产品后缀名称",
  "productMode": "0",
  "continentName": "亚洲",
  "countryName": "中国",
  "provinceName": "安徽",
  "cityName": "合肥",
  "districtName": "蜀山",
  "agencyManagerName": "供应商负责人姓名",
  "tuniuManagerNickname": "途牛负责人姓名",
  "otherCharacter": "1",
  "charactericWord2": "2",
  "charactericWord3": "3",
  "charactericWord4": "4",
  "charactericWord5": "5",
  "charactericWord6": "6",
  "productManageRecomment": "afeafa",
  "noLeader": 1,
  "supportMultiTrip": "0",
  "tuniuManagerId": "2315",
  "destSpotKeyName": "北京比如世界",
  "smallpic": "",
  "absSmallpic": ""
}
							

接口出参

名称 类型 必填 示例值 描述
success boolean true 是否执行成功
returnCode int 000000 返回码
errorMsg Varchar(256) 执行成功 执行结果

出参示例

{
	"success":true,
	"returnCode":000000,
	"errorMsg":"执行成功"
}							

4、自定义数据类型说明

5、常见问题

API返回码 问题描述 解决方案 备注

接口说明


此接口由api提供给供应商,用于针对某一产品查看该产品的产品信息。包括基本信息、产品推荐、行程信息、重要信息、发车信息、费用包含、费用不包含、特殊人群限制、活动推荐、预定须知。

1、调用方法

Method:HTTP-POST

Url:{API_Url}/1.1/view/productInfo

Data_Type:json

2、系统参数

API调用参数分为系统参数和业务参数,请求时,系统参数是必传的,否则无法成功请求,业务参数由具体业务接口定义。

入参格式

系统参数
名称 类型 必填 描述
apiKey String 分配给供应商的唯一身份标识
sign String 请求签名,生成规则参见签名机制
timestamp String 时间戳,参见时间戳

3、业务参数

接口入参

名称 类型 必填 示例值 描述
agencyProductId String test10001 供应商产品编号:由供应商自行保证每个操作的产品都存在这个值,且该值在该供应商所有产品下无重复。
tuniuProductId int 123456 途牛产品编号:由途牛自行保证每个操作的产品都存在这个值
agencySchemeId String 0 供应商产品升级方案编号
tripName String "测试行程" 多行程名称

入参示例

{
	"agencyProductId":"test10001",
	"tuniuProductId":123456,
	"agencySchemeId":"test002",
	"tripName":"测试行程"
}							

接口出参

名称 类型 必填 示例值 描述
success boolean true 是否执行成功
returnCode int 000000 返回码
errorMsg Varchar(256) 执行成功 执行结果
data TuniuProductInfo 执行结果

出参示例

{
	"data" : {
		"baseInfo" : {
			"agencyManagerName" : "张三",
			"agencyProductId" : "32801",
			"agencyProductName" : "曼谷·芭堤雅完美七日游",
			"destSpotInfo" : [{
					"spotFullName" : "亚洲--泰国--曼谷--玉佛寺"
				}, {
					"spotFullName" : "亚洲--泰国--春武里府--芭提雅--七珍佛山"
				}
			],
			"destination" : {
				"cityName" : "曼谷",
				"continentName" : "亚洲",
				"countryName" : "泰国",
				"provinceName" : "曼谷"
			},
			"noLeader" : 0,
			"operateAttention" : "操作注意事项",
			"productManageRecomment" : "好玩",
			"isJoinGroup" : 0,
			"teamDepartCity" : {
				"name" : "武汉"
			},
			"teamType" : 0
		},
		"recommendInfo" : [{
				"description" : "",
				"proType" : 12
			}, {
				"description" : "领略舌尖上的泰国-彩虹大厦空中自助晚餐、泰式BBQ等各色美食",
				"proType" : 1
			}, {
				"description" : "",
				"proType" : 2
			}, {
				"description" : "武汉直飞",
				"proType" : 3
			}, {
				"description" : "东方夏威夷",
				"proType" : 4
			}, {
				"description" : "购物店请见线路行程",
				"proType" : 5
			}, {
				"description" : "芭堤雅最新人妖秀表演剧场",
				"proType" : 6
			}, {
				"description" : "",
				"proType" : 7
			}, {
				"description" : "",
				"descriptionModules" : {
					"modules" : [{
							"content" : "最好的资源+合理的行程",
							"imgs" : "",
							"title" : "产品特色详情"
						}, {
							"content" : "",
							"imgs" : "http://123.com"
							"title" : ""
						}, {
							"content" : "",
							"imgs" : "http://456.com",
							"title" : ""
						}, {
							"content" : "",
							"imgs" : "http://789.com",
							"title" : ""
						}
					]
				},
				"proType" : 8
			}, {
				"description" : "会员日立减优惠",
				"proType" : 9
			}, {
				"description" : "泰国当地通知",
				"proType" : 10
			}, {
				"description" : "回程 曼谷(BKK)武汉(WUH)",
				"proType" : 11
			}
		],
		"scheduleInfo" : {
			"airCode" : "-1",
			"content" : {
				"scheduleContent" : "行程信息"
			},
			"dayNum" : 0,
			"destinationCity" : "亚洲,泰国,曼谷,曼谷,",
			"leaveCity" : "亚洲,泰国,曼谷,曼谷,,",
			"nightNum" : 0,
			"scheduleRemark" : "行程备注"
			"supportLink" : 0,
			"trafficBack" : 1,
			"trafficGo" : 1
		},
		"importantInfo" : {
			"beginPlaceDesc" : "亚洲--中国--湖北--武汉",
			"independentTeam" : 0,
			"isJoinGroup" : 0,
			"teamDepartCity" : {
				"name" : "武汉"
			},
			"teamType" : 0
		},
		"departInfo" : {
			"autoSendNoticeFlag" : 0,
			"departList" : [
				"startPos" : "南京",
				"startTime" : "2017-01-09",
				"returnPos" : "南京",
				"remark" : "备注"
			],
			"departTitle" : "",
			"emergencyContactInfo" : "",
			"pickUpFlag" : 0,
			"productInfoRemark" : ""
		},
		"budgetIncludeInfo" : {
			"budgetInclude" : "1、交通:往返团队/散客机票含税费"
		},
		"budgetExcludeInfo" : {
			"budgetExclude" : "1、签证/签注:落地签证费200元/人,境外机场现付。2、单房差:单房差()。3、门票:行程中注明需要另行支付的自费景点(具体请参考行程描述)。4、其他:12月1日-2月28日落地签费用为200元/人,2月28日之后400元/人;请自带有效护照原件及落地签照片。根据泰国出入境规定中国三个省,新疆省,河南省,湖南省,这三个省入泰国必须要有身份证复印和护照。。5、补充:出入境个人物品海关征税,超重行李的托运费、保管费,因交通延阻、战争、政变、罢工、天气、飞机机器故障、航班取消或更改时间等不可抗力原因所引致的额外费用,酒店内洗衣、理发、电话、传真、收费电视、饮品、烟酒等个人消费,当地参加的自费以及以上“费用包含”中不包含的其它项目。6、旅游意外险:旅游人身意外保险。"
		},
		"selfChargeInfo" : {
			"shopRecommend" : [
				"shopRecommendTitle" : "南京御景购物",
				"shopRecommendProduct" : "丝绸",
				"shopRecommendInfo" : "购物店说明"
			],
			"selfChargeList" : [
				"activityName" : "活动名称1",
				"referencePrice" : "200",
				"description" : "详情",
				"remark" : "备注"
			],
			"selfChargeNote" : "备注"
		},
		"specialPeopleInfo" : {
			"areaLimitJson" : [

			],
			"peopleLimitJson" : {
				"beyondAge" : 70,
				"healthAge" : 60,
				"people_age_limit_high" : 60,
				"people_age_limit_low" : 18
			}
		}
		"attentionInfo" : {
			"attention" : "<为了确保您能够按时出行,产品确认后请在48小时内付款",
			"warmAttention" : "1)出团当天请您携带护照原件和2寸白底彩色照片用作落地签使用"
		}
	},
	"returnCode" : 231000,
	"success" : true
}
					

4、自定义数据类型说明

TuniuProductInfo(途牛产品信息)

名称 类型 必填 示例值 描述
baseInfo BaseInfo 基础信息
recommendInfo RecommendInfo[] 产品推荐
scheduleInfo ScheduleInfo 行程信息
importantInfo ImportantInfo 重要信息
departInfo DepartInfo 发车信息
budgetIncludeInfo BudgetIncludeInfo 费用包含信息
budgetExcludeInfo BudgetExcludeInfo 费用不包含信息
specialPeopleInfo SpecialPeopleInfo 特殊人群限制
selfChargeInfo SelfChargeInfo 活动推荐
attentionInfo AttentionInfo 预定须知

BaseInfo(基础信息)

名称 类型 必填 示例值 描述
agencyProductId String "test001" 供应商产品编号
agencyProductName String "供应商测试产品名称" 供应商产品名称
productName String "途牛测试资源名称" 资源名称
productMode int 0 采购方式(0代表打包,1代表地接)
destination Destination 目的地
agencyManagerName String “李四” 供应商OP
tuniuManagerNickname String “张三” 途牛产品经理
supportProduct int 0 是否提供产品(1是,0否)
destSpotInfo DestSpotInfo[] 目的地景点
saleType int 8000 是否是尾货(8000代表是,1000代表否)
smallpic String “http:123.com” 景点图片(http链接形式,以逗号隔开)
productManageRecomment String "南京是个好地方" 产品经理推荐
recommend String "特色词1,特色词2" 特色词
operateAttention String "注意事项" 产品注意事项
noLeader int 0 是否含领队(0含,1不含)
supportMultiTrip int 1 是否含多行程 (1是,0否)

RecommendInfo(产品推荐)

名称 类型 必填 示例值 描述
proType int 1 推荐类型,1为吃,2为住,3为行,4为游,5为购,6为娱,7为赠,8详情,9特别优惠,10重要提示,11交通信息,12表示产品特色
description String "南京回味真好吃" 推荐描述
descriptionModules DescriptionModule[] "途牛测试资源名称" 推荐描述详情

ScheduleInfo(行程信息)

名称 类型 必填 示例值 描述
trafficGo int 1 去程交通: 0:往--,1:飞机,2:火车软卧,3:火车硬卧,4:火车软座,5:火车硬座,6:汽车,7:邮轮,8:火车,9:动车组,10:游船,11:高铁二等座,12:高铁一等座,13:高铁商务座,14:自行安排
trafficBack int 1 返程交通: 0:往--,1:飞机,2:火车软卧,3:火车硬卧,4:火车软座,5:火车硬座,6:汽车,7:邮轮,8:火车,9:动车组,10:游船,11:高铁二等座,12:高铁一等座,13:高铁商务座,14:自行安排
dayNum int 2 行程天数
nightNum int 1 行程晚数
leaveCity String “南京” 集合出发城市
destinationCity String “北京” 返回抵达城市
supportLink int 1 是否支持联运 1支持,除此之外不支持
content Content 1 行程具体内容
scheduleRemark String "行程备注信息" 行程附注

ImportantInfo(重要信息)

名称 类型 必填 示例值 描述
teamType int 1 0, 出发地成团;1,目的地成团
teamDepartCity TeamDepartCity 出发城市
beginPlaceDesc String “亚洲--中国--湖北--武汉” 成团地点
independentTeam int 1 组团形式:1:途牛独家发团,0:联合发团 2:无
isJoinGroup int 0 是否拼团:0:非行程中拼团,1:行程中拼团

DepartInfo(发车信息)

名称 类型 必填 示例值 描述
departTitle String "南京发车" 发车基本信息
emergencyContactInfo String "张三;123456" 紧急联系人及电话(姓名和电话之间请使用中文";"符号分隔!)
autoSendNoticeFlag int 1 可自动发送出团通知(0:否,1:是)
departList DepartDetail[] 发车详情
pickUpFlag int 0 接送机(站)服务:0:不提供,1:提供 2:有条件提供
pickUpNotes String “备注信息” 接车信息备注
contactList ContactList “备注信息” 接车信息备注
productInfoRemark String “备注信息” 线路信息备注

BudgetIncludeInfo(费用包含)

名称 类型 必填 示例值 描述
budgetInclude String "费用包含信息" 费用包含信息

BudgetExcludeInfo(费用不包含)

名称 类型 必填 示例值 描述
budgetExclude String "费用不包含信息" 费用不包含信息

SpecialPeopleInfo(特殊人群限制)

名称 类型 必填 示例值 描述
peopleLimitJson PeopleLimitJson 人员限制
areaLimitJson AreaLimitJson[] 区域限制

SelfChargeInfo(活动推荐)

名称 类型 必填 示例值 描述
shopRecommend ShopRecommend[] 购物店信息
selfChargeList SelfChargeList[] 活动推荐
selfChargeNote String 说明

AttentionInfo(预定须知)

名称 类型 必填 示例值 描述
attention String "预订须知" 预订须知
warmAttention String "温馨提示" 温馨提示

ShopRecommend

名称 类型 必填 示例值 描述
shopRecommendTitle String "南京云景博物馆" 购物店名称
shopRecommendProduct String "丝绸" 购物店营业产品
shopRecommendInfo String "好店" 购物点说明

SelfChargeList

名称 类型 必填 示例值 描述
activityName String "活动1" 活动名称
referencePrice String "12" 参考价格
description String "活动详情" 活动详情
remark String "活动备注" 活动备注

PeopleLimitJson

名称 类型 必填 示例值 描述
minLimit Integer 10 单订单出游人数少于人,需现询确认
numLimit Integer 50 单订单出游人数超过人,需现询确认
beyondAge Integer 70 出游人年龄超过岁(含),不接收
underAge Integer 10 出游人年龄低于岁(不含),不接收
healthAge Integer 10 出游人年龄超过岁(含),需要签署健康协议
people_age_limit_low Integer 10 出游人在大于多少岁可以正常在线预订,年龄范围以外的出游人需现询确认
people_age_limit_high Integer 70 出游人在小于多少岁可以正常在线预订,年龄范围以外的出游人需现询确认
foreignerLimit Integer 1 是否接受外籍游客(含港澳台同胞)为1表示不接受

AreaLimitJson

名称 类型 必填 示例值 描述
peopleAreaOl String "ON" 是否以下户籍客人存在地域限制 on表示是以下户籍客人存在地域限制,off表示非以下户籍客人存在地域限制
continentName String "亚洲"
countryName String "中国" 国家
provinceName String "江苏"
cityName String "南京"

ContactList

名称 类型 必填 示例值 描述
type int 1 联系人类型:5:送站/机联系人,3:接站/机联系人,6:导游,1:出发地联系人,2:当地联系人,4:其他
name String “张三” 联系人姓名
phone String “12245” 联系人电话
remark String “备注信息” 备注信息

DepartDetail

名称 类型 必填 示例值 描述
startPos String “南京” 发车地点
startTime String “2017-01-09” 发车时间
returnPos String “北京” 返回地点
remark String “备注信息” 备注信息

TeamDepartCity

名称 类型 必填 示例值 描述
name String “南京” 出发城市名

Content

名称 类型 必填 示例值 描述
scheduleContent String “第一天,夫子庙,第二天,中山陵” 行程具体内容

DescriptionModule

名称 类型 必填 示例值 描述
modules Module[] 推荐描述详情

Module

名称 类型 必填 示例值 描述
title String "描述标题" 推荐描述详情-标题
imgs String "http:123.com" 推荐描述详情-图片
content String "舒适航班直飞,谢绝中转,快捷方便" 推荐描述详情-内容

Destination

名称 类型 必填 示例值 描述
continentName String "亚洲" 目的地-洲
countryName String "中国" 目的地-国家
provinceName String "江苏" 目的地-省
cityName String "南京" 目的地-城市

DestSpotInfo

名称 类型 必填 示例值 描述
spotFullName String "亚洲--泰国--曼谷--金佛寺" 目的地景点名称全称

5、常见问题

API返回码 问题描述 解决方案 备注
231008 入参异常 检查入参格式是否正确及必填参数是否传入

接口说明


此接口由api提供给供应商,用于针对某一产品修改该产品的产品信息。包括基本信息、产品推荐、重要信息、发车信息、费用包含、费用不包含、特殊人群限制、活动推荐、预定须知、其它。

1、调用方法

Method:HTTP-POST

Url:{API_Url}/1.1/basic/addOrModify

Data_Type:json

2、系统参数

API调用参数分为系统参数和业务参数,请求时,系统参数是必传的,否则无法成功请求,业务参数由具体业务接口定义。

入参格式

系统参数
名称 类型 必填 描述
apiKey String 分配给供应商的唯一身份标识
sign String 请求签名,生成规则参见签名机制
timestamp String 时间戳,参见时间戳

3、业务参数

接口入参

名称 类型 必填 示例值 描述
agencyProductId Varchar(100) test10001 供应商产品编号:由供应商自行保证每个操作的产品都存在这个值,且该值在该供应商所有产品下无重复。
groupNum Varchar(100) “0” 支持供应商一个产品id对应多个团的情况,如不传该字段,表明只支持单个团
type Integer 0 标示供应商当前对草稿的操作类型。0:新增;1:修改
basicInfo BasicInfo 基本信息的tab,如果是新增,则必须存在
recommendInfo RecommendInfo 推荐信息的tab
importantInfo ImportantInfo 重要信息的tab
departInfo DepartInfo 发车信息的tab
budgetIncludeInfo BudgetIncludeInfo 费用包含信息的tab
budgetExcludeInfo BudgetExcludeInfo 费用不包含信息的tab
specialPeopleInfo SpecialPeopleInfo 特殊人群限制的tab
selfChargeInfo SelfChargeInfo 活动推荐信息的tab
attentionInfo AttentionInfo 预定须知信息的tab
otherInfo OtherInfo 其他信息的tab

入参示例

{
	"agencyProductId":"test10001",
	"groupNum":"",
	"type":0,
	"basicInfo":{
		"agencyProductName":"product_name_001",
		"festaName":"元旦",
		"mainName":"",
		"lastName":"",
		"catType":1,
		"productMode":1,
		"startCity":"",
		"bookingCity":"宁波,上海",
		"agencyManagerName":"",
		"recommend":"",
		"isDefault":0,
		"productBaseScheduleId":"test10002",
		"tripNum":1
	},
	"recommendInfo":{
	  "detail": {
		"proType": 8,
		"description": "",
		"sortOrder": 1
	  },
	  "characteristic": {
		"proType": 12,
		"description": "",
		"sortOrder": 1
	  },
	  "recommendDetails": [
		{
		  "description": "吃的推荐信息描述",
		  "proType": 1,
		  "sortOrder": 1
		},
		{
		  "description": "住的推荐信息描述",
		  "proType": 2,
		  "sortOrder": 1
		},
		{
		  "description": "出行的推荐信息描述",
		  "proType": 3,
		  "sortOrder": 1
		},
		{
		  "description": "游玩的推荐信息描述",
		  "proType": 4,
		  "sortOrder": 1
		},
		{
		  "description": "购物的推荐信息描述",
		  "proType": 5,
		  "sortOrder": 1
		},
		{
		  "description": "娱乐的推荐信息描述",
		  "proType": 6,
		  "sortOrder": 1
		},
		{
		  "description": "赠的推荐信息描述",
		  "proType": 7,
		  "sortOrder": 1
		},
		{
		  "description": "详情的推荐信息描述",
		  "proType": 8,
		  "sortOrder": 1
		},
		{
		  "description": "特别优惠的的推荐信息描述",
		  "proType": 9,
		  "sortOrder": 1
		},
		{
		  "description": "重要提示的推荐信息描述",
		  "proType": 10,
		  "sortOrder": 1
		},
		{
		  "description": "交通信息的推荐信息描述",
		  "proType": 11,
		  "sortOrder": 1
		},
		{
		  "description": "产品特色的推荐信息描述",
		  "proType": 12,
		  "sortOrder": 1
		}
	  ]
	},
	"importantInfo":{
		"teamType":0,
		"independentTeam":1,
		"isJoinGroup":0,
		"joinGroupInfo":{
			"joinType":1,
			"joinCount":2,
			"scheduleDesc":""
		},
		"localTourFlag":0,
		"carpoolFlag":0,
		"carpoolRemark":"",
		"changeCarOrGuideFlag":0,
		"changeRemark":"",
		"updateSchemeFlag":1,
		"updateRemark":""
	},
	"departInfo":{
		"departTitle":"",
		"emergencyContactInfo":"",
		"autoSendNoticeFlag":0,
		"departList":[{
			"startPos":"发车地点",
			"startTime":"HH:mm:ss",
			"returnPos":"返回地点",
			"remark":"备注"
		}],
		"pickUpFlag":0,
		"pickUpType":0,
		"pickUpTraffic":1,
		"pickUpNotes":"",
		"contactList":[{
			"type":3,
			"name":"联系人姓名",
			"phone":"联系人电话",
			"remark":"备注"
		}],
		"routeInfoRemark":""
	},
	"budgetIncludeInfo":{
		"trafficInfo":{
			"teamTicketFlag":0,
			"teamTicketType":0,
			"ticketInclueTax":0,
			"trainTicketsFlag":0,
			"trainTicketsList":[{
				"trainTicketsType":0,
				"trainSiteType":0
			}],
			"busFlag":0,
			"busType":0,
			"localBusFlag":0,
			"roundTripFlag":0,
			"shipFlag":0,
			"shipType":1,
			"shipRemark":""
		},
		"innerTrafficInfo":{
			"innerTrafficFlag":0,
			"innerTrafficType":0,
			"innerTrafficRemark":"小交通描述",
			"scenicCarFlag":1,
			"scenicCarRemark":"景区内用车描述"
		},
		"visaExplain":{
			"visaType":0,
			"visaCost":0
		},
		"liveInfo":{
			"liveType":0,
			"hotelStar":0,
			"roomCapacity":0,
			"hotelList":[{
				"destination":"目的地",
				"hotelStar":0,
				"roomCapacity":0,
				"nightTimes":0
			}],
			"aimHotelFlag":0,
			"aimHotelList":[{
				"destination":"",
				"nightTimes":0,
				"remark":""
			}]
		},
		"mealInfo":{
			"mealType":0,
			"mealRemark":""
		},
		"ticketFlag":0,
		"ticketRemark":"",
		"guideInfo":{
			"guideType":0,
			"guideRemark":""
		},
		"childStdInfo":{
			"childStdType":0,
			"excludeMinAge":0,
			"excludeMaxAge":0,
			"excludeMinHeight":0,
			"excludeMaxHeight":0,
			"useBedFlag":0,
			"remark":""
		},
		"tipInfo":{
			"tipFlag":0,
			"tipCost":10,
			"remark":""
		},
		"presentInfo":"",
		"otherInfo":""
	},
	"budgetExcludeInfo":{
		"innerTrafficInfo":{
			"innerTrafficFlag":0,
			"innerTrafficType":0,
			"innerTrafficRemark":"",
			"scenicCarFlag":0,
			"scenicCarRemark":""
		},
		"airTicketTax":{
			"roundTripFlag":0,
			"roundTripCost":0,
			"foreignTaxFlag":0,
			"foreignTaxCost":0
		},
		"endorsement":{
			"visaInfo":{
				"visaType":0,
				"visaCost":0
			},
			"personalEndorsement":0,
			"teamEndorsement":0,
			"permit":0,
			"roundTripPermit":0
		},
		"roomAddBudgetFlag":0,
		"roomAddBudgetRemark":"",
		"ticketFlag":0,
		"ticketRemark":"",
		"other":"",
		"supplementDetail":{
			"upholdFeeFlag":0,
			"governmentRegulationFlag":0,
			"customsFeeFlag":1,
			"extraCostFlag":0,
			"personalConsumptionFlag":0,
			"selfChargeFlag":0
		},
		"accidentInsurance":0
	},
	"specialPeopleInfo":{
		"numMinFlag":0,
		"numMinValue":0,
		"numMaxFlag":0,
		"numMaxValue":0,
		"ageMinFlag":0,
		"ageMinValue":0,
		"ageMaxFlag":0,
		"ageMaxValue":0,
		"ageMaxDealFlag":0,
		"ageMaxDealValue":0,
		"ageLimitFlag":0,
		"ageMinLimit":0,
		"ageMaxLimit":0,
		"allowForeignerFlag":0,
		"areaLimitFlag":0,
		"areaLimitType":0,
		"areaLimitList":[{
			"limitType":0,
			"limitName":"江苏"
		},{
			"limitType":1,
			"limitName":"南京"
		}]
	},
	"selfChargeInfo":{
		"shoppingList":[{
			"shoppingName":"",
			"businessProduct":"",
			"remark":""
		}],
		"activeList":[{
			"activeName":"",
			"activeCost":0,
			"activeContent":"",
			"remark":""
		}],
		"remark":""
	},
	"attentionInfo":{
		"selfDrivingFlag":0,
		"selfDrivingRemark":"",
		"paymentAttention":{
			"type":0,
			"hourLimit":0
		},
		"groupCancelFlag":0,
		"groupCancelNumLimit":1,
		"groupCancelDayLimit":1,
		"leaveTeamFlag":0,
		"liquidatedDamagesFlag":0,
		"liquidatedCost":100,
		"saleNoteFlag":0,
		"allowPeopleType":0,
		"selfVisaNoteFlag":0,
		"extraNoteList":[],
		"timeDelayNoteFlag":0,
		"bookingCannelGroupNoteFlag":0,
		"orderCannelGroupNoteFlag":0,
		"airTicketNoteFlag":0,
		"consumeBlameNoteFlag":0,
		"specialNoteFlag":0,
		"flightNoteFlag":0,
		"guaranteeGoldNoteFlag":0,
		"liveAttentionInfo":{
			"type":0,
			"washFlag":0
		},
		"mealAttentionFlag":0,
		"foodNum":0,
		"differenceAttentionFlag":0,
		"differenceAttentionType":0,
		"highRiskTips": "0,1,2,3"
	}
	"otherInfo:"{
		"operateAttention":"产品注意事项",
		"warnAttention":"温馨提示"
	}
}							

接口出参

名称 类型 必填 示例值 描述
success boolean true 是否执行成功
returnCode int 000000 返回码
errorMsg Varchar(256) 执行成功 执行结果
data BaseInfoResultDate 执行结果

出参示例

{
	"success":true,
	"returnCode":000000,
	"errorMsg":"执行成功",
	"data":{
		"basicInfoResult":{
			"success":true,
			"msg":"",
			"errorCode":000000
		},
		"recommendInfoResult":{
			"success":true,
			"msg":"",
			"errorCode":000000
		},
		"importantInfoResult":{
			"success":true,
			"msg":"",
			"errorCode":000000
		},
		"departInfoResult":{
			"success":true,
			"msg":"",
			"errorCode":000000
		},
		"budgetInclueResult":{
			"success":true,
			"msg":"",
			"errorCode":000000
		},
		"budgetExclueResult":{
			"success":true,
			"msg":"",
			"errorCode":000000
		},
		"specialInfoResult":{
			"success":true,
			"msg":"",
			"errorCode":000000
		},
		"selfChargeResult":{
			"success":true,
			"msg":"",
			"errorCode":000000
		},
		"attentionReslut":{
			"success":true,
			"msg":"",
			"errorCode":000000
		}
	}	
}							

4、自定义数据类型说明

BasicInfo(基础信息)

名称 类型 必填 示例值 描述
agencyProductName Varchar(256) product_name_001 供应商产品名称
festaName Varchar(8) 元旦 途牛产品名称中的节日
mainName Varchar(128) 途牛产品名称中的主名称
lastName Varchar(100) 途牛产品名称中的副名称
catType Integer 产品类型: 1、周边2、国内长线3、国内当地参团 4、出境当地参团5、出境短线6、出境长线新增是存在,修改时不存在
productMode Integer 采购方式:1、打包产品2、机票+地接3、火车票+地接
startCity Varchar(128) 出发城市
bookingCity Varchar(1024) 宁波,上海 预定城市名称,多个以逗号分割
agencyManagerName Varchar(45) 供应商产品负责人
recommend Varchar(128) 特色词(最好在6个单词以内)
isDefault Integer 0 是否默认行程,1表示默认行程,0表示多行程,默认为1,默认行程
productBaseScheduleId Varchar(128) test10002 供应商基本产品编号,如果isDefault为0,为必填
tripNum Integer 1 行程排序,默认行程行程排序为0

RecommendInfo(推荐信息)

名称 类型 必填 示例值 描述
detail RecommendRecord 详情(移到recommendDetails中,不在解析该字段)
characteristic RecommendRecord 产品特色推荐(移到recommendDetails中,不在解析该字段)
recommendDetails RecommendRecord[] 产品推荐类型为1-12的全部信息

ImportantInfo(重要信息)

名称 类型 必填 示例值 描述
teamType Integer 发团地点:0:出发地成团,1:目的地成团
independentTeam Integer 组团形式:1:途牛独家发团,0:联合发团 2:无
isJoinGroup Integer 是否拼团:0:非行程中拼团,1:行程中拼团
joinGroupInfo JoinGroupInfo 拼团附注信息,仅当行程中拼团此值存在
localTourFlag Integer 0 是否存在当地参团人员:0:不存在:1:存在
carpoolFlag Integer 0 是否拼车:0:否,1:是
carpoolRemark Varchar(128) 拼车备注。如果不拼车,此值不存在
changeCarOrGuideFlag Integer 0 是否更换当地车或导游:0:否,1:是
changeRemark Varchar(128) 换车/导游备注,如果不换,此值不存在
updateSchemeFlag Integer 0 升级行程:0:不升级,1:升级
updateRemark Varchar(128) 升级备注,当不升级行程时此值不存在

DepartInfo(发车信息)

名称 类型 必填 示例值 描述
departTitle Varchar(128) 发车基本信息
emergencyContactInfo Varchar(128) 紧急联系人及电话
autoSendNoticeFlag Integer 0 自动发送出团通知:0:否,1:是
departList DepartDetail[] 发车信息详情
pickUpFlag Integer 0 接送机(站)服务:0:不提供,1:提供 2:有条件提供
pickUpType Integer 0 接送服务:1:接送都含2:只接不送3:只送不接
pickUpTraffic Varchar(16) 1,2 指定交通方式::1:飞机,2:火车,逗号分割
pickUpNotes Varchar(256) 接车信息备注(条件备注)
contactList ContactDetail[] 联系人信息
routeInfoRemark Varchar(256) 线路信息备注

BudgetIncludeInfo(费用包含信息)

名称 类型 必填 示例值 描述
trafficInfo TrafficDetail 费用包含的交通信息
innerTrafficInfo InnerTrafficInfo 费用包含的小交通信息
visaExplain VisaExplain 费用包含的签证,当产品类型为出境时此值存在
liveInfo LiveDetail 费用包含住宿信息
mealInfo MealDetail 费用包含用餐信息用餐支持:中式餐或自助餐或特色餐,自由活动期间用餐请自理;如因自身原因放弃用餐,则餐费不退这个条件 ,则存在此字段
ticketFlag Integer 0 是否包含门票:0:不包含,1:包含
ticketRemark Varchar(256) 门票说明,包含门票是此值存在
guideInfo GuideDetail 费用包含的导服信息
childStdInfo ChildStdDetail 费用包含的儿童价标准
tipInfo TipDetail 费用包含的小费信息
presentInfo Varchar(256) 费用包含的赠送信息
otherInfo Varchar(256) 费用包含的其他信息

BudgetExcludeInfo(费用不包含信息)

名称 类型 必填 示例值 描述
innerTrafficInfo InnerTrafficInfo 费用不包含的小交通信息
airTicketTax AirTicketTaxDetail 机票税信息
endorsement Endorsement 签证/签注信息
roomAddBudgetFlag Integer 是否包含单房差:0:不包含,1:包含
roomAddBudgetRemark Varchar(256) 单房差说明,仅在包含单房差信息时存在
ticketFlag Integer 0 是否包含门票:0:不包含,1:包含
ticketRemark Varchar(256) 门票说明,包含门票是此值存在
other Varchar(256) 其他信息
supplementDetail SupplementDetail 补充信息
accidentInsurance Integer 是否存在旅游意外险:0:不存在,1:存在

SpecialPeopleInfo(特殊人群限制信息)

名称 类型 必填 示例值 描述
numMinFlag Integer 是否存在单订单出游人数少于?人,需现询确认:0:不存在,1:存在
numMinValue Integer 0 最少人数。存在但订单最小人数限制时存在
numMaxFlag Integer 是否存在单订单出游人数大于?人,需现询确认:0:不存在,1:存在
numMaxValue Integer 0 最大人数。存在但订单最大人数限制时存在
ageMinFlag Integer 是否存在出游人年龄小于?岁(含),不接收:0:不存在,1:存在
ageMinValue Integer 0 最小年龄。存在出游人年龄最小限制时存在
ageMaxFlag Integer 是否存在出游人年龄超过?岁(含),不接收:0:不存在,1:存在
ageMaxValue Integer 0 最大年龄。存在出游人年龄最大限制时存在
ageMaxDealFlag Integer 是否存在出游人年龄超过?岁(含),需要签署健康协议:0:不存在,1:存在
ageMaxDealValue Integer 0 年龄。存在出游人年龄最大限制须签署协议时存在
ageLimitFlag Integer 0 年龄限制,0:无限制,1:存在限制
ageMinLimit Integer 0 年龄最小限制, 存在年龄限制时有意义
ageMaxLimit Integer 0 年龄最大限制, 存在年龄限制时有意义
allowForeignerFlag Integer 0 是否不接受外籍游客:0:是,1:否
areaLimitFlag Integer 是存在地域限制:0:不存在,1:存在
areaLimitType Integer 0 0:包含的地域存在限制,1:不包含的地域存在限制;当不存在地域限制时,此值无意义
areaLimitList AreaLimitDetail[] 限制的地域列表

SelfChargeInfo(活动信息)

名称 类型 必填 示例值 描述
shoppingList ShoppingDetail[] 购物店信息
activeList ActiveDetail[] 活动推荐
remark Varchar(1024) 说明

AttentionInfo(提示信息)

名称 类型 必填 示例值 描述
selfDrivingFlag Integer 是否自驾游手动编写内容,0:否,1:是
selfDrivingRemark Varchar(1024) 自驾游手动编写的内容,仅在selfDrivingFlag为1时,此字段存在意义
paymentAttention PaymentAttention (出境)付款的预定须知
groupCancelFlag Integer 0 (出境)是否在此团收客人数不足?人时,取消行程:0:否,1:是
groupCancelNumLimit Integer (出境)取消行程的最小人数限制,仅当允许取消行程时,此值有意义
groupCancelDayLimit Integer (出境)取消行程的通知提前天数,仅当允许取消行程时,此值有意义
leaveTeamFlag Integer (出境)团队游览中是否允许擅自离队:0:允许,1:不允许
liquidatedDamagesFlag Integer (出境)擅自离队是否需要支付违约金,0:否,1:是,尽在不允许擅自离队时存在意义
liquidatedCost Integer (出境)需要支付的违约金金额,仅在需要支付违约金时有意义
saleNoteFlag Integer 0 (出境)是否包含销签说明:0:不包含,1:包含
allowPeopleType Integer 0 (出境)允许人群:0:全部,1:只接受持各地签发的中国大陆因私护照客人,不接受港澳台及外籍客人预订2:只接受持各地签发的港澳通行证客人,不接受港澳台及外籍客人预订
selfVisaNoteFlag Integer 0 (出境)自备签证说明:0:不存在,1:存在
extraNoteList Varchar[] 附加提示
timeDelayNoteFlag Integer 0 (出境)因甲方原因发生拒签、延时交签造成本次出境行程变更或取消的,乙方不承担违约责任,甲方需承担申办 签证费用____/人 是否存在,0:不存在,1:存在
bookingCannelGroupNoteFlag Integer 0 (出境)出签前,顾客取消行程说明是否存在:0:不存在,1:存在
orderCannelGroupNoteFlag Integer 0 (出境)出签后,顾客取消行程说明是否存在:0:不存在,1:存在
airTicketNoteFlag Integer 0 (出境)机票说明是否存在:0:不存在,1:存在
consumeBlameNoteFlag Integer 0 (出境)甲方原因无法出游乙方免责说明是否存在:0:不存在,1:存在
specialNoteFlag Integer 0 (出境)特别提醒说明是否存在:0:不存在,1:存在
flightNoteFlag Integer 0 (出境)航班信息说明是否存在:0:不存在,1:存在
guaranteeGoldNoteFlag Integer 0 (出境)担保金说明是否存在:0:不存在,1:存在
liveAttentionInfo LiveAttentionDetail (非出境)住宿说明
mealAttentionFlag Integer 0 是否包含用餐说明:0:不包含,1:包含
foodNum Integer 0 ?道菜,仅当包含用餐说明是存在
differenceAttentionFlag Integer 0 (非出境)是否存在差价说明:0:不存在,1:存在
备注:存在插件说明,则必须支持1. (1)如遇国家政策性调整门票、交通价格等,按调整后的实际价格结算。2. (2)赠送项目因航班、天气等不可抗因素导致不能赠送的,费用不退。3. 这两个必要因素
differenceAttentionType Integer (非出境)差价说明:0:景点门票为旅行社折扣价,如持优待证件(如老年证、军官证、教师证等)产生折扣退费的,按实际差额退还,1:云南当地景点实行套票制,如持优待证件(如老年证、军官证、教师证等)或没有游览完行程景点,产生差价不退2:本线路价格为团队行程综合旅游报价,持有任何优惠证件的游客均不再享受景区门票的优惠政策。仅在包含差价说明是存在意义
highRiskTips Varchar(64) 0,1,2,3 高危项提示,: 0,漂流1,浮潜3,高原4,快艇5,潜水6,滑雪 多个以逗号分割

OtherInfo(其他信息)

名称 类型 必填 示例值 描述
operateAttention Varchar(5000) 产品注意事项
warnAttention Varchar(5000) 温馨提示

TrafficDetail(交通信息)

名称 类型 必填 示例值 描述
teamTicketFlag Integer 0 交通包含团队经济舱机票,0:不包含,1:包含
teamTicketType Integer 0 机票类型:0:往返,1:去程,2:回程,3:中间段如果交通不包含团队经济舱机票,则此字段不存在
ticketIncludeTax Integer 0 是否含税:0:不含税,1:含税,2:其他
trainTicketsFlag Integer 0 交通包含火车票,0:不包含,1:包含
trainTicketsList TrainTicketsDetail[] 如果不包含火车票,则字段不存在
busFlag Integer 0 交通包含旅游巴士,0:不包含,1:包含
busType Integer 0 汽车票类型:0:往返,1:全程,2:去程,3:回程如果交通不包含旅游巴士,则此字段不存在
localBusFlag Integer 0 交通包含当地旅游巴士,0:不包含,1:包含
roundTripFlag Integer 0 交通包含往返车票:0:不包含,1:包含
shipFlag Integer 0 交通包含船票,0:不包含,1:包含
shipType Integer 0 船票类型:0:往返,1:全程,2:去程,3:回程如果交通不包含船票,则此字段不存在
shipRemark Varchar(256) 船票的备注信息

TrainTicketsDetail(火车票信息)

名称 类型 必填 示例值 描述
trainTicketsType Integer 0 火车票类型 0:往返,1:去程,2:回程,3:中间段
trainSiteType Integer 0 坐席类型:0:-------,1:动车一等座,2:(动车二等座),3:(硬座),4:(软座),5:(硬卧),6:(软卧),7:(高铁),8:(城际列车一等座),9:(城际列车二等座

PaymentAttention(支付提示信息)

名称 类型 必填 示例值 描述
type Integer 0
类型::0:为了确保您能够按时出行,产品确认后请在?小时内付款,同时请按要求尽快提供出游所需的材料并签订出境旅游合同。,1:为了确保您能够按时出行,产品确认后请在?小时内付预付款签订报名意向书,同时请按要求尽快提供出游所需的材料,并于出团前5个工作日交齐尾款并签订出境旅游合同。2:预订时请告之您的出游人数、出发日期、住宿、用餐标准、以及您的特殊需求。,0:不包含,1:包含
hourLimit Integer 0 时间限制,当type不为2是存在

LiveAttentionDetail(住宿提示信息)

名称 类型 必填 示例值 描述
type Integer 0 拼房选择:0:不愿拼房,1:与亲友加床
washFlag Integer 0 是否提供洗漱用品:0:不提供,1:提供

JoinGroupInfo(拼团附注信息)

名称 类型 必填 示例值 描述
joinType Integer 拼团次数类型:准确值为0,估算值为1
joinCount Integer 拼团次数
scheduleDesc Varchar(1024) 拼团备注,如果拼团次数为估算值,此字段不存在

DepartDetail(发车信息详情)

名称 类型 必填 示例值 描述
startPos Varchar(64) 发车地点
startTime Varchar(19) 发车时间 HH:mm:ss
returnPos Varchar(64) 返回地点
remark Varchar(256) 备注

ContactDetail(联系人信息)

名称 类型 必填 示例值 描述
type Integer 联系人类型:5:送站/机联系人,3:接站/机联系人,6:导游,1:出发地联系人,2:当地联系人,4:其他
name Varchar(64) 联系人姓名
phone Varchar(16) 联系人电话
remark Varchar(256) 备注

InnerTrafficInfo(小交通信息)

名称 类型 必填 示例值 描述
innerTrafficFlag Integer 包含小交通:0:不包含,1:包含
innerTrafficType Integer 小交通类型:0:往返,1:去程,2:回程, 如果交通不包含小交通,则此字段不存在
innerTrafficRemark Varchar(256) 小交通描述(从某地到某地)
scenicCarFlag Integer 是否存在景区内用车,0:不存在,1:存在
scenicCarRemark Varchar(256) 景区内用车描述

LiveDetail(费用包含住宿信息)

名称 类型 必填 示例值 描述
liveType Integer 0 住宿类型:0:行程所列酒店,1:星级酒店,2:酒店,3:当地酒店,4:目的地星级酒店
hotelStar Integer 0 酒店星级,当liveType为1,3时此值有存在
roomCapacity Integer 0 房间标准容量(几人间),当liveType是1,2,3时此值有效
hotelList HotelDetail[] 目的地酒店信息,仅当liveType为4时此字段存在
aimHotelFlag Integer 0 目的地邮轮/酒店等信息是否存在,0:不存在,1:存在
aimHotelList AimHotelDetail[] 目的地邮轮/酒店等信息详情,仅当flag存在时有意义

HotelDetail(目的地酒店信息)

名称 类型 必填 示例值 描述
destination Varchar(64) 目的地
hotelStar Integer 酒店星级 0:普通,:3星级,4:4星级,5:5星级,9:----(即未知)
roomCapacity Integer 房间标准容量(几人间)
nightTimes Integer 入住多少晚

AimHotelDetail(邮轮/酒店等信息详情)

名称 类型 必填 示例值 描述
destination Varchar(64) 目的地
nightTimes Integer 入住多少晚
remark Varchar(256) 备注

VisaExplain(签证信息)

名称 类型 必填 示例值 描述
visaType Integer 0 签证类型:0:免签证,1:团队旅游签证,2:落地签费/人(现付)3: 落地签费/人(预付)
visaCost Integer 0 签证费用 元/人,如果免签证,此字段不存在

MealDetail(费用包含中的用餐信息)

名称 类型 必填 示例值 描述
mealType Integer 0 是否包含飞机上用餐:0:不包含,1:包含
mealRemark Varchar(256) 用餐说明

GuideDetail(导服信息)

名称 类型 必填 示例值 描述
guideType Integer 0 导服类型:0:当地中文导游,1:专职中文领队兼导游(境外),全程陪同中文导游(境内),2:专职领队和当地中文导游(境外),全陪和当地中文导游(境内)
guideRemark Varchar(256) 导服说明

ChildStdDetail(儿童价标准信息)

名称 类型 必填 示例值 描述
childStdType Integer 0 儿童价标准类型:0:年龄限制,1:身高限制,2:特说说明
excludeMinAge Integer 0 当Type为0是,不包含的最小的儿童年龄
excludeMaxAge Integer 0 当Type为0是,不包含的最大的儿童年龄
excludeMinHeight Integer 0 当Type为1是,包含的最小的儿童身高
excludeMaxHeight Integer 0 当Type为1是,包含的最大的儿童身高
useBedFlag Integer 0 是否占床:0:默认不填(------),1:不占床,此值在type为0,1时有效
remark Varchar(1024) 备注

TipDetail(小费信息)

名称 类型 必填 示例值 描述
tipFlag Integer 0 是否存在司机导游小费:0:不存在,1存在
tipCost Integer 当存在小费时的价格 元/人
remark Varchar(256) 当存在小时费的说明

AirTicketTaxDetail(机票税信息)

名称 类型 必填 示例值 描述
roundTripFlag Integer 往返机票税:0:不存在,1:存在
roundTripCost Integer 0 当存在往返机票税时的价格 元/人
foreignTaxFlag Integer 境外机场回程机场税:0:不存在,1:存在
foreignTaxCost Integer 0 当存在境外机场回程机场税的价格 元/人

Endorsement(签注信息)

名称 类型 必填 示例值 描述
visaInfo VisaExplain 签证信息
personalEndorsement Integer 是否个人签证,自行办理,0:否,1:是 元/人
teamEndorsement Integer 是否团队签证,自行办理,0:否,1:是
permit Integer 是否存在港澳通行证置证费:0:不存在,1:存在
roundTripPermit Integer 是否存在往来台湾通行证置证费:0:不存在,1:存在

SupplementDetail(补充信息)

名称 类型 必填 示例值 描述
upholdFeeFlag Integer 是否存在丽江古城维护费80元/人:0不存在,1存在(国内存在)
governmentRegulationFlag Integer 是否存在海南政府调节金:0不存在,1存在(国内存在) 元/人
customsFeeFlag Integer 是否存在出入境个人物品海关征税,超重行李的托运费、保管费,0:不存在,1:存在(出境存在)
extraCostFlag Integer 是否存在港澳通行证置证费:0:不存在,1:存在
roundTripPermit Integer 因交通延阻、战争、政变、罢工、天气、飞机机器故障、航班取消或更改时间等不可抗力原因所引致的额外费用,0:不存在,1:存在
personalConsumptionFlag Integer 酒店内洗衣、理发、电话、传真、收费电视、饮品、烟酒等个人消费,0:不存在,1:存在
selfChargeFlag Integer 当地参加的自费以及以上“费用包含”中不包含的其它项目0:不存在,1:存在

AreaLimitDetail(地域限制信息)

名称 类型 必填 示例值 描述
limitType Integer 限制类型:0:省,1:市
limitName Varchar(64) 名称(如果是省则填省的名字,市则填市的名字) 元/人

RecommendRecord(推荐信息详情)

名称 类型 必填 示例值 描述
proType Integer 12 推荐类型,1为吃,2为住,3为行,4为游,5为购,6为娱,7为赠,8详情,9特别优惠,10重要提示,11交通信息,12表示产品特色
description Varchar 推荐信息描述 内容详情
sortOrder Integer 1 排序(出境存在)

ShoppingDetail(购物店信息)

名称 类型 必填 示例值 描述
shoppingName Varchar(256) 购物店名称
businessProduct Varchar(256) 营业产品
remark Varchar(256) 说明

ActiveDetail(活动信息)

名称 类型 必填 示例值 描述
activeName Varchar(256) 活动名称
activeCost Integer 0 参考价格
activeContent Varchar(256) 活动内容
remark Varchar(256) 备注信息

BaseInfoResultDate(基础信息返回结果)

名称 类型 必填 示例值 描述
basicInfoResult CommonResult 基础信息执行结果
recommendInfoResult CommonResult 推荐信息执行结果
importantInfoResult CommonResult 重要信息执行结果
departInfoResult CommonResult 发车信息执行结果
budgetInclueResult CommonResult 费用包含执行结果
budgetExclueResult CommonResult 费用不包含执行结果
specialInfoResult CommonResult 特殊人群执行结果
selfChargeResult CommonResult 活动信息执行结果
attentionReslut CommonResult 预定须知执行结果

5、常见问题

API返回码 问题描述 解决方案 备注
231008 入参异常 检查入参格式是否正确及必填参数是否传入
231008 入参异常 检查basicInfo参数,如果是新增产品,则必须传入此参数

接口说明


此接口由api提供给供应商,用于针对某一产品新增/修改该产品的行程信息。

1、调用方法

Method:HTTP-POST

Url:{API_Url}/1.1/schedule/addOrModify

Data_Type:json

2、系统参数

API调用参数分为系统参数和业务参数,请求时,系统参数是必传的,否则无法成功请求,业务参数由具体业务接口定义。

入参格式

系统参数
名称 类型 必填 描述
apiKey String 分配给供应商的唯一身份标识
sign String 请求签名,生成规则参见签名机制
timestamp String 时间戳,参见时间戳

3、业务参数

接口入参

名称 类型 必填 示例值 描述
agencyProductId Varchar(100) test10001 供应商产品编号:由供应商自行保证每个操作的产品都存在这个值,且该值在该供应商所有产品下无重复。
groupNum Varchar(100) “0” 支持供应商一个产品id对应多个团的情况,如不传该字段,表明只支持单个团
trafficGo INTEGER 1 往交通: 0:往--,1:飞机,2:火车软卧,3:火车硬卧,4:火车软座,5:火车硬座,6:汽车,7:邮轮,8:火车,9:动车组,10:游船,11:高铁二等座,12:高铁一等座,13:高铁商务座,14:自行安排
trafficBack INTEGER 1 返交通: 0:返--,1:飞机,2:火车软卧,3:火车硬卧,4:火车软座,5:火车硬座,6:汽车,7:邮轮,8:火车,9:动车组,10:游船,11:高铁二等座,12:高铁一等座,13:高铁商务座,14:自行安排
dayNum INTEGER 3 天数
nightNum INTEGER 2 晚数
scheduleRemark Varchar(3096) 行程备注
scheduleCharacteristic Varchar(40) 行程特色
scheduleContent ScheduleContent[] 行程内容
aircraftSeatsDeposit INTEGER 0 机位定金 元/人

入参示例

{
	"agencyProductId":"test10001",
	"groupNum":"",
	"trafficGo":1,
	"trafficBack":1,
	"dayNum":3,
	"nightNum":2,
	"scheduleRemark":"",
	"scheduleCharacteristic":"",
	"scheduleContent":[{
		"day":1,
		"title":"title",
		"itineraryList":[{
			"sort":1,
			"itineraryTime":"行程时间",
			"itineraryDesc":"行程描述",
			"itineraryContent":[{
				"littleTitle":"排序标记",
				"mainBody":"行程时间"
			}],
			"itineraryDest":[]
		}],
		"desc":"描述",
		"mealInfo":{
			"morning":"早餐",
			"noon":"午餐",
			"night":"晚餐"
		},
		"liveInfo":"住宿信息",
		"shopRecommend":[{
			"shopTitle":"名称",
			"shopProduct":"主营",
			"shopStayTime":"停留时间",
			"shopProductInfo":"说明"
		}]
	}],
	"aircraftSeatsDeposit":0
}							

接口出参

名称 类型 必填 示例值 描述
success boolean true 是否执行成功
returnCode int 000000 返回码
errorMsg Varchar(256) 执行成功 执行结果

出参示例

{
	"success":true,
	"returnCode":000000,
	"errorMsg":"执行成功"
}							

4、自定义数据类型说明

ScheduleContent(行程内容信息)

名称 类型 必填 示例值 描述
day int 行程第几天
title Varchar(256) 行程标题
itineraryList ItineraryDetail[] 行程段
desc Varchar(1024) 描述
mealInfo MealInfo 用餐信息
liveInfo Varchar(1024) 住宿信息
shopRecommend ShopRecommend[] 购物店信息

ItineraryDetail(行程段信息)

名称 类型 必填 示例值 描述
sort int 排序标记
itineraryTime Varchar(64) 行程时间
itineraryDesc Varchar(64) 行程断描述
itineraryContent ItineraryContent[] 小标题和正文
itineraryDest Varchar[] 行程目的地,用来匹配图片,多个只取前两个 每个匹配两张图片

MealInfo(用餐信息)

名称 类型 必填 示例值 描述
morning Varchar(128) 早餐信息
noon Varchar(128) 午餐信息
night Varchar(128) 晚餐信息

ShopRecommend(购物店推荐信息)

名称 类型 必填 示例值 描述
shopTitle Varchar(256) 名称
shopProduct Varchar(256) 主营
shopStayTime Varchar(256) 停留时间
shopProductInfo Varchar(256) 说明

ItineraryContent(行程段描述)

名称 类型 必填 示例值 描述
littleTitle Varchar(128) 小标题
mainBody Varchar(5000) 行程时间

5、常见问题

API返回码 问题描述 解决方案 备注
231008 入参异常 检查入参格式是否正确及必填参数是否传入
dayNum、nightNum没有根据入参更新 dayNum 、nightNum两个字段是根据scheduleContent字段中的行程数据计算出的

接口说明


此接口由api提供给供应商,用于针对某一产品新增/修改该产品的行程信息。

1、调用方法

Method:HTTP-POST

Url:{API_Url}/1.2/schedule/addOrModify

Data_Type:json

2、系统参数

API调用参数分为系统参数和业务参数,请求时,系统参数是必传的,否则无法成功请求,业务参数由具体业务接口定义。

入参格式

系统参数
名称 类型 必填 描述
apiKey String 分配给供应商的唯一身份标识
sign String 请求签名,生成规则参见签名机制
timestamp String 时间戳,参见时间戳

3、业务参数

接口入参

名称 类型 必填 示例值 描述
agencyProductId Varchar(100) test10001 供应商产品编号:由供应商自行保证每个操作的产品都存在这个值,且该值在该供应商所有产品下无重复。
scheduleBriefing ScheduleBriefing 行程概述
scheduleDetail ScheduleDetail 行程详情

入参示例

{
  "agencyProductId": "8490513355",
  "scheduleBriefing": {
    "trafficGo": 1,
    "trafficBack": 1,
    "dayNum": 3,
    "nightNum": 2,
    "scheduleRemark": "123",
    "scheduleCharacteristic": "123",
    "aircraftSeatsDeposit": 12132,
    "includeVisaFlag": 1,
    "visaCost": 12
  },
  "scheduleDetail": {
    "data": {
      "content": "描述信息",
      "data": [
        {
          "day": 1,
          "traffic": {
            "from": "南京",
            "fromId": 1602,
            "toList": [
              {
                "means": "火车",
                "meansType": 0,
                "to": "南京",
                "toId": 1602
              }
            ]
          },
          "moduleList": [
            {
              "moduleType": "scenic",
              "moduleTypeValue": 1,
              "moment": "00:00",
              "relative": 1,
              "remark": "",
              "scenicList": [
                {
                  "content": "景点内容1",
                  "hour": 0,
                  "id": 39935,
                  "min": 0,
                  "picture": [
                    {
                      "title": "图片标题1",
                      "url": "http://123.com"
                    }
                  ],
                  "times": 10,
                  "title": "景点标题1"
                }
              ]
            },
            {
              "description": "11111111111111",
              "hotelList": [
                {
                  "hotelId": 0,
                  "id": 2824312,
                  "origin": 1,
                  "room": [
                    {
                      "title": "房型标题",
                      "description": "房型描述",
                      "picture": [
                        {
                          "title": "酒店房型图片标题",
                          "url": "http://room123.com"
                        }
                      ]
                    }
                  ],
                  "source": 0,
                  "title": "酒店标题"
                }
              ],
              "moduleType": "hotel",
              "moduleTypeValue": 2,
              "moment": "00:00",
              "picture": [
                {
                  "title": "图片标题1",
                  "url": "http://123.com"
                }
              ],
              "relative": 0,
              "remark": ""
            },
            {
              "description": "11111111",
              "moduleType": "traffic",
              "moduleTypeValue": 3,
              "moment": "00:00",
              "picture": [
                {
                  "title": "图片标题3",
                  "url": "http://345.com"
                }
              ],
              "relative": 0,
              "remark": "",
              "traffic": {
                "from": "南京",
                "fromId": 1602,
                "hour": 0,
                "means": "",
                "meansType": 0,
                "min": 0,
                "times": 4,
                "to": "",
                "toId": 0
              }
            },
            {
              "description": "1111",
              "food": {
                "hasList": [
                  {
                    "has": 0,
                    "type": "breakfast",
                    "title": "早餐"
                  },
                  {
                    "has": 0,
                    "type": "lunch",
                    "title": "午餐"
                  },
                  {
                    "has": 0,
                    "type": "dinner",
                    "title": "晚餐"
                  }
                ],
                "hour": 0,
                "id": 0,
                "min": 0,
                "times": 5,
                "title": "2"
              },
              "moduleType": "food",
              "moduleTypeValue": 4,
              "moment": "00:00",
              "picture": [
                {
                  "url": "http://456.com",
                  "title": "图片标题"
                }
              ],
              "relative": 0,
              "remark": ""
            },
            {
              "description": "购物描述",
              "moduleType": "shopping",
              "moduleTypeValue": 5,
              "moment": "00:00",
              "picture": [
                
              ],
              "relative": 0,
              "remark": "",
              "shopList": [
                {
                  "hour": 0,
                  "id": 1880093,
                  "instruction": "1",
                  "min": 0,
                  "product": "1",
                  "times": 11,
                  "title": "1Shamelin Shopping Mall"
                }
              ]
            },
            {
              "activity": {
                "hour": 0,
                "min": 0,
                "times": 111,
                "title": "1"
              },
              "description": "1111",
              "moduleType": "activity",
              "moduleTypeValue": 6,
              "moment": "00:00",
              "picture": [
                {
                  "url": "http://123.com",
                  "title": "图片描述"
                }
              ],
              "relative": 0,
              "remark": ""
            },
            {
              "moduleType": "reminder",
              "moduleTypeValue": 7,
              "relative": 0,
              "remind": {
                "content": "温馨提示内容",
                "type": "温馨提示标题"
              }
            }
          ]
        }
      ]
    }
  }
}							

接口出参

名称 类型 必填 示例值 描述
success boolean true 是否执行成功
returnCode int 000000 返回码
errorMsg Varchar(256) 执行成功 执行结果

出参示例

{
	"success":true,
	"returnCode":000000,
	"errorMsg":"执行成功"
}							

4、自定义数据类型说明

ScheduleBriefing(行程概述)

名称 类型 必填 示例值 描述
trafficGo INTEGER 1 往交通: 0:往--,1:飞机,2:火车软卧,3:火车硬卧,4:火车软座,5:火车硬座,6:汽车,7:邮轮,8:火车,9:动车组,10:游船,11:高铁二等座,12:高铁一等座,13:高铁商务座,14:自行安排
trafficBack INTEGER 1 返交通: 0:返--,1:飞机,2:火车软卧,3:火车硬卧,4:火车软座,5:火车硬座,6:汽车,7:邮轮,8:火车,9:动车组,10:游船,11:高铁二等座,12:高铁一等座,13:高铁商务座,14:自行安排
dayNum INTEGER 3 天数
nightNum INTEGER 2 晚数
scheduleRemark Varchar(3096) 行程备注
scheduleCharacteristic Varchar(40) 行程特色
aircraftSeatsDeposit INTEGER 0 机位定金 元/人

ScheduleDetail(行程详情)

名称 类型 必填 示例值 描述
type int 1 行程类型:1-时间线,2-资源
data FirstData

FirstData(行程信息)

名称 类型 必填 示例值 描述
content String 行程附注
data SecondData 行程详情

SecondData(行程详情)

名称 类型 必填 示例值 描述
day int 第几天 资源类不存在天数 为0
traffic Traffic 交通信息 资源类不存在每天的行程交通信息 为空
moduleList ModuleList 资源模块列表

Traffic(交通信息)

名称 类型 必填 示例值 描述
fromId int 起点 poi id,自行输入时,id为0,(必填)
from string 起点(means不为‘无’时,必填)
toList TrafficToList[] 目的地信息

TrafficToList(目的地信息)

名称 类型 必填 示例值 描述
toId int 目的地 poi id,自行输入时,id为0(means不为‘无’时,必填
to string 到哪里(means不为‘无’时,必填)
means String 水飞 出行方式:无,水飞,内飞,飞机,快艇,轮船,汽车,火车,自行安排
meansType string 2 方式 1-无,2-水飞,3-内飞,4-飞机,5-快艇,6-轮船,7-汽车,8-火车,9-自行安排

ModuleList(资源模块列表)

名称 类型 必填 示例值 描述
moduleType string 景点 资源模块名 scenic-景点 hotel-酒店 traffic-小交通 food-餐饮 shopping-购物 activity-活动 reminder-提醒 ship-游轮
moduleTypeValue int 资源模块类型 1-景点,2-酒店 3-小交通,4-餐饮,5-购物,6-活动,7-提醒,9-游轮//对应模块类型不同 对应某些字段才会有值
period String 上午 行程规划枚举值:上午、下午、晚上、全天
moment string 13:00 时间点 ,新数据里的“上午下午”以及“00:00”时间点统一的放到moment字段内
remark String "备注信息" 备注
description string "描述信息" 描述信息
picture ModulePicture[] 图片信息
relative int 模块类型为景点时才填值(景点---是否为并关系 0-或,1-并)
scenicList ModuleScenicList[] 模块类型为景点时才填值,对应景点模块下景点列表
hotelList ModuleHotelList[] 模块类型为酒店时才填值,对应酒店列表
traffic ModuleTraffic[] 模块类型为交通时才填值,对应交通信息
food ModuleFood[] 模块类型为餐饮时才填值,对应餐饮信息
shopList ModuleShopList[] 模块类型为购物时才填值,对应购物信息
activity ModuleActivity[] 模块类型为活动时才填值,对应活动信息
remind ModuleRemind[] 模块类型为温馨提示时才填值,对应活温馨提示信息

ModuleScenicList(景点模块类型)

名称 类型 必填 示例值 描述
id int 1213 景点 poi id
title String "标题" 标题
hour int 1 游玩时间(小时)
min int 30 游玩时间(分钟)
content String "游玩正文" 正文
picture ModulePicture[] 游玩图片信息

ModuleHotelList(酒店资源模块)

名称 类型 必填 示例值 描述
id int 123 酒店POI id,自行输入时,id为0(必填)
hotelId int 123 酒店id,自行输入时,id为0(必填)
title string "http://www.123.com" 酒店名
source int 1 是否属于国内酒店 0否1是
starName int 1 酒店星级,1,2,3,4,5
room ModuleHotelRoomList[] 房型信息

ModuleHotelRoomList(酒店资源模块下房型)

名称 类型 必填 示例值 描述
title String "房型标题" 房型标题
description String "房型描述" 房型描述
picture ModulePicture[] 房型照片

ModuleTraffic(交通资源模块)

名称 类型 必填 示例值 描述
from String "南京" 出发地
fromId int 123 出发地poi id
means String 水飞 方式 无,水飞,内飞,飞机,快艇,轮船,汽车,火车,自行安排
meansType int 水飞 方式 1-无,2-水飞,3-内飞,4-飞机,5-快艇,6-轮船,7-汽车,8-火车,9-自行安排
to String "北京" 目的地
toId int 123 目的地poi id
hour int 2 交通经历时间(小时)
min int 30 交通经历时间(分钟)

ModuleFood(餐饮资源模块)

名称 类型 必填 示例值 描述
hasList ModuleFoodHasList[] 早中晚餐饮列表
id int 123 餐饮poi id
title String "餐饮标题" 餐饮标题
hour int 0 用餐时间(小时)
min int 123 用餐时间(分钟)

ModuleFoodHasList(餐饮资源模块下早中晚餐饮列表)

名称 类型 必填 示例值 描述
type String breakfast breakfast 早餐 lunch 中餐 dinner 晚餐
has int 0 是否包含 0否 1是

ModuleShopList(购物资源模块)

名称 类型 必填 示例值 描述
id int 123 购物点poi(必填)
title String "海鲜店" 购物点名称
product String "虾子等" 营业产品
times int 1 停留时间
instruction String "购物说明" 说明

ModuleActivity(活动资源模块)

名称 类型 必填 示例值 描述
title String "活动标题" 活动标题
hour int 1 活动时间(小时)
min int 2 活动时间(分钟)

ModuleShopList(温馨提示资源模块)

名称 类型 必填 示例值 描述
content String "提醒内容" 提醒内容
type String "温馨提示,当日概览" 温馨提示,当日概览

ModulePicture(资源模块图片信息)

名称 类型 必填 示例值 描述
url String "http://www.123.com" 图片url
title String "照片描述" 照片描述

5、常见问题

API返回码 问题描述 解决方案 备注
231008 入参异常 检查入参格式是否正确及必填参数是否传入
dayNum、nightNum没有根据入参更新 dayNum 、nightNum两个字段是根据scheduleContent字段中的行程数据计算出的

接口说明


此接口由api提供给供应商,用于针对某一产品新增该产品的升级方案。

1、调用方法

Method:HTTP-POST

Url:{API_Url}/1.1/scheme/add

Data_Type:json

2、系统参数

API调用参数分为系统参数和业务参数,请求时,系统参数是必传的,否则无法成功请求,业务参数由具体业务接口定义。

入参格式

系统参数
名称 类型 必填 描述
apiKey String 分配给供应商的唯一身份标识
sign String 请求签名,生成规则参见签名机制
timestamp String 时间戳,参见时间戳

3、业务参数

接口入参

名称 类型 必填 示例值 描述
agencyProductId Varchar(100) test10001 供应商产品编号:由供应商自行保证每个操作的产品都存在这个值,且该值在该供应商所有产品下无重复。
groupNum Varchar(100) “0” 支持供应商一个产品id对应多个团的情况,如不传该字段,表明只支持单个团
schemeInfo SchemeInfo[] 要添加的方案信息

入参示例

{
	"agencyProductId":"test10001",
	"groupNum":"",
	"schemeInfo":[{
		"schemeId":"scheme0001",
		"schemeRemark":"方案说明",
		"liveFlag":1,
		"mealFlag":1,
		"trafficFlag":1,
		"selfFlag":1,
		"otherFlag":1,
		"addBedFlag":1,
		"kingsizeBedFlag":1,
		"addBedNotes":"加床服务备注"
	}]
}							

接口出参

名称 类型 必填 示例值 描述
success boolean true 是否执行成功
returnCode int 000000 返回码
errorMsg Varchar(256) 执行成功 执行结果
data SchemeResultInfo[] 执行结果

出参示例

{
	"success":true,
	"returnCode":000000,
	"errorMsg":"执行成功",
	"data":[{
		"schemeId":"scheme0001",
		"success":true,
		"errorCode":000000,
		"result":""
	}]
}							

4、自定义数据类型说明

SchemeInfo(升级方案详情信息)

名称 类型 必填 示例值 描述
schemeId Varchar(128) Sheme0001 供应商方案编号:由供应商自行保证每个操作的产品都存在这个值,且该值在该产品下无重复。
schemeRemark Varchar(225) "方案说明" 升级方案的备注说明
liveFlag int 1 是否升级住宿:0=>不升级;1=>升级
mealFlag int 1 是否升级用餐:0=>不升级;1=>升级
trafficFlag int 1 是否升级交通:0=>不升级;1=>升级
selfFlag int 1 是否升级活动推荐:0=>不升级;1=>升级
otherFlag int 1 是否升级其他:0=>不升级;1=>升级
addBedFlag int 1 是否提供三人间或加床服务:0=>不提供;1=>提供
kingsizeBedFlag int 1 是否提供大床房:0=>不提供;1=>提供
addBedNotes Varchar(225) "加床服务备注" 加床服务的备注说明

SchemeResultInfo(升级方案返回结果)

名称 类型 必填 示例值 描述
schemeId Varchar(128) Sheme0001 供应商方案编号,多个以逗号分割
success boolean true 是否执行成功
errorCode int 00010 错误码
result Varchar(1024) 错误描述

5、常见问题

接口说明


此接口由api提供给供应商,用于针对某一产品修改该产品的升级方案。

1、调用方法

Method:HTTP-POST

Url:{API_Url}/1.1/scheme/modify

Data_Type:json

2、系统参数

API调用参数分为系统参数和业务参数,请求时,系统参数是必传的,否则无法成功请求,业务参数由具体业务接口定义。

入参格式

系统参数
名称 类型 必填 描述
apiKey String 分配给供应商的唯一身份标识
sign String 请求签名,生成规则参见签名机制
timestamp String 时间戳,参见时间戳

3、业务参数

接口入参

名称 类型 必填 示例值 描述
agencyProductId Varchar(100) test10001 供应商产品编号:由供应商自行保证每个操作的产品都存在这个值,且该值在该供应商所有产品下无重复。
groupNum Varchar(100) “0” 支持供应商一个产品id对应多个团的情况,如不传该字段,表明只支持单个团
schemeInfo SchemeInfo[] 要添加的方案信息

入参示例

{
	"agencyProductId":"test10001",
	"groupNum":"",
	"schemeInfo":[{
		"schemeId":"scheme0001",
		"schemeRemark":"方案说明",
		"liveFlag":1,
		"mealFlag":1,
		"trafficFlag":1,
		"selfFlag":1,
		"otherFlag":1,
		"addBedFlag":1,
		"kingsizeBedFlag":1,
		"addBedNotes":"加床服务备注"
	}]
}							

接口出参

名称 类型 必填 示例值 描述
success boolean true 是否执行成功
returnCode int 000000 返回码
errorMsg Varchar(256) 执行成功 执行结果
data SchemeResultInfo[] 执行结果

出参示例

{
	"success":true,
	"code":000000,
	"msg":"执行成功",
	"data":[{
		"schemeId":"scheme0001",
		"success":true,
		"errorCode":000000,
		"result":""
	}]
}							

4、自定义数据类型说明

SchemeInfo(升级方案详情信息)

名称 类型 必填 示例值 描述
schemeId Varchar(128) Sheme0001 供应商方案编号:由供应商自行保证每个操作的产品都存在这个值,且该值在该产品下无重复。
schemeRemark Varchar(225) "方案说明" 升级方案的备注说明
liveFlag int 1 是否升级住宿:0=>不升级;1=>升级
mealFlag int 1 是否升级用餐:0=>不升级;1=>升级
trafficFlag int 1 是否升级交通:0=>不升级;1=>升级
selfFlag int 1 是否升级活动推荐:0=>不升级;1=>升级
otherFlag int 1 是否升级其他:0=>不升级;1=>升级
addBedFlag int 1 是否提供三人间或加床服务:0=>不提供;1=>提供
kingsizeBedFlag int 1 是否提供大床房:0=>不提供;1=>提供
addBedNotes Varchar(225) "加床服务备注" 加床服务的备注说明

SchemeResultInfo(升级方案返回结果)

名称 类型 必填 示例值 描述
schemeId Varchar(128) Sheme0001 供应商方案编号,多个以逗号分割
success boolean true 是否执行成功
errorCode int 00010 错误码
result Varchar(1024) 错误描述

5、常见问题

接口说明


此接口由api提供给供应商,用于针对某一产品新增/修改其团期报价。

1、调用方法

Method:HTTP-POST

Url:{API_Url}/1.1/datePrice/addOrModify

Data_Type:json

2、系统参数

API调用参数分为系统参数和业务参数,请求时,系统参数是必传的,否则无法成功请求,业务参数由具体业务接口定义。

入参格式

系统参数
名称 类型 必填 描述
apiKey String 分配给供应商的唯一身份标识
sign String 请求签名,生成规则参见签名机制
timestamp String 时间戳,参见时间戳

3、业务参数

接口入参

名称 类型 必填 示例值 描述
agencyProductId Varchar(100) test10001 供应商产品编号:由供应商自行保证每个操作的产品都存在这个值,且该值在该供应商所有产品下无重复。
groupNum Varchar(100) “0” 支持供应商一个产品id对应多个团的情况,如不传该字段,表明只支持单个团
planInfo PlanInfo[] 要新增/修改的信息

入参示例

{
	"agencyProductId":"test10001",
	"groupNum":"",
	"planInfo":[{
			"planDateStr":"2015-07-18",
			"datePriceList":[{
				"schemeId":"scheme0001",
				"scheduleId":"schedule",
				"agencyBudget":1000,
				"agencyBudgetChild":500,
				"excludeChild":1,
				"roomAddBudget":100,
				"roomGapFlag":1,
				"aheaddate":4,
				"deadlinedate":3,
				"deadlinehour":18,
				"promoFlag":1,
				"setGroupFlag":1,
				"stuffEndDate":5,
				"applyFlag":1,
				"seatDeposit":500
		}]
	}]	
}							

接口出参

名称 类型 必填 示例值 描述
success boolean true 是否执行成功
returnCode int 000000 返回码
errorMsg Varchar(256) 执行成功 执行结果

出参示例

{
	"success":true,
	"returnCode":000000,
	"errorMsg":"执行成功"
}							

4、自定义数据类型说明

DatePriceDetail(团期价格信息)

名称 类型 必填 示例值 描述
schemeId Varchar(64) Sheme0001 为空时表示对基础方案操作,否则,操作相应升级方案
scheduleId Varchar(256) schedule 存在多行程,供应商维护的行程编号,为空表示默认行程
agencyBudget int 1000 成人同行价
agencyBudgetChild int 500 儿童同行价。当不支持儿童出行时,此值无效
excludeChild int 1 是否支持儿童出行:0=>不支持;1=>支持
roomAddBudget int 100 全程单房差
roomGapFlag int 1 是否预付全程单房差:0=>否;1=>是
aheadDate int 4 报名开始提前天数
deadlineDate int 3 报名截止提前-天
deadlineHour int 18 报名截止提前-时
promoFlag int 1 是否促销:0=>不是促销;1=>促销
setGroupFlag int 1 是否铁定成团:0=>不是;1=>是
stuffEndDate int 5 材料提交时间截止,取值为大于0,小于100
applyFlag Integer 1 此行程是否在该团期售卖,0:不售卖,1:售卖
seatDeposit BigDecimal 200 机位定金

4、自定义数据类型说明

PlanInfo(团期信息)

名称 类型 必填 示例值 描述
planDateStr Varchar(10) 2015-07-18 团期:最大团期时间为2年内,请推送2年以内的团期
datePriceList DatePriceDetail[] 相应价格方案的集合

5、常见问题

API返回码 问题描述 解决方案 备注
231008 入参异常 检查入参格式是否正确及必填参数是否传入
231008 入参异常 检查deadlineDate、deadlineHour、stuffEndDate,这三个字段为必填并且都要大于0
团期默认状态 团期推送过来,默认是打开团期状态

接口说明


此接口由api提供给供应商,用于针对某一产品方案打开某个团期。

1、调用方法

Method:HTTP-POST

Url:{API_Url}/1.1/plan/open

Data_Type:json

2、系统参数

API调用参数分为系统参数和业务参数,请求时,系统参数是必传的,否则无法成功请求,业务参数由具体业务接口定义。

入参格式

系统参数
名称 类型 必填 描述
apiKey String 分配给供应商的唯一身份标识
sign String 请求签名,生成规则参见签名机制
timestamp String 时间戳,参见时间戳

3、业务参数

接口入参

名称 类型 必填 示例值 描述
agencyProductId Varchar(100) test10001 供应商产品编号:由供应商自行保证每个操作的产品都存在这个值,且该值在该供应商所有产品下无重复。
groupNum Varchar(100) “0” 支持供应商一个产品id对应多个团的情况,如不传该字段,表明只支持单个团
schemeId Varchar(64) Sheme0001 为空时表示对基础操作,否则,操作相应升级方案
planDateStr Varchar(10) 2015-05-28 只支持单条

入参示例

{
	"agencyProductId":"test10001",
	"groupNum":"",
	"schemeId":"scheme0001",
	"planDateStr":"2015-05-28"
}							

接口出参

名称 类型 必填 示例值 描述
success boolean true 是否执行成功
returnCode int 000000 返回码
errorMsg Varchar(256) 执行成功 执行结果

出参示例

{
	"success":true,
	"returnCode":000000,
	"errorMsg":"执行成功"
}							

4、常见问题

API返回码 问题描述 解决方案 备注
231008 入参异常 检查入参格式是否正确及必填参数是否传入
231099 未知异常 打开、关闭操作必须是在该团期已审核通过的情况下执行

接口说明


此接口由api提供给供应商,用于针对某一产品方案关闭某个团期。

1、调用方法

Method:HTTP-POST

Url:{API_Url}/1.1/plan/close

Data_Type:json

2、系统参数

API调用参数分为系统参数和业务参数,请求时,系统参数是必传的,否则无法成功请求,业务参数由具体业务接口定义。

入参格式

系统参数
名称 类型 必填 描述
apiKey String 分配给供应商的唯一身份标识
sign String 请求签名,生成规则参见签名机制
timestamp String 时间戳,参见时间戳

3、业务参数

接口入参

名称 类型 必填 示例值 描述
agencyProductId Varchar(100) test10001 供应商产品编号:由供应商自行保证每个操作的产品都存在这个值,且该值在该供应商所有产品下无重复。
groupNum Varchar(100) “0” 支持供应商一个产品id对应多个团的情况,如不传该字段,表明只支持单个团
schemeId Varchar(64) Sheme0001 为空时表示对基础操作,否则,操作相应升级方案
planDateStr Varchar(10) 2015-05-28 只支持单条
closePlanRemark ClosePlanRemark

入参示例

{
	"agencyProductId":"test10001",
	"groupNum":"",
	"schemeId":"scheme0001",
	"planDateStr":"2015-05-28",
	"closePlanRemark":{
		"clearStock":1,
		"clearStockType":1,
		"reason":0,
		"remark":"关团说明"
	}
}							

接口出参

名称 类型 必填 示例值 描述
success boolean true 是否执行成功
returnCode int 000000 返回码
errorMsg Varchar(256) 执行成功 执行结果

出参示例

{
	"success":true,
	"returnCode":000000,
	"errorMsg":"执行成功"
}							

4、自定义数据类型说明

ClosePlanRemark(关团说明信息)

名称 类型 必填 示例值 描述
clearStock int 1 是否同时清库,0=>不清库;1=>清库
clearStockType int 1 清除库存类型:0=>不清库;1=>清除独享库存;2=>清除共享库存
reason int 0 关团原因。否则:1=>满位;2=>不成团;0=>其他
remark Varchar(1024) "关团说明" 关团说明

5、常见问题

API返回码 问题描述 解决方案 备注
231008 入参异常 检查入参格式是否正确及必填参数是否传入
231099 未知异常 打开、关闭操作必须是在该团期已审核通过的情况下执行

接口说明


此接口已弃用,请于2017-04-01之前迁移至新增库存、修改库存、查看库存。

1、调用方法

Method:HTTP-POST

Url:{API_Url}/1.1/stock/modify

Data_Type:json

2、系统参数

API调用参数分为系统参数和业务参数,请求时,系统参数是必传的,否则无法成功请求,业务参数由具体业务接口定义。

入参格式

系统参数
名称 类型 必填 描述
apiKey String 分配给供应商的唯一身份标识
sign String 请求签名,生成规则参见签名机制
timestamp String 时间戳,参见时间戳

3、业务参数

接口入参

名称 类型 必填 示例值 描述
agencyProductId Varchar(100) test10001 供应商产品编号:由供应商自行保证每个操作的产品都存在这个值,且该值在该供应商所有产品下无重复。
groupNum Varchar(100) “0” 支持供应商一个产品id对应多个团的情况,如不传该字段,表明只支持单个团
schemeId Varchar(64) Sheme0001 为空时表示对基础操作,否则,操作相应升级方案
planDateStr Varchar(10) 2015-05-28 单个团期,暂不支持批量
stockNum int 10 库存修改后的余位数
autoClearDay int 1 库存自动清位时间-天
clearPosHour int 1 库存自动清位时间-时

入参示例

{
	"agencyProductId":"test10001",
	"groupNum":"",
	"schemeId":"scheme0001",
	"planDateStr":"2015-05-28",
	"stockNum":10,
	"autoClearDay":1,
	"clearPosHour":1
}							

接口出参

名称 类型 必填 示例值 描述
success boolean true 是否执行成功
returnCode int 000000 返回码
errorMsg Varchar(256) 执行成功 执行结果

出参示例

{
	"success":true,
	"returnCode ":000000,
	"errorMsg ":"执行成功"
}							

4、常见问题

API返回码 问题描述 解决方案 备注
231008 入参异常 检查入参格式是否正确及必填参数是否传入
231099 未知异常 打包产品存在库存,地接+机票类型没有库存概念,不能对此类型进行库存操作
231099 修改库存失败 库存修改操作必须在产品及团期都已审核通过的情况下执行,联系API技术支持人员审核产品及团期

接口说明


此接口用于供应商向途牛增加四级库存

1、调用方法

Method:HTTP-POST

Url:/gentuan/stock/1.1/add/fourthlevelstock

Data_Type:json

2、系统参数

API调用参数分为系统参数和业务参数,请求时,系统参数是必传的,否则无法成功请求,业务参数由具体业务接口定义。

入参格式

系统参数
名称 类型 必填 描述
apiKey String 分配给供应商的唯一身份标识
sign String 请求签名,生成规则参见签名机制
timestamp String 时间戳,参见时间戳

3、业务参数

接口入参

名称 类型 必填 示例值 描述
agencyProductId String test10001 供应商产品编号:由供应商自行保证每个操作的产品都存在这个值,且该值在该供应商所有产品下无重复。
schemeId String Sheme0001 为空时表示对基础操作,否则,操作相应升级方案
stockAdd StockAdd[]

入参示例

{
 "agencyProductId":"test10001",
 "schemeId":"123",
 "stockAdd":
  [
	{
	 "departsDate":"2016-11-28",
	 "stockNum":5
	},
	{
	 "departsDate":"2016-11-29",
	 "stockNum":6
	}
  ]
}
							

接口出参

名称 类型 必填 示例值 描述
success boolean true 是否执行成功
returnCode int 000000 返回码
errorMsg Varchar(256) 执行成功 执行结果

出参示例

{
	"success":true,
	"returnCode ":000000,
	"errorMsg ":"执行成功"
}							

4、自定义数据类型说明

stockAdd

名称 类型 必填 示例值 描述
departsDate Date 10 增加的团期
stockNum int 1 入库数量

5、常见问题

API返回码 问题描述 解决方案 备注
231008 入参异常 检查入参格式是否正确及必填参数是否传入

接口说明


此接口用于供应商查看途牛库存使用状态。

1、调用方法

Method:HTTP-POST

Url:/gentuan/stock/1.1/check/fourthlevelstock

Data_Type:json

2、系统参数

API调用参数分为系统参数和业务参数,请求时,系统参数是必传的,否则无法成功请求,业务参数由具体业务接口定义。

入参格式

系统参数
名称 类型 必填 描述
apiKey String 分配给供应商的唯一身份标识
sign String 请求签名,生成规则参见签名机制
timestamp String 时间戳,参见时间戳

3、业务参数

接口入参

名称 类型 必填 示例值 描述
agencyProductId String test10001 供应商产品编号:由供应商自行保证每个操作的产品都存在这个值,且该值在该供应商所有产品下无重复。
schemeId String Sheme0001 为空时表示对基础操作,否则,操作相应升级方案
stockCheck StockCheck[]

入参示例

{
 "agencyProductId" : "test10001",
 "schemeId":123,
 "stockCheck":
  [{
	"departsDate":"2016-11-28"
   }, {
	"departsDate" : "2016-11-29"
   }
  ]
}
							

接口出参

名称 类型 必填 示例值 描述
success boolean true 是否执行成功
returnCode int 000000 返回码
errorMsg Varchar(256) 执行成功 执行结果
data Data

出参示例

{
	"success":true,
	"returnCode":000000,
	"errorMsg":"执行成功",
	"data":{
		"stockStatus":[
			{
				"departsDate":"2016-11-28",
				"roundId":123,
				"inNumber":5,
				"rssNumber":1,
				"orderOutNum":1,
				"outNumber":2,
				"leftNumber":1
			},{	
				"departsDate":"2016-11-29",
				"roundId":1234,
				"inNumber":10,
				"rssNumber":2,
				"orderOutNum":2,
				"outNumber":4,
				"leftNumber":6
			}
		]
	}
}						

4、自定义数据类型说明

StockCheck

名称 类型 必填 示例值 描述
departsDate Date "2018-08-08" 团期

Data

名称 类型 必填 示例值 描述
stockStatus StockStatus

StockStatus

名称 类型 必填 示例值 描述
departsDate Date "2016-11-28" 团期
roundId int "12345" 批次号
inNumber int 5 入库数量
rssNumber int 1 占位和签约数
outNumber int 1 出库数
leftNumber int 1 库存剩余数

5、常见问题

API返回码 问题描述 解决方案 备注
231008 入参异常 检查入参格式是否正确及必填参数是否传入

接口说明


此接口用于供应商将途牛库存进行出库(默认为清位出库)。

1、调用方法

Method:HTTP-POST

Url:/gentuan/stock/1.1/offline/fourthlevelstock

Data_Type:json

2、系统参数

API调用参数分为系统参数和业务参数,请求时,系统参数是必传的,否则无法成功请求,业务参数由具体业务接口定义。

入参格式

系统参数
名称 类型 必填 描述
apiKey String 分配给供应商的唯一身份标识
sign String 请求签名,生成规则参见签名机制
timestamp String 时间戳,参见时间戳

3、业务参数

接口入参

名称 类型 必填 示例值 描述
agencyProductId String test10001 供应商产品编号:由供应商自行保证每个操作的产品都存在这个值,且该值在该供应商所有产品下无重复。
schemeId String Sheme0001 为空时表示对基础操作,否则,操作相应升级方案
stockClose StockClose[]

入参示例

{
 "agencyProductId" : "test10001",
 "schemeId":"123",
 "stockClose" : 
  [
	{
	 "departsDate" : "2016-11-28",
	 "stockNum" : 5,
	 "roundId":123
	}, {
	 "departsDate" : "2016-11-29",
	 "stockNum" : 6,
	 "roundId":59
	}
  ]
}
							

接口出参

名称 类型 必填 示例值 描述
success boolean true 是否执行成功
returnCode int 000000 返回码
errorMsg Varchar(256) 执行成功 执行结果

出参示例

{
	"success":true,
	"returnCode ":000000,
	"errorMsg ":"执行成功"
}							

4、自定义数据类型说明

StockClose

名称 类型 必填 示例值 描述
departsDate Date "2016-11-28" 团期
stockNum int 1 出库数量

5、常见问题

API返回码 问题描述 解决方案 备注
231008 入参异常 检查入参格式是否正确及必填参数是否传入

接口说明


此接口由api提供给供应商,用于查询产品当前状态。

1、调用方法

Method:HTTP-POST

Url:{API_Url}/1.1/status/query

Data_Type:json

2、系统参数

API调用参数分为系统参数和业务参数,请求时,系统参数是必传的,否则无法成功请求,业务参数由具体业务接口定义。

入参格式

系统参数
名称 类型 必填 描述
apiKey String 分配给供应商的唯一身份标识
sign String 请求签名,生成规则参见签名机制
timestamp String 时间戳,参见时间戳

3、业务参数

接口入参

名称 类型 必填 示例值 描述
productStatusList ProductStatusInfo[] 支持多个查询

入参示例

{
  "productStatusList": [
    {
      "agencyProductId": "5802",
      "groupNum": "12"
    },
    {
      "agencyProductId": "6188",
      "groupNum": "14"
    }
  ]
}							

接口出参

名称 类型 必填 示例值 描述
success boolean true 是否执行成功
returnCode int 000000 返回码
errorMsg Varchar(256) 执行成功 执行结果
data ProductStatusQueryResult[] 执行结果

出参示例

{
	"success":true,
	"returnCode":000000,
	"errorMsg":"执行成功",
	"data":[{
		"agencyProductId":"test10001",
		"groupNum":"",
		"success":true,
		"errorCode":000000,
		"msg":"成功",
		"reviewStatus":0,
		"tuniuOnlineState":1
	},{
		"agencyProductId":"test10002",
		"groupNum":"",
		"success":true,
		"errorCode":000000,
		"msg":"成功",
		"reviewStatus":0,
		"tuniuOnlineState":1
	}]
}							

4、自定义数据类型说明

ProductStatusInfo(产品审核状态查询)

名称 类型 必填 示例值 描述
agencyProductId Varchar(100) "546613" 供应商产品编号
groupNum Varchar(100) "12" 支持供应商一个产品id对应多个团的情况,如不传该字段,表明查供应商产品编号状态

ProductStatusQueryResult(产品状态查询结果)

名称 类型 必填 示例值 描述
agencyProductId Varchar(100) Sheme0001 供应商产品编号
groupNum Varchar(100) “0” 支持供应商一个产品id对应多个团的情况,如不传该字段,表明只支持单个团
success boolean true 是否执行成功
errorCode int 00010 错误码
msg Varchar(1024) 错误描述
reviewStatus Integer 0 审核状态:0:默认,1:待审核,2:审核中,3:审核成功,4审核失败
tuniuOnlineState Integer 0 产品状态:0:默认,1:未上线,2:已上线

5、常见问题

API返回码 问题描述 解决方案 备注
审核的范畴 审核是以产品为单位进行的审核,是个同步接口,无法异步调用供应商的回调地址。返回的是当前产品的审核状态,暂时不能细化到操作。

接口说明


此接口由api提供给供应商,用于供应商查询点评信息,供应商必须实现点评信息反馈接口(限制每天查询一次)。

1、调用方法

Method:HTTP-POST

Url:{API_Url}/1.1/remark/query

Data_Type:json

2、系统参数

API调用参数分为系统参数和业务参数,请求时,系统参数是必传的,否则无法成功请求,业务参数由具体业务接口定义。

入参格式

系统参数
名称 类型 必填 描述
apiKey String 分配给供应商的唯一身份标识
sign String 请求签名,生成规则参见签名机制
timestamp String 时间戳,参见时间戳

3、业务参数

接口入参

名称 类型 必填 示例值 描述
agencyProductId string "10001,10002" 供应商产品编号:由供应商自行保证每个操作的产品都存在这个值,且该值在该供应商所有产品下无重复。
可传单个;可传多个,以逗号分割;可传空,表示查询供应商所有产品的点评信息
remarkTimeStart string “2015-02-09” 点评开始时间。点评开始时间必须小于点评结束时间;时间范围在30天内(包含30)
remarkTimeEnd string “2015-03-02” 点评结束时间。

入参示例

{
	"agencyProductId":"10001,10002",
	"remarkTimeStart":"2015-02-09",	
	"remarkTimeEnd":"2015-03-02"
}							

接口出参

名称 类型 必填 示例值 描述
success boolean true 是否执行成功
returnCode int 000000 返回码
errorMsg string 执行成功 执行结果

出参示例

{
	"success":true,
	"returnCode":000000,
	"errorMsg":"执行成功"
}							

4、常见问题

API返回码 问题描述 解决方案 备注
231008 入参异常 检查入参格式是否正确及必填参数是否传入
231008 入参异常 检查agencyProductId是否输入正确。

接口说明


此接口由供应商提供给api,当产品操作完成后,api通过此接口向供应商推送此次操作的数据结果。如选择对接产品流程接口,此接口需提供。

1、调用方法

Method:HTTP-POST

Url:供应商提供

Data_Type:json

2、系统参数

API调用参数分为系统参数和业务参数,请求时,系统参数是必传的,否则无法成功请求,业务参数由具体业务接口定义。

入参格式

系统参数
名称 类型 必填 描述
apiKey String 分配给供应商的唯一身份标识
sign String 请求签名,生成规则参见签名机制
timestamp String 时间戳,参见时间戳

3、业务参数

接口入参

产品信息管理结果反馈

名称 类型 必填 示例值 描述
agencyProductId Varchar(100) 4333 供应商产品编号
type int 2 2:团期价格通知 3:开团通知 4:修改入库结果通知 5:产品信息 6:行程信息 7:多行程信息 8:点评管理 9:关团通知
groupNum Varchar(100) “0” 支持供应商一个产品id对应多个团的情况,如不传该字段,表明只支持单个团
success boolean true 是否执行成功
sessionId String true 会话标示
code int 000000 返回码
msg Varchar(256) 执行成功 执行结果
data BaseInfoResultDate 执行结果

行程信息结果反馈

名称 类型 必填 示例值 描述
agencyProductId Varchar(100) 4333 供应商产品编号
type int 2 2:团期价格通知 3:开团通知 4:修改入库结果通知 5:产品信息 6:行程信息 7:多行程信息 8:点评管理 9:关团通知
groupNum Varchar(100) “0” 支持供应商一个产品id对应多个团的情况,如不传该字段,表明只支持单个团
success boolean true 是否执行成功
sessionId String true 会话标示
code int 000000 返回码
msg Varchar(256) 执行成功 执行结果
data CommonResult 执行结果

团期信息管理结果反馈

名称 类型 必填 示例值 描述
agencyProductId Varchar(100) 4333 供应商产品编号
type int 2 2:团期价格通知 3:开团通知 4:修改入库结果通知 5:产品信息 6:行程信息 7:多行程信息 8:点评管理 9:关团通知
groupNum Varchar(100) “0” 支持供应商一个产品id对应多个团的情况,如不传该字段,表明只支持单个团
success boolean true 是否执行成功
sessionId String true 会话标示
code int 000000 返回码
msg Varchar(256) 执行成功 执行结果
data DateResultInfo[] 执行结果

打开团期结果反馈

名称 类型 必填 示例值 描述
agencyProductId Varchar(100) 4333 供应商产品编号
type int 3 2:团期价格通知 3:开团通知 4:修改入库结果通知 5:产品信息 6:行程信息 7:多行程信息 8:点评管理 9:关团通知
groupNum Varchar(100) “0” 支持供应商一个产品id对应多个团的情况,如不传该字段,表明只支持单个团
success boolean true 是否执行成功
sessionId String true 会话标示
code int 170000 返回码
msg Varchar(256) 执行成功 执行结果
data DateChangeResult 实际执行结果

关闭团期结果反馈

名称 类型 必填 示例值 描述
agencyProductId Varchar(100) 4333 供应商产品编号
type int 9 2:团期价格通知 3:开团通知 4:修改入库结果通知 5:产品信息 6:行程信息 7:多行程信息 8:点评管理 9:关团通知
groupNum Varchar(100) “0” 支持供应商一个产品id对应多个团的情况,如不传该字段,表明只支持单个团
success boolean true 是否执行成功
sessionId String true 会话标示
code int 170000 返回码
msg Varchar(256) 执行成功 执行结果
data DateChangeResult 实际执行结果

库存操作结果反馈

名称 类型 必填 示例值 描述
agencyProductId Varchar(100) 4333 供应商产品编号
type int 2 2:团期价格通知 3:开团通知 4:修改入库结果通知 5:产品信息 6:行程信息 7:多行程信息 8:点评管理 9:关团通知
groupNum Varchar(100) “0” 支持供应商一个产品id对应多个团的情况,如不传该字段,表明只支持单个团
success boolean true 是否执行成功
sessionId String true 会话标示
code int 170000 返回码
msg Varchar(256) 执行成功 执行结果
data DateChangeResult 实际执行结果

查询点评信息结果反馈

名称 类型 必填 示例值 描述
type int 8 2:团期价格通知 3:开团关团通知 4:修改入库结果通知 5:产品信息 6:行程信息 7:多行程信息 8:点评管理
success boolean true 是否执行成功
code int 000000 返回码
msg string 执行成功 执行结果
data RemarkInfo 实际执行结果

入参示例

行程信息结果反馈

{
	"agencyProductId":"4333",
	"type":6,
	"groupNum":"",
	"success":true,
	"sessionId":"36E91DDA0B6045C3862FD0C811A2B9AE",
	"code":000000
	"msg":"执行成功",
	"data":{
		"success":true,
		"msg":"",
		"errorCode":000000
	}
}							

团期信息管理结果反馈

{
	"agencyProductId":"4333",
	"type":2,
	"groupNum":"",
	"success":true,
	"code":000000
	"msg":"执行成功",
	"data":[{
		"planDateStr":"2015-07-18",
		"planDateList":[{
			"schemeId":"scheme0001",
			"success":true,
			"errorCode":000000,
			"result":""
		}]
	}]
}							

打开团期结果反馈

{
	"agencyProductId":"4333",
	"type":3,
	"groupNum":"",
	"success":true,
	"code":170000
	"msg":"执行成功",
	"data":{
		"schemeId":"scheme0001",
		"planDateStr":"2015-07-20",
		"success":true,
		"errorCode":170000,
		"result":""
		}
}							

关闭团期结果反馈

{
	"agencyProductId":"4333",
	"type":9,
	"groupNum":"",
	"success":true,
	"code":170000
	"msg":"执行成功",
	"data":{
		"schemeId":"scheme0001",
		"planDateStr":"2015-07-20",
		"success":true,
		"errorCode":170000,
		"result":""
		}
}							

库存操作结果反馈

{
	"agencyProductId":"4333",
	"type":4,
	"groupNum":"",
	"success":true,
	"code":170000
	"msg":"执行成功",
	"data":{
		"schemeId":"scheme0001",
		"planDateStr":"2015-07-20",
		"success":true,
		"errorCode":170000,
		"result":""
		}
}							

查询点评信息结果反馈

{
	"type":8,
	"success":true,
	"code":000000
	"msg":"执行成功",
	"data":{
        "count": 2,
        "remarkInfoList": [
            {
                "satisfaction": 94,
                "groupNum": "12",
                "agencyProductId": "4333",
                "productName": "[春节]<曼谷-芭堤雅6日游>武汉直飞 唐人街",
                "remarkTime": "2015-08-01 18:53:15",
                "startTime": "2015-02-09",
                "backTime": "2015-02-11",
                "travelType": 3,
                "compGrade": 3,
                "compText": "设备很新,交通挺方便。",
                "subGradeAndTextInfo": 
                    {
                        "tourGuideGrade": 3,
                        "tourGuideText": "导游服务很不错",
                        "scheduleGrade": 2,
                        "scheduleText": "行程安排比较合理",
                        "foodAndAccommodationGrade": 1,
                        "foodAndAccommodationText": "餐饮住宿不好",
                        "travelGrade": 2,
                        "travelText": "旅行交通一般"
                    }
            },
            {
                "satisfaction": 98,
                "groupNum": "11",
                "agencyProductId": "356",
                "productName": "[春节]<曼谷-芭堤雅6日游>武汉直飞 唐人街",
                "remarkTime": "2015-08-01 18:53:15",
                "startTime": "2015-04-09",
                "backTime": "2015-04-11",
                "travelType": 4,
                "compGrade": 2,
                "compText": "点赞",
                "subGradeAndTextInfo": 
                    {
                        "tourGuideGrade": 2,
                        "tourGuideText": "个人觉得导游服务一般",
                        "scheduleGrade": 3,
                        "scheduleText": "行程安排非常完美",
                        "foodAndAccommodationGrade": 2,
                        "foodAndAccommodationText": "餐饮住宿一般",
                        "travelGrade": 2,
                        "travelText": "旅行交通一般"
                    }
            }
        ]
}	
}							

接口出参

名称 类型 必填 示例值 描述
success boolean true 是否执行成功
errorCode int 000000 返回码
msg Varchar(256) 执行成功 执行结果

出参示例

{
	"success":true,
	"errorCode":000000,
	"msg":"执行成功",
}							

4、自定义数据类型说明

BaseInfoResultDate(基础信息返回结果)

名称 类型 必填 示例值 描述
basicInfoResult CommonResult 基础信息执行结果
recommendInfoResult CommonResult 推荐信息执行结果
importantInfoResult CommonResult 重要信息执行结果
departInfoResult CommonResult 发车信息执行结果
budgetInclueResult CommonResult 费用包含执行结果
budgetExclueResult CommonResult 费用不包含执行结果
specialInfoResult CommonResult 特殊人群执行结果
selfChargeResult CommonResult 活动信息执行结果
attentionReslut CommonResult 预定须知执行结果

CommonResult(通用返回信息)

名称 类型 必填 示例值 描述
success boolean 是否成功
msg Varchar(1024) 详细的错误信息
errorCode Integer 错误码

SchemeResultInfo(升级方案返回结果)

名称 类型 必填 示例值 描述
schemeId Varchar(128) Sheme0001 供应商方案编号,多个以逗号分割
success boolean true 是否执行成功
errorCode int 00010 错误码
result Varchar(1024) 错误描述

DateResultInfo(团期执行结果返回信息)

名称 类型 必填 示例值 描述
planDateStr Varchar(10) 2015-07-18 团期
planDateList PlanDateList[] 执行的团期信息

PlanDateList(单团期执行状态)

名称 类型 必填 示例值 描述
schemeId Varchar(64) Sheme0001 为空时表示对基础方案操作,否则,操作相应升级方案
success boolean true 是否执行成功
errorCode int 00010 错误码
result Varchar(1024) 错误描述

DateChangeResult(开关团/库存操作执行结果反馈)

名称 类型 必填 示例值 描述
schemeId Varchar(64) Sheme0001 为空时表示对基础方案操作,否则,操作相应升级方案
planDateStr Varchar(100) 2015-07-20 团期
success boolean true 是否执行成功
errorCode int 00010 错误码
result Varchar(1024) 错误描述

RemarkInfo(点评信息查询执行结果反馈)

名称 类型 必填 示例值 描述
count int 2 点评数量
remarkInfoList RemarkInfoList[] 点评信息列表

RemarkInfoList(单条点评信息结果)

名称 类型 必填 示例值 描述
satisfaction int 96 整体满意度
groupNum string "12" 支持供应商一个产品id对应多个团的情况,如不传该字段,表明只支持单个团
agencyProductId string "10001" 供应商产品编号
productName string "南京一日游" 途牛产品名称
remarkTime string "2015-08-01 18:53:15" 点评时间
startTime string "2015-08-01" 出游时间
backTime string "2015-09-01" 归来时间
travelType int 3 出游类型
1:"其他"
2:"家庭出游"
3:"情侣/朋友"
4:"独自出游"
5:"代人预订"
12:"度假旅游"
compGrade int 3 综合评分
1,2,3分别对应"不满意,一般,满意"
compText string "整体还是不错的" 整体评价
subGradeAndTextInfo json {
“tourGuideGrade”:3,
“tourGuideText”:”导游很热情”,
“scheduleGrade”:1,
“scheduleText”: “行程不合理”,
“foodAndAccommodationGrade”:2,
“foodAndAccommodationText”:"住的还行",
“travelGrade”:2,
“travelText”:”交通一般”
}
分类评价和分类评分
1,2,3分别对应"不满意,一般,满意",0表示该项未评分;
空字符串表示未作评价

5、常见问题

接口说明


此接口由供应商提供给api,api在存在共享库存占位单/取消占位单信息时,使用此接口推送给供应商相应单据信息。

1、调用方法

Method:HTTP-POST

Url:供应商提供

Data_Type:json

2、系统参数

API调用参数分为系统参数和业务参数,请求时,系统参数是必传的,否则无法成功请求,业务参数由具体业务接口定义。

入参格式

系统参数
名称 类型 必填 描述
apiKey String 分配给供应商的唯一身份标识
sign String 请求签名,生成规则参见签名机制
timestamp String 时间戳,参见时间戳

3、业务参数

接口入参

名称 类型 必填 示例值 描述
tuniuSerialId string “1234” 途牛订单序列号,此订单号为途牛系统对供应商的订单号,是双方系统交互的凭据。占位、取消占位、确认均基于此订单号,由途牛系统保证唯一性。
tuniuOrderId string “6122544” 途牛订单号,此订单号为客人在途牛网站下单的订单号。网站用户订单可能会分成多个与供应商交互的订单,即此字段与tuniuSerialId是一对多的关系。
type int 0 0:新增占位信息;
1:修改占位信息(废弃)
2:取消占位信息
agencyProductId string “50000” 供应商产品编号
groupNum Varchar(100) “0” 支持供应商一个产品id对应多个团的情况,如不传该字段,表明只支持单个团
date date “2014-12-12“ 出游日期
scheme string “scheme1” 出游方案,默认为基础方案
adultNum int 10 订单成人数
childNum int 10 订单儿童数,如有儿童则必传
babyNum int 0 订单婴儿数,有则传
costCurrencyType int 8 价格币种 默认人民币 支持:1:欧元 2:美元 3:港币 4:新币 5:日元 6:韩元 7:加元 8:人民币 9:泰铢 10:英镑 11:澳元 12:马币 13:斐济元 14:瑞士法郎 15:澳门元
adultPrice BigDecimal 1000 成人成本价
childPrice BigDecimal 1000 儿童成本价,如有儿童则必传
babyPrice BigDecimal 0 婴儿成本价,有则传
roomAddNum int 0 单房差数
roomAddPrice BigDecimal 599 单房差价格
stockNum int 0 使用的途牛控位库存数量

入参示例

{
	"tuniuSerialId":"1234",
	"tuniuOrderId":"6122544",
	"type":0,
	"agencyProductId":"50000",
	"groupNum":"",
	"date":"2014-12-12",
	"scheme":"scheme1",
	"adultNum":10,
	"childNum":10,
	"babyNum":0,
	"costCurrencyType":8,
	"adultPrice":1000.00,
	"childPrice":1000.00,
	"babyPrice":0.00,
	"roomAddNum":0,
	"roomAddPrice":599.00,
	"stockNum":0
}							

接口出参

名称 类型 必填 示例值 描述
success string "true" 接口调用结果,"true"为成功;"false"为失败
errorCode Int 895000 错误代码
msg string ““ 错误信息
data json ““

data中需要包含

名称 类型 必填 示例值 描述
tuniuSerialId string "200012" 途牛订单序列号
tuniuOrderId string “6122544” 途牛订单号
reserveNum int 10 占位数量
reserveTime datetime “2014-09-18 14:23:00” 占位保留时间
reserveAdultPrice int 1000 占位成人价
reserveChildPrice int 1000 占位儿童价,如有儿童则必传
reserveRoomAddPrice int 299 占位单房差
costCurrencyType int 2 价格币种 默认人民币 支持:1:欧元 2:美元 3:港币 4:新币 5:日元 6:韩元 7:加元 8:人民币 9:泰铢 10:英镑 11:澳元 12:马币 13:斐济元 14:瑞士法郎 15:澳门元
agencyOrderId string 10000 供应商订单编号
agencyProductId string 50000 供应商产品编号

出参示例

{
	"success":"true",
	"errorCode":895000,
	"msg":"",
	"data":{
		"tuniuSerialId":"200012",
		"tuniuOrderId":"6122544",
		"reserveNum":10,
		"reserveTime":"2014-09-18 14:23:00",
		"reserveAdultPrice":1000,
		"reserveChildPrice":1000,
		"reserveRoomAddPrice":299,
		"costCurrencyType":2,
		"agencyOrderId":"10000",
		"agencyProductId":"50000"
	}
}							

4、常见问题

API返回码 问题描述 解决方案 备注
库存的分类 库存分为共享库存和控位库存
共享库存和切位库存的区别 控位库存即为协议库存,是途牛从供应商处买断的库存,属于途牛的库存,共享库存是供应商的库存。
占位规则 库存中存在控位库存的情况下,占控位库存,当控位库存不足需要调用共享库存占位接口去确认供应商是否有库存满足下单条件,若满足返回占位成功,不满足返回占位失败。
占位币种 占位入参中costCurrencyType币种类型为供应商结算币种,结算按照该币种进行结算,如果与实际结算币种不相符,则返回占位失败。

接口说明


此接口由供应商提供给api,api在存在共享库存确认单信息时,使用此接口推送给供应商相应单据信息。

1、调用方法

Method:HTTP-POST

Url:供应商提供

Data_Type:json

2、系统参数

API调用参数分为系统参数和业务参数,请求时,系统参数是必传的,否则无法成功请求,业务参数由具体业务接口定义。

入参格式

系统参数
名称 类型 必填 描述
apiKey String 分配给供应商的唯一身份标识
sign String 请求签名,生成规则参见签名机制
timestamp String 时间戳,参见时间戳

3、业务参数

接口入参

名称 类型 必填 示例值 描述
tuniuSerialId string “10000” 途牛流水号(同占位字段说明)
tuniuOrderId string “10000” 途牛订单号(同占位字段说明)
agencyProductId string “50000” 供应商产品编号
scheme string “scheme1” 出游方案,默认为基础方案
groupNum Varchar(100) “0” 支持供应商一个产品id对应多个团的情况,如不传该字段,表明只支持单个团
agencyId int 100 供应商编号
agencyName string “partner” 供应商名称
agencyTel string “112233” 供应商电话
agencyFax string “112233” 供应商传真
agencyContact string “张三” 供应商联系人
name string “tuniu” 途牛名称
tel string “111233” 途牛电话
fax string “111233” 途牛传真
contact string “李四” 途牛联系人
productId string “50000” 途牛产品编号
productName string “三日游” 产品名称
totalAdultNum int 10 订单成人数
affirmAdultNum int 8 本确认单成人数
affirmAdultPrice BigDecimal 100.00 确认单成人价格
totalChildNum int 10 订单儿童数
affirmChildNum int 8 本确认单儿童数
affirmChildPrice BigDecimal 50.00 确认单儿童价格
totalBabyNum int 0 订单婴儿数
affirmBabyNum int 0 本确认单婴儿数
affirmBabyPrice BigDecimal 0.00 确认单婴儿价
date date “2014-12-12“ 出游日期
costCurrencyType int 8 价格币种 默认人民币 支持:1:欧元 2:美元 3:港币 4:新币 5:日元 6:韩元 7:加元 8:人民币 9:泰铢 10:英镑 11:澳元 12:马币 13:斐济元 14:瑞士法郎 15:澳门元
settleDetail string “大( 350.00 * 2)” 结算明细
settlePrice BigDecimal 700.00 结算价
touristContact JSONArray {
“contactId”:”27e8559d8c69547627b6beac9e47bba0”,
“contactName”:”张三”,
“contactTel”:”133333”
}
订单联系人信息
tourist JSONArray {
“touristId”:”27e8559d8c69547627b6beac9e47bba0”, “touristName”:”张三”, “englishName”:”zhangsan”, “psptType”:1(证件类型1=身份证、2=护照、3=军官证、4=港澳通行证、6=其它、7=台胞证) “psptId”: “333333”, “birthday”:”1990-01-01”, “sex”:1 (性别0-女、1-男、其它-未知,), “touristTel”:”11212”
}
游客信息
roomAddPrice int 100.00 单房差
roomAddNum int 50 单房差数量
roomAddPriceOption int 0 单房差支付方式0预付;1现付
otherPrice BigDecimal "200" 订单增补项合计
supplyRemark string “增补” 订单增补备注
otherResources string “自理资源” 自理资源信息
schedule string ”第一天” 行程
priceInclude string “费用已含” 费用包含
priceExclude string “自费” 费用不包含
remark string 备注
stockNum int 0 使用的途牛控位库存数量 0:共享库存确认单;其他为控位确认单
boardingLocation String 08:00:00--深大北门天桥下面(往南头方向) 上车地点,格式为上车时间--上车地点

入参示例

{
	"tuniuSerialId":"10000",
	"tuniuOrderId":"10000",
	"agencyProductId":"50000",
	"scheme": "10026"
	"groupNum":"",
	"agencyId":100,
	"agencyName":"partner",
	"agencyTel":"112233",
	"agencyFax":"112233",
	"agencyContact":"张三",
	"name":"tuniu",
	"contact":"李四",
	"productId":"50000",
	"productName":"三日游",
	"totalAdultNum":10,
	"affirmAdultNum":8,
	"affirmAdultPrice":100.00,
	"totalChildNum":10,
	"affirmChildNum":8,
	"affirmChildPrice":50.00,
	"totalBabyNum":0,
	"affirmBabyNum":0,
	"affirmBabyPrice":0.00,
	"date":"2014-12-12",
	"costCurrencyType":8,
	"settleDetail":"大( 350.00 * 2)",
	"settlePrice":700.00,
	"touristContact":[{
		"contactId":"27e8559d8c69547627b6beac9e47bba0",
		"contactName":"张三",
		"contactTel":"133333"
	}],
	"tourist":[{
		"touristId":"27e8559d8c69547627b6beac9e47bba0",
		"touristName":"张三",
		"psptType":1,
		"psptId":"333333",
		"birthday":"1990-01-01",
		"sex":1
	}],
	"roomAddPrice":100.00,
	"roomAddPriceOption":0,
	"otherPrice":"200",
	"schedule":"第一天",
	"priceInclude":"费用已含",
	"priceExclude":"自费",
	"remark":"",
	"stockNum":0,
	"boardingLocation":"08:00:00--深大北门天桥下面(往南头方向)"
}							

接口出参

名称 类型 必填 示例值 描述
success string "true" 接口调用结果,"true"为成功;"false"为失败
errorCode Int 0 错误代码
msg string ““ 错误信息

data中需要包含

名称 类型 必填 示例值 描述
agencyOrderId string "10000" 供应商订单编号

出参示例

{
	"success":"true",
	"errorCode":0,
	"msg":"",
	"data":{
		"agencyOrderId":"10000"
	}
}							

4、常见问题

API返回码 问题描述 解决方案 备注
共享库存确认单 客服下单,发现控位库存不满足条件的时候会调用共享占位接口去供应商处占位,占位成功签约付款后,发送确认单给供应商。
确认单能否取消 供应商确认完成后,确认单不能取消,若客人、途牛、供应商三方,任一方出现问题,导致不能出游,走线下的核损方案

接口说明


此接口由供应商提供给api,api在存在控位库存确认单信息时,使用此接口推送给供应商相应单据信息。

1、调用方法

Method:HTTP-POST

Url:供应商提供

Data_Type:json

2、系统参数

API调用参数分为系统参数和业务参数,请求时,系统参数是必传的,否则无法成功请求,业务参数由具体业务接口定义。

入参格式

系统参数
名称 类型 必填 描述
apiKey String 分配给供应商的唯一身份标识
sign String 请求签名,生成规则参见签名机制
timestamp String 时间戳,参见时间戳

3、业务参数

接口入参

名称 类型 必填 示例值 描述
tuniuSerialId string “10000” 途牛流水号(同占位字段说明)
tuniuOrderId string “10000” 途牛订单号(同占位字段说明)
agencyProductId string “50000” 供应商产品编号
scheme string “scheme1” 出游方案,默认为基础方案
groupNum Varchar(100) “0” 支持供应商一个产品id对应多个团的情况,如不传该字段,表明只支持单个团
agencyId int 100 供应商编号
agencyName string “partner” 供应商名称
agencyTel string “112233” 供应商电话
agencyFax string “112233” 供应商传真
agencyContact string “张三” 供应商联系人
name string “tuniu” 途牛名称
tel string “111233” 途牛电话
fax string “111233” 途牛传真
contact string “李四” 途牛联系人
productId string “50000” 途牛产品编号
productName string “三日游” 产品名称
totalAdultNum int 10 订单成人数
affirmAdultNum int 8 本确认单成人数
affirmAdultPrice BigDecimal 100.00 确认单成人价格
totalChildNum int 10 订单儿童数
affirmChildNum int 8 本确认单儿童数
affirmChildPrice BigDecimal 50.00 确认单儿童价格
totalBabyNum int 0 订单婴儿数
affirmBabyNum int 0 本确认单婴儿数
affirmBabyPrice BigDecimal 0.00 确认单婴儿价
date date “2014-12-12“ 出游日期
costCurrencyType int 8 价格币种 默认人民币 支持:1:欧元 2:美元 3:港币 4:新币 5:日元 6:韩元 7:加元 8:人民币 9:泰铢 10:英镑 11:澳元 12:马币 13:斐济元 14:瑞士法郎 15:澳门元
settleDetail string “大( 350.00 * 2)” 结算明细
settlePrice int 7000.00 结算价
touristContact JSONArray {
“contactId”:”27e8559d8c69547627b6beac9e47bba0”,
“contactName”:”张三”,
“contactTel”:”133333”
}
订单联系人信息
tourist JSONArray {
“touristId”:”27e8559d8c69547627b6beac9e47bba0”, “touristName”:”张三”, “englishName”:”zhangsan”, “psptType”:1(证件类型1=身份证、2=护照、3=军官证、4=港澳通行证、6=其它、7=台胞证) “psptId”: “333333”, “birthday”:”1990-01-01”, “sex”:1 (性别0-女、1-男、其它-未知), “touristTel”:”11212”
}
游客信息
roomAddPrice int 100.00 单房差
roomAddNum int 50 单房差数量
roomAddPriceOption int 0 单房差支付方式0预付;1现付
otherPrice BigDecimal 200.00 订单增补项合计
supplyRemark string “增补” 订单增补备注
otherResources string “自理资源” 自理资源信息
schedule string ”第一天” 行程
priceInclude string “费用已含” 费用包含
priceExclude string “自费” 费用不包含
remark string 备注
stockNum int 3 使用的途牛控位库存数量 0:共享库存确认单;其他为控位确认单
boardingLocation String 08:00:00--深大北门天桥下面(往南头方向) 上车地点,格式为上车时间--上车地点

入参示例

{
	"tuniuSerialId":"10000",
	"tuniuOrderId":"10000",
	"agencyProductId":"50000",
	"scheme":"10026"
	"groupNum":"",
	"agencyId":100,
	"agencyName":"partner",
	"agencyTel":"112233",
	"agencyFax":"112233",
	"agencyContact":"张三",
	"name":"tuniu",
	"contact":"李四",
	"productId":"50000",
	"productName":"三日游",
	"totalAdultNum":10,
	"affirmAdultNum":8,
	"affirmAdultPrice":100.00,
	"totalChildNum":10,
	"affirmChildNum":8,
	"affirmChildPrice":50.00,
	"totalBabyNum":0,
	"affirmBabyNum":0,
	"affirmBabyPrice":0.00,
	"date":"2014-12-12",
	"costCurrencyType": 1,
	"settleDetail":"大( 350.00 * 2)",
	"settlePrice":700.00,
	"touristContact":[{
		"contactId":"27e8559d8c69547627b6beac9e47bba0",
		"contactName":"张三",
		"contactTel":"133333"
	}],
	"tourist":[{
		"touristId":"27e8559d8c69547627b6beac9e47bba0",
		"touristName":"张三",
		"psptType":1,
		"psptId":"333333",
		"birthday":"1990-01-01",
		"sex":1
	}],
	"roomAddPrice":100.00,
	"roomAddPriceOption":0,
	"otherPrice":"200",
	"schedule":"第一天",
	"priceInclude":"费用已含",
	"priceExclude":"自费",
	"remark":"",
	"stockNum":3,
	"boardingLocation":"08:00:00--深大北门天桥下面(往南头方向)"
}							

接口出参

名称 类型 必填 示例值 描述
success string "true" 接口调用结果,"true"为成功;"false"为失败
errorCode Int 0 错误代码
msg string ““ 错误信息

data中需要包含

名称 类型 必填 示例值 描述
agencyOrderId string "10000" 供应商订单编号

出参示例

{
	"success":"true",
	"errorCode":0,
	"msg":"",
	"data":{
		"agencyOrderId":"10000"
	}
}							

4、常见问题

API返回码 问题描述 解决方案 备注
控位库存确认单 客服下单,控位库存满足的情况下,会直接占控位库存的位置,此操作不会走供应商的占位接口。但是签约付款成功后会给供应商发送确认单。
如何区分共享库存确认单和控位库存确认单 控位库存确认单中存在一个stockNum的字段,表示占控位库存的个数,可通过这个字段来进行区分

接口说明


此接口由供应商提供给api,使用此接口推送给供应商进行异步确认单操作。

1、调用方法

Method:HTTP-POST

Url:供应商提供

Data_Type:json

2、系统参数

API调用参数分为系统参数和业务参数,请求时,系统参数是必传的,否则无法成功请求,业务参数由具体业务接口定义。

入参格式

系统参数
名称 类型 必填 描述
apiKey String 分配给供应商的唯一身份标识
sign String 请求签名,生成规则参见签名机制
timestamp String 时间戳,参见时间戳

3、业务参数

接口入参

名称 类型 必填 示例值 描述
sessionId long 10000 交互ID
products List 具体请求信息

products(具体请求信息)

名称 类型 必填 示例值 描述
tuniuInfo Map 途牛产品信息
agencyInfo Map 供应商产品信息
departDates List 游客团期信息
touristContact List 游客联系人
tourist List 游客信息
supplementarys List 订单增补项
settleDetail string “大( 350.00 * 2)” 结算明细
settlePrice Bigdecimal 1000.00 结算价
otherResources string “自理资源信息” 自理资源信息
schedule string “第一天” 行程信息
priceInclude string “费用包含” 费用包含
priceExclude string “自费” 自费
remark string “备注信息” 备注信息
orderRemark string “订单备注” 订单备注
stockNum int 1 订单库存数

tuniuInfo(途牛信息)

名称 类型 必填 示例值 描述
requirementId long 12345 需求ID
tuniuOrderId long 12345 途牛订单号
name String “张三” 途牛分公司名
tel String “025012345” 途牛联系人电话
fax String “02512456” 途牛联系人传真
contact String “张三” 途牛联系人
productId long 12345678 途牛产品ID
productName String “途牛产品名称” 途牛产品名称

agencyInfo(供应商信息)

名称 类型 必填 示例值 描述
agencyProductId String “abc123“ 供应商产品ID
agencyId int 12345 供应商ID
agencyName string “测试供应商” 供应商名称
agencyTel String “055012345” 供应商电话
agencyFax String “0550123456” 供应商传真
agencyContact String “李四” 供应商联系人

departDates(游客团期信息)

名称 类型 必填 示例值 描述
resourceId long 12345 资源ID
totalAdultNum int 2 订单总出游成人数
affirmAdultNum int 2 本确认单出游成人数
affirmAdultPrice BigDecimal 200.00 成人成本价
totalChildNum int 2 订单总出游儿童数
affirmChildNum int 2 本确认单出游儿童数
affirmChildPrice BigDecimal 200.00 儿童成本价
totalBabyNum int 2 订单总出游婴儿数
affirmBabyNum int 2 本确认单出游婴儿数
affirmBabyPrice BigDecimal 200.00 婴儿成本价
date Date “2017-10-01” 团期
costCurrencyType int 1 币种类型
roundId long 12345 批次号
stockType int 1 库存类型
roomAddPrice Bigdecimal 200.00 单房差价格
roomAddNum int 1 单房差数量

touristContact(游客联系人信息)

名称 类型 必填 示例值 描述
contactName String “王五” 联系人姓名
contactTel String “1888888888” 联系人联系方式

tourist(游客信息)

名称 类型 必填 示例值 描述
touristId String “168989d32ee0a5b0b6aaacbf23718724” 游客编号
touristName String “张三” 游客姓名
touristType int 1 游客类型(0是成人、1是儿童)
firstName String “张” 游客姓
lastName String “三” 游客名
country String “中国” 游客国家
englishName String “zhangsan” 游客英文姓名
psptType int 1 游客证件类型(证件类型:1=身份证、2=护照、3=军官证、4=港澳通行证、6=其它、7=台胞证)
psptId String “12345” 游客证件编号
psptEndDate Date “2018-10-01” 游客证件结束时间
birthday Date “1992-11-28” 游客出生日期
sex int 1 游客性别(0-女、1-男、其它-未知)
touristTel String “1888888888” 游客联系方式
hasHkvisa int 0 是否有香港签证*1:有 0:无
hkvisaType int 1 香港签注类型* 1个人旅游G 2团队旅游L 3商务旅游S 4探亲T 5逗留D 6其他Q
hasMacvisa int 0 是否有澳门签证*1:有 0:无
hasMacvisa int 1 澳门签注类型* 1个人旅游G 2团队旅游L 3商务旅游S 4探亲T 5逗留D 6其他Q

入参示例

{
    "sessionId": 2044,
    "products": [
        {
            "tuniuInfo": {
                "requirementId": 10000,
                "tuniuSerialId": 10000,
                "tuniuOrderId": 10000,
                "name": "tuniu",
                "tel": "123",
                "fax": "123",
                "contact": "李四",
                "productId": 50000,
                "productName": "三日游"
            },
            "agencyInfo": {
                "agencyProductId": "50000",
                "agencyId": 100,
                "agencyName": "partner",
                "agencyTel": "112233",
                "agencyFax": "112233",
                "agencyContact": "张三"
            },
            "departDates": [
                {
                    "resourceId": 123,
                    "totalAdultNum": 10,
                    "affirmAdultNum": 8,
                    "affirmAdultPrice": 100,
                    "totalChildNum": 10,
                    "affirmChildNum": 8,
                    "affirmChildPrice": 50,
                    "totalBabyNum": 0,
                    "affirmBabyNum": 0,
                    "affirmBabyPrice": 0,
                    "date": "2014-12-12",
                    "costCurrencyType": 1,
                    "roundId": 123,
                    "extPurchaseId": 123,
                    "stockType": 2,
                    "roomAddPrice": 0,
                    "roomAddNum": 100,
                    "roomAddPriceOption": 0
                }
            ],
            "touristContact": [
                {
                    "contactName": "张三",
                    "contactTel": "133333"
                }
            ],
            "tourist": [
                {
                    "touristId": "168989d32ee0a5b0b6aaacbf23718724",
                    "touristName": "张三",
                    "touristType": 0,
                    "firstName": "",
                    "lastName": "",
                    "country": "",
                    "englishName": "zhangsan",
                    "psptType": 1,
                    "psptId": "333333",
                    "psptEndDate": "2015-05-05",
                    "birthday": "1990-01-01",
                    "sex": 1,
                    "touristTel": "123456",
                    "hasHkvisa": 0,
                    "hkvisaType": 1,
                    "hasMacvisa": 0,
                    "macvisaType": 1,
                    "isContactTourist": 1
                }
            ],
            "supplementarys": [
                {
                    "supplementaryId": 919370,
                    "supplementaryRemark": "4199/人",
                    "supplementaryNum": -1,
                    "price": 10700
                },
                {
                    "supplementaryId": 919379,
                    "supplementaryRemark": "一个小朋友占床",
                    "supplementaryNum": 1,
                    "price": 400
                }
            ],
            "settleDetail": "大( 350.00 * 2)",
            "settlePrice": 700,
            "otherResources": "自理资源信息",
            "schedule": "第一天",
            "priceInclude": "费用已含",
            "priceExclude": "自费",
            "remark": "",
            "orderRemark": "",
            "stockNum": 3
        }
    ]
}							

接口出参

名称 类型 必填 示例值 描述
success string "true" 接口调用结果,"true"为成功;"false"为失败
errorCode Int 895000 错误代码
msg string ““ 错误信息

出参示例

{
	"success":"true",
	"errorCode":0,
	"msg":"",
	"data":{}
}							

4、常见问题

API返回码 问题描述 解决方案 备注

接口说明


此接口由供应商提供给api,用以异步反馈订单确认结果。

1、调用方法

Method:HTTP-POST

Url:#{环境信息}/order/1.0/gt-new/confirmFeedback

Data_Type:json

2、系统参数

API调用参数分为系统参数和业务参数,请求时,系统参数是必传的,否则无法成功请求,业务参数由具体业务接口定义。

入参格式

系统参数
名称 类型 必填 描述
apiKey String 分配给供应商的唯一身份标识
sign String 请求签名,生成规则参见签名机制
timestamp String 时间戳,参见时间戳

3、业务参数

接口入参

名称 类型 必填 示例值 描述
sessionId long 10000 交互ID
success boolean ture 确认结果
products List 具体请求信息

products(具体请求信息)

名称 类型 必填 示例值 描述
agencyProductId String “12345” 供应商产品ID
agencyOrderId String “12345” 供应商订单号
remark String “备注信息” 备注信息
departDates List 游客团期信息

departDates(游客团期信息)

名称 类型 必填 示例值 描述
rounId long 123 批次号
stockType int 1 库存类型(1-控位 2-FS 3-现询)
adultNum int 1 成人数
childNum int 1 儿童数
babyNum int 1 婴儿数
date Date “2017-10-01” 团期
adultCost Bigdecimal 1000.00 成人成本价
childCost Bigdecimal 800.00 儿童成本价
babyCost Bigdecimal 600.00 婴儿成本价
roomAddPrice Bigdecimal 200.00 单房差成本价
roomAddNum int 1 单房差数量

入参示例

{
    "sessionId" : 9580574,
    "success" : true,
    "products" : [{
         "agencyProductId":"123",
         "agencyOrderId" : "123",
         "remark" : "备注",
         "departDates": [
          {
            "rounId":123,
            "stockType":2,
            "adultNum":1,
            "childNum":1,
            "babyNum":1,
            "date":"2015-05-06",
            "adultCost" : 37.50,
            "childCost" : 0,
            "babyCost" : 0,
            "roomAddNum" : 0,
            "roomAddPrice" : 0.00
          }
        ]
    }]
}							

接口出参

名称 类型 必填 示例值 描述
success string "true" 接口调用结果,"true"为成功;"false"为失败
errorCode Int 0 错误代码
msg string ““ 错误信息

出参示例

{
	"success":"true",
	"errorCode":0,
	"msg":"",
	"data":{}
}							

4、常见问题

API返回码 问题描述 解决方案 备注

接口说明


此接口由供应商提供给api,api向供应商发送核损相关信息。

1、调用方法

Method:HTTP-POST

Url:供应商提供

Data_Type:json

2、系统参数

API调用参数分为系统参数和业务参数,请求时,系统参数是必传的,否则无法成功请求,业务参数由具体业务接口定义。

入参格式

系统参数
名称 类型 必填 描述
apiKey String 分配给供应商的唯一身份标识
sign String 请求签名,生成规则参见签名机制
timestamp String 时间戳,参见时间戳

3、业务参数

接口入参

名称 类型 必填 示例值 描述
sessionId long 10000 交互ID
products List 具体请求信息

products(具体请求信息)

名称 类型 必填 示例值 描述
tuniuInfo Map 途牛产品信息
agencyInfo Map 供应商产品信息
departDates List 游客团期信息
detail Map 单房差信息
supplementarys List 订单增补项
lossTourist List 核损的游客信息

tuniuInfo(途牛信息)

名称 类型 必填 示例值 描述
requirementId long 12345 需求ID
tuniuOrderId long 12345 途牛订单号
effectiveTime Date “2015-10-12 12:12:12” 核损有效期(精确到年月日)

agencyInfo(供应商信息)

名称 类型 必填 示例值 描述
agencyOrderId String “abc123“ 供应商订单号
agencyId int 12345 供应商ID

departDates(游客团期信息)

名称 类型 必填 示例值 描述
date Date “2015-10-12” 团期
lossAdultNum int 2 核损成人数
lossChildNum int 1 核损儿童数
lossBabyNum int 1 核损婴儿数
stocktype int 1 库存类型(1-现询,2-FS,3-库存)
roundId long 12345 批次号

detail(单房差信息)

名称 类型 必填 示例值 描述
roomAddNum int 1 单房差数量
roomAddPrice Bigdecimal 100.00 单房差价格

supplementarys(订单增补项信息)

名称 类型 必填 示例值 描述
supplementaryId int 1 增补项ID
supplementaryRemark String “增补项备注” 增补项备注
supplementaryNum int -1 增补项数量
price Bigdecimal 100.00 增补项价格

lossTourist(核损游客信息)

名称 类型 必填 示例值 描述
touristNo String “168989d32ee0a5b0b6aaacbf23718724” 核损游客编号
touristName String “张三” 核损游客姓名
psptType int 1 游客证件类型(证件类型:1=身份证、2=护照、3=军官证、4=港澳通行证、6=其它、7=台胞证)
psptId String “12345” 游客证件编号
birthday Date “1992-11-28” 游客出生日期
sex int 1 游客性别(0-女、1-男、其它-未知)

入参示例

{
    "sessionId" : 2044,
    "products" : [
        {
            "tuniuInfo":{
                "requirementId":123,
                "tuniuSerialId":"",
                "tuniuOrderId":"",
                "effectiveTime":"2015-10-12 12:12:12"
            }
             
            "agencyInfo" : {
                "agencyOrderId" : "2111",
                "agencyId" : 100
            },
            "departDates" : [{
                "date" : "2014-12-12",
                "lossAdultNum" : 5,
                "lossChildNum" : 5,
                "lossBabyNum" : 5,
                "stocktype":1,
                "roundId":123,
                "extPurchaseId":123
            }],
            "detail":{
               "roomAddNum": 0,                     
               "roomAddPrice": 1500.00
            }
            "supplementarys": [
            {
              "supplementaryId": 972738,             
              "supplementaryRemark": "婴儿地接",
              "supplementaryNum": -1,            
              "price": 333.00,               
             },
             {
              "supplementaryId": 972834,
              "supplementaryRemark": "1.4不到1.5儿童船票",
              "supplementaryNum": 1,
              "price": 18.00
             }
           ],
              "lossTourist" : [{
                "touristNo":"168989d32ee0a5b0b6aaacbf23718724",
                "touristName" : "张三",
                "psptType" : 1,
                "psptId" : "12344",
                "birthday" : "1992-11-28",
                "sex" : 1
            }]
        }
    ]
}							

接口出参

名称 类型 必填 示例值 描述
success string "true" 接口调用结果,"true"为成功;"false"为失败
errorCode Int 0 错误代码
msg string ““ 错误信息

出参示例

{
	"success":"true",
	"errorCode":0,
	"msg":"",
	"data":{}
}							

4、常见问题

API返回码 问题描述 解决方案 备注

接口说明


此接口由供应商提供给api,用以异步反馈订单核损结果。

1、调用方法

Method:HTTP-POST

Url:#{环境信息}/order/1.0/gt-new/assess

Data_Type:json

2、系统参数

API调用参数分为系统参数和业务参数,请求时,系统参数是必传的,否则无法成功请求,业务参数由具体业务接口定义。

入参格式

系统参数
名称 类型 必填 描述
apiKey String 分配给供应商的唯一身份标识
sign String 请求签名,生成规则参见签名机制
timestamp String 时间戳,参见时间戳

3、业务参数

接口入参

名称 类型 必填 示例值 描述
sessionId long 10000 交互ID
success boolean ture 确认结果
products List 具体请求信息

products(具体请求信息)

名称 类型 必填 示例值 描述
agencyInfo Map 供应商信息
resource List heu

agencyInfo(供应商核损信息)

名称 类型 必填 示例值 描述
agencyLossSchemeId long 123245 供应商核损编号
effectiveTime Date “2015-11-28 02:02:02” 核损有效期
remark String “核损备注” 核损备注

resource(核损详情)

名称 类型 必填 示例值 描述
lossAdultCustomerExtra Bigdecimal 100.00 对客成人核损尾差
lossChildCustomerExtra Bigdecimal 100.00 对客儿童核损尾差
lossChildCustomerExtra Bigdecimal 100.00 对客婴儿核损尾差
lossAdultAgencyExtra Bigdecimal 100.00 对供应商成人核损尾差
lossChildAgencyExtra Bigdecimal 100.00 对供应商儿童核损尾差
lossBabyAgencyExtra Bigdecimal 100.00 对供应商儿童核损尾差
departDates List 核损对客详情

resource(核损对客详情)

名称 类型 必填 示例值 描述
adultNum int 100.00 核损成人数
childNum int 100.00 核损儿童数
babyNum int 100.00 核损婴儿数
lossAdultCustomer Bigdecimal 100.00 对客成人核损金额
lossChildCustomer Bigdecimal 100.00 对客儿童核损金额
lossBabyCustomer Bigdecimal 100.00 对客婴儿核损金额
lossAdultAgency Bigdecimal 100.00 对供应商成人核损金额
lossChildAgency Bigdecimal 100.00 对供应商儿童核损金额
lossBabyAgency Bigdecimal 100.00 对供应商婴儿核损金额
stockType int 1 库存类型(1-现询,2-FS,3-库存)
roundId long 12345 批次号

入参示例

{
    "sessionId":12345,
    "success":true,
    "products" : [
        {
            "agencyInfo" : {
                "agencyLossSchemeId" : 1,
                "effectiveTime" : "2014-11-09 00:00:00",
                "remark" : ""
            },
            "resource" :{
                "lossAdultCustomerExtra" : 3.00,
                "lossChildCustomerExtra" : 3.00,
                "lossBabyCustomerExtra" : 2.00,
                "lossAdultAgencyExtra" : 2.00,
                "lossChildAgencyExtra" : 1.00,
                "lossBabyAgencyExtra" : 1.00,
                 "costCurrencyType":8,
                "departDates" :[{
                    "adultNum":12,
                    "childNum":12,
                    "babyNum":12,
                    "date":"",
                    "lossAdultCustomer" : 100.00,
                    "lossChildCustomer" : 100.00,
                    "lossBabyCustomer" : 50.00,
                    "lossAdultAgency" : 50.00,
                    "lossChildAgency" : 20.00,
                    "lossBabyAgency" : 20.00,
                    "stockType":1,
                    "roundId":1,
                }]
            }
        }
    ]
}							

接口出参

名称 类型 必填 示例值 描述
success string "true" 接口调用结果,"true"为成功;"false"为失败
errorCode Int 0 错误代码
msg string ““ 错误信息

出参示例

{
	"success":"true",
	"errorCode":0,
	"msg":"",
	"data":{}
}							

4、常见问题

API返回码 问题描述 解决方案 备注

接口说明


此接口由供应商提供给api,用以发送供应商取消确认。

1、调用方法

Method:HTTP-POST

Url:供应商提供

Data_Type:json

2、系统参数

API调用参数分为系统参数和业务参数,请求时,系统参数是必传的,否则无法成功请求,业务参数由具体业务接口定义。

入参格式

系统参数
名称 类型 必填 描述
apiKey String 分配给供应商的唯一身份标识
sign String 请求签名,生成规则参见签名机制
timestamp String 时间戳,参见时间戳

3、业务参数

接口入参

名称 类型 必填 示例值 描述
sessionId long 10000 交互ID
tuniuInfo Map 途牛取消确认详情
agencyInfo Map 供应商取消确认详情

tuniuInfo(途牛取消确认详情)

名称 类型 必填 示例值 描述
tuniuOrderId long 途牛订单号

agencyInfo(供应商取消确认详情)

名称 类型 必填 示例值 描述
agencyId long 123245 供应商ID
agencyOrderId String “12234” agencyOrderId
agencyLossSchemeId int 12323 供应商核损方案编号

入参示例

{
    "sessionId" : 8,
    "tuniuInfo" : {
        "tuniuOrderId" : 123
    }
    "agencyInfo" : {
        "agencyId" : 100,
        "agencyOrderId" : "231234",
        "agencyLossSchemeId" : 21233
    }
}							

接口出参

名称 类型 必填 示例值 描述
success string "true" 接口调用结果,"true"为成功;"false"为失败
errorCode Int 0 错误代码
msg string ““ 错误信息

出参示例

{
	"success":"true",
	"errorCode":0,
	"msg":"",
	"data":{}
}							

4、常见问题

API返回码 问题描述 解决方案 备注

接口说明


此接口由供应商提供给api,api在存在库存占位单单房差信息变更时,使用此接口推送给供应商相应单据信息来完成占位单单房差的变更。

1、调用方法

Method:HTTP-POST

Url:供应商提供

Data_Type:json

2、系统参数

API调用参数分为系统参数和业务参数,请求时,系统参数是必传的,否则无法成功请求,业务参数由具体业务接口定义。

入参格式

系统参数
名称 类型 必填 描述
apiKey String 分配给供应商的唯一身份标识
sign String 请求签名,生成规则参见签名机制
timestamp String 时间戳,参见时间戳

3、业务参数

接口入参

名称 类型 必填 示例值 描述
tuniuSerialId string “1234” 途牛订单序列号,此订单号为途牛系统对供应商的订单号,是双方系统交互的凭据。占位、取消占位、确认均基于此订单号,由途牛系统保证唯一性。
tuniuOrderId string “6122544” 途牛订单号,此订单号为客人在途牛网站下单的订单号。网站用户订单可能会分成多个与供应商交互的订单,即此字段与tuniuSerialId是一对多的关系。
agencyProductId string “50000” 供应商产品编号
groupNum Varchar(100) “0” 支持供应商一个产品id对应多个团的情况,如不传该字段,表明只支持单个团
date date “2014-12-12“ 出游日期
scheme string “scheme1” 出游方案,默认为基础方案
adultNum int 10 订单成人数
childNum int 10 订单儿童数,如有儿童则必传
babyNum int 0 订单婴儿数,有则传
costCurrencyType int 8 价格币种 默认人民币 支持:1:欧元 2:美元 3:港币 4:新币 5:日元 6:韩元 7:加元 8:人民币 9:泰铢 10:英镑 11:澳元 12:马币 13:斐济元 14:瑞士法郎 15:澳门元
adultPrice BigDecimal 1000.00 成人成本价
childPrice BigDecimal 1000.00 儿童成本价,如有儿童则必传
babyPrice BigDecimal 0.00 婴儿成本价,有则传
roomAddNum int 0 单房差数
roomAddPrice BigDecimal 599.00 单房差价格
stockNum int 0 使用的途牛控位库存数量

入参示例

{
	"tuniuSerialId":"1234",
	"tuniuOrderId":"6122544",
	"agencyProductId":"50000",
	"groupNum":"",
	"date":"2014-12-12",
	"scheme":"scheme1",
	"adultNum":10,
	"childNum":10,
	"babyNum":0,
	"costCurrencyType":8,
	"adultPrice":1000,
	"childPrice":1000,
	"babyPrice":0,
	"roomAddNum":0,
	"roomAddPrice":599,
	"stockNum":0
}							

接口出参

名称 类型 必填 示例值 描述
success string "true" 接口调用结果,"true"为成功;"false"为失败
errorCode Int 895000 错误代码
msg string ““ 错误信息
data json ““

data中需要包含

名称 类型 必填 示例值 描述
tuniuSerialId string "200012" 途牛订单序列号
tuniuOrderId string "6122544" 途牛订单号
reserveNum int 10 占位数量
reserveTime datetime "2014-09-18 14:23:00" 占位保留时间
reserveAdultPrice int 1000 占位成人价
reserveChildPrice int 10000 占位儿童价,如有儿童则必传
reserveRoomAddPrice int 299 占位单房差
agencyOrderId string "10000" 供应商订单编号
agencyProductId string "50000" 供应商产品编号

出参示例

{
	"success":"true",
	"errorCode":895000,
	"msg":"",
	"data":{
		"tuniuSerialId":"200012",
		"tuniuOrderId":"6122544",
		"reserveNum":10,
		"reserveTime":"2014-09-18 14:23:00",
		"reserveAdultPrice":1000,
		"reserveChildPrice":1000,
		"reserveRoomAddPrice":299,
		"agencyOrderId":"10000",
		"agencyProductId":"50000"
	}
}							

4、常见问题

API返回码 问题描述 解决方案 备注
单房差占位币种 单房差占位入参中costCurrencyType币种类型为供应商结算币种,结算按照该币种进行结算,如果与实际结算币种不相符,则返回占位失败。

接口说明


此接口由供应商提供给api,api可通过此接口来获取询位的信息。

1、调用方法

Method:HTTP-POST

Url:供应商提供

Data_Type:json

2、系统参数

API调用参数分为系统参数和业务参数,请求时,系统参数是必传的,否则无法成功请求,业务参数由具体业务接口定义。

入参格式

系统参数
名称 类型 必填 描述
apiKey String 分配给供应商的唯一身份标识
sign String 请求签名,生成规则参见签名机制
timestamp String 时间戳,参见时间戳

3、业务参数

接口入参

名称 类型 必填 示例值 描述
agencyProductId string “50000” 供应商产品编号
groupNum Varchar(100) “0” 支持供应商一个产品id对应多个团的情况,如不传该字段,表明只支持单个团
date date “2014-12-12“ 出游日期
inquiryNum int “3” 询位数量

入参示例

{
	"agencyProductId":"50000",
	"groupNum":"",
	"date":"2014-12-12",
	"inquiryNum":3
}							

接口出参

名称 类型 必填 示例值 描述
success string "true" 接口调用结果,"true"为成功;"false"为失败
errorCode Int 895000 错误代码
msg string ““ 错误信息
data json ““

data中需要包含

名称 类型 必填 示例值 描述

出参示例

{
	"success":"true",
	"errorCode":895000,
	"msg":"",
	"data":""
}							

4、常见问题

应用环境


目前途牛API系统总共分2套环境,一套测试环境,一套线上环境。生产环境和测试环境的账号配置是相互独立的,需要分开申请

测试环境

途牛API测试环境的数据是完全独立的,目的是在供应商API开发结束后进行联调测试,解决API对接过程中产生的问题

跟团产品测试地址:http://sup.tuniu.org:9690/gentuan/product

门票测试地址:http://sup.tuniu.org:9790/menpiao

线上环境

途牛API线上环境的数据就是供应商在途牛的真实数据,供应商调用线上环境API前,需要在测试环境联调测试通过,才可以调用线上环境,否则会影响线上产品的真实数据

如需线上地址,请联系我们:蒋建华 openapi@tuniu.com

相关说明

API两套环境的账号及相关配置都是独立开的,需要分开申请。如果有API对接意向,请提供对接供应商ID、对接应用服务器IP(用于IP白名单),并联系我们,我们将会给您提供对应环境的apiKey和secret_key

API调用说明


概述

途牛开放API将供应商频繁、重复、低效的操作抽象简化为一组公共服务,开放给供应商系统,供应商可以使用这些服务,推送产品、库存,接收订单信息,查询业务相关信息,从而实现效益最大化。

目前已开放API功能为:跟团API、门票API。

请求流程

途牛API接口采用REST风格,对外暴露HTTP服务。供应商只需要将入参封装好,并发起HTTP请求即可。具体请求流程如下图所示:

数据格式

API调用参数分为系统参数和业务参数,请求时,系统参数是必传的,否则无法成功请求,业务参数由具体业务接口定义。

系统参数
名称 类型 必填 描述
apiKey String 分配给供应商的唯一身份标识
sign String 请求签名,生成规则参见签名机制
timestamp String 时间戳,参见时间戳

API请求返回结果目前支持json和xml格式,具体返回格式由请求头中的Content-Type属性来决定。当Content-Type属性为application/xml时,返回xml格式,其余情况下统一返回json格式。返回结果包含以下字段

系统参数
名称 类型 必填 描述
returnCode int 结果码,具体值参见API返回码
errorMsg String 异常时错误信息
data String 返回结果
success boolean 是否请求成功

请求示例

我们以团期信息管理接口为例,假设我们需要维护团期,接口请求原始入参(业务参数+系统参数)如下

{
	"apiKey":"testApiKey",
	"timestamp":"2015-07-30 12:34:56",
	"agencyProductId":"test10001",
	"groupNum":"",
	"planInfo":[{
		"planDateStr":"2015-07-18",
		"datePriceList":[{
			"schemeId":"scheme0001",
			"scheduleId":"schedule",
			"agencyBudget":1000,
			"agencyBudgetChild":500,
			"excludeChild":1,
			"roomAddBudget":100,
			"roomGapFlag":1,
			"aheaddate":4,
			"deadlinedate":3,
			"deadlinehour":18,
			"promoFlag":1,
			"setGroupFlag":1,
			"stuffEndDate":5
		}]
	}]	
}							

首先,我们需要根据现有参数生成签名,签名生成步骤如下:

1. 将入参按照一级key值进行排序(按字典顺序进行排序,忽略大小写),去掉value值为空的入参,我们将得到以下格式参数+系统参数)如下

{
	"agencyProductId":"test10001",
	"apiKey":"testApiKey",
	"planInfo":[{
		"planDateStr":"2015-07-18",
		"datePriceList":[{
			"schemeId":"scheme0001",
			"scheduleId":"schedule",
			"agencyBudget":1000,
			"agencyBudgetChild":500,
			"excludeChild":1,
			"roomAddBudget":100,
			"roomGapFlag":1,
			"aheaddate":4,
			"deadlinedate":3,
			"deadlinehour":18,
			"promoFlag":1,
			"setGroupFlag":1,
			"stuffEndDate":5
		}]
	}],
	"timestamp":"2015-07-30 12:34:56"
}							

2. 获取一级key和对应的value,例如上面参数中planInfo键,对应的值为[{"planDateStr":"2015-07-18","datePriceList":[{"schemeId":"scheme0001","scheduleId":"schedule","agencyBudget":1000,"agencyBudgetChild":500,"excludeChild":1,"roomAddBudget":100,"roomGapFlag":1,"aheaddate":4,"deadlinedate":3,"deadlinehour":18,"promoFlag":1,"setGroupFlag":1,"stuffEndDate":5}]}], 以字符串的形式把key+value拼接起来得到一个新的字符串(二级三级键不进行操作),如下:

planInfo[{"planDateStr":"2015-07-18","datePriceList":[{"schemeId":"scheme0001","scheduleId":"schedule","agencyBudget":1000,"agencyBudgetChild":500,"excludeChild":1,"roomAddBudget":100,"roomGapFlag":1,"aheaddate":4,"deadlinedate":3,"deadlinehour":18,"promoFlag":1,"setGroupFlag":1,"stuffEndDate":5}]}]

其他键值对同样如此,将拼装好的字符串再依次拼接起来,如下:

agencyProductIdtest10001apiKeytestApiKeyplanInfo[{"planDateStr":"2015-07-18","datePriceList":[{"schemeId":"scheme0001","scheduleId":"schedule","agencyBudget":1000,"agencyBudgetChild":500,"excludeChild":1,"roomAddBudget":100,"roomGapFlag":1,"aheaddate":4,"deadlinedate":3,"deadlinehour":18,"promoFlag":1,"setGroupFlag":1,"stuffEndDate":5}]}]timestamp2015-07-30 12:34:56

3. 在拼好的字符串前后都加上签名密钥,我们假设密钥是ZbWjUMYevqT9Tnup4jRs,可以得到以下字符串:

ZbWjUMYevqT9Tnup4jRsagencyProductIdtest10001apiKeytestApiKeyplanInfo[{"planDateStr":"2015-07-18","datePriceList":[{"schemeId":"scheme0001","scheduleId":"schedule","agencyBudget":1000,"agencyBudgetChild":500,"excludeChild":1,"roomAddBudget":100,"roomGapFlag":1,"aheaddate":4,"deadlinedate":3,"deadlinehour":18,"promoFlag":1,"setGroupFlag":1,"stuffEndDate":5}]}]timestamp2015-07-30 12:34:56ZbWjUMYevqT9Tnup4jRs

4. 对生成的字符串进行MD5加密,并将结果全部转为大写,获得签名值:

85F60EFE28BB4688F3BA4A37FF62C101

5. 将签名加入到入参中:

{
	"agencyProductId":"test10001",
	"apiKey":"testApiKey",
	"planInfo":[{
		"planDateStr":"2015-07-18",
		"datePriceList":[{
			"schemeId":"scheme0001",
			"scheduleId":"schedule",
			"agencyBudget":1000,
			"agencyBudgetChild":500,
			"excludeChild":1,
			"roomAddBudget":100,
			"roomGapFlag":1,
			"aheaddate":4,
			"deadlinedate":3,
			"deadlinehour":18,
			"promoFlag":1,
			"setGroupFlag":1,
			"stuffEndDate":5
		}]
	}],
	"timestamp":"2015-07-30 12:34:56",
	"sign":"85F60EFE28BB4688F3BA4A37FF62C101"
}							

6.发起HTTP请求。

附上MD5加密方法参考示例:

private static String Md5Encode(String str) throws NoSuchAlgorithmException {
    StringBuilder sign = new StringBuilder();

    MessageDigest md = MessageDigest.getInstance("MD5");
    byte[] bytes = md.digest(str.getBytes());

    for (int i = 0; i < bytes.length; i++) {
        String hex = Integer.toHexString(bytes[i] & 0xFF);
        if (hex.length() == 1) {
            sign.append("0");
        }
        sign.append(hex.toUpperCase());
    }
    return sign.toString();
}						

注意事项

1. 所有的请求和响应数据编码皆为utf-8格式

2. 生成签名时,空值的参数不参与校验

3. 生成签名时,参数名称和值大小写敏感

4. 当部署新机器时,需要立刻将新机器IP提交给相关接口人,加入到IP白名单中,否则会导致请求失败。(我们将很快提供线上功能,直接在页面中添加IP即可)

5. 每个接口都需要单独申请访问权限,否则无法请求成功

6. 排序规则为按字典顺序进行排序,忽略大小写

安全机制


访问频率频次限制

单位时间内,每个供应商每分钟只能访问固定次数,如果发现频率过高,则认为可能存在恶意攻击行为,频率过高的请求将会被拦截。

每个接口针对供应商每天请求次数是有限制的,如果请求次数超过该接口允许的上线,则请求失败。

具体限制次数和频率可以和相关接口人进行沟通了解。

时间戳

时间戳,格式为yyyy-MM-dd HH:mm:ss,例如:2015-07-30 12:34:56。请求时会校验时间戳,只允许时间误差在5分钟之内的请求访问。

签名机制

为了防止用户请求被劫持、篡改,我们通过签名手段来确保请求数据的完整性。用户在调用API 时需要对请求参数进行签名验证,请求到达服务器后也会对请求参数进行验证,当生成的签名不匹配时则表示数据被拦截篡改或丢失。由于这个机制,供应商需要保存好自己的密钥,一旦泄露,则表示请求可以被伪造。如发现密钥可能泄露,请联系相关接口人重置密钥。

所有类型的请求,签名生成规则都一样,我们将所有入参按照一定规则进行拼装,再加上密钥,经过加密最终生成一串不可逆的加密字符串。为了方便毕竟,我们将密钥统一转成大写字符。生成签名时,需要注意空值的参数不参与校验,且参数名称和值大小写敏感。签名具体步骤参考附录案例签名生成流程

请求IP限制

供应商申请API接入时,需要提供自己的应用IP,作为和apiKey绑定的IP白名单。当请求发生时,如果请求IP不是该key值的IP白名单内,则请求失败。该限制的目的是为了防止供应商身份泄露导致的恶意访问。

常见问题


用户信息校验

问题说明

每个接口针对供应商每天请求次数是有限制的,如果请求次数超过该接口允许的上线,则请求失败。

API返回码 问题描述 解决方案 备注
231001 用户不存在 联系API技术人员配置用户信息
231002 用户没有该接口访问权限 联系API技术人员配置访问接口权限信息
231003 IP未授权 联系API技术人员将IP地址配置入白名单
231006 时间戳异常 供应商时间同API服务器时间差超过五分钟,调整供应商时间与途牛服务器同步
231009 接口不存在 检查接口地址是否正确,若正确联系API技术人员配置接口

入参校验

问题说明

此类问题是供应商调用API接口,出现入参错误的情况。入参错误存在多种原因,主要问题描述如列表所示

API返回码 问题描述 解决方案 备注
231008 入参错误 检查入参是否为json格式
231008 入参错误 检查入参参数拼写是否与文档一致
231008 入参错误 检查入参必填项是否漏传

签名校验

问题说明

此类问题是供应商调用API接口,出现验签失败的情况。验签失败存在多种原因,主要问题描述如列表

API返回码 问题描述 解决方案 备注
231007 参数排序错误 根据key值首字母进行排序(注:空值不加入排序),首字母相同时,顺次排序 验签步骤一
231007 参数排序错误 根据一级key值进行排序(数组内部不参与排序) 验签步骤一
231007 MD5加密错误 进行MD5加密后,将结果全部转为大写 验签步骤四
231007 MD5加密错误 API默认utf-8格式,加密中文格式使用utf-8 验签步骤四
231007 时间戳不一致 生成签名时的时间戳和调用接口时入参中的时间戳保持一致 验签步骤五

返回结果码


返回码 错误信息 备注
231000 success 请求成功
231001 user not exists 请求用户不存在
231002 No permission to do this operation 用户没有该接口访问权限
231003 Unauthorized client IP address IP未授权
231004 high frequency error 访问频率过高
231005 visit num limit 访问次数达到限制
231006 timestamp error 时间戳异常
231007 signature error 签名异常
231008 param error 入参异常
231009 inter not exist 接口不存在
231099 unknown error 未知异常
Copyright © 2006-2016 南京途牛科技有限公司 Tuniu.cn | 营业执照 | 苏 ICP B2-20070191 旅游网
联系人:蒋建华 openapi@tuniu.com 联系号码:02586853969-61741