上传卖家的政策数据,卖家需要按协议定义实现相应接口。
注:接口直接输出JSON数据
参数名称 | 中文含义 | 类型 | 必填 | 备注 |
userName | 用户名 | String | 是 | 接入方提供的用户名 |
channelId | 渠道ID | Integer | 是 | 接入方分配的渠道ID |
timestamp | 时间戳 | String | 是 | 格式:”YYYY-MM-DD HH:mm:ss” |
userKey | 用户鉴权关键字 | String | 是 | MD5 (UserName + PassWord + UniqueKey + TimeStamp) |
参数名称 | 中文含义 | 类型 | 必填 | 备注 |
success | 成功失败标志 | boolean | 是 | true-成功 flase-失败 |
errorCode | 错误码 | String | 否 | 失败时必填,错误代码 |
errorMessage | 错误信息 | String | 否 | 失败时的错误信息 |
policyDOs | 更新政策列表 | List<PolicyDO> | 否 | 见PolicyDO定义 |
deleteIds | 删除政策id列表 | String | 否 | 被删除的政策id用逗号分割,最大支持10000个ID,如果需要大批量删除请用deletePolicy节点。全量模式(压缩包)该属性须为空 |
agentSubName | 子账号 | String | 否 | 本批政策支持的账号,只支持一个子账号,如果不传则默认为主账号 |
deletePolicys | 删除条件 | List<deletePolicy> | 否 | 当需要删除时可将删除条件放在此节点下,最多支持十个。全量模式(压缩包)该属性须为空 |
lastModifiedTime | 本次政策更新时间 | String | 否 | 格式:”yyyy-MM-dd HH:mm:ss” |
lastOuterId | 本次更新的最后政策id | String | 否 | 用来标识B2B的一条政策,下次增量更新的政策为该id以后的政策数据 |
delTime | 政策清空时间 | String | 否 | 用于全量政策更新时,根据此时间清除之前的政策数据(推荐使用此参数)。 |
delOuterId | 政策清空ID | String | 否 | 在delTime为空时,根据此获取政策上的timestamp时间,根据此时间清空之前的所有政策数据(不推荐使用此参数)。全量是系统判断逻辑:timestamp <=delTime的政策都将被删除。 |
参数名称 | 中文含义 | 类型 | 必填 | 备注 |
depAirport | 起飞机场(大写) | String | 否 | 出发机场三字代码,大写且只支持单个出发地,政策上有多个出发到达,匹配到一个就删除 |
arrAirport | 到达机场(大写) | String | 否 | 到达机场三字码,大写且只支持单个目的地,政策上有多个出发到达,匹配到一个就删除 |
airline | 航司二字码(大写) | String | 否 | 航司二字码大写,支持单个航司二字码 |
outIdPrefix | 政策ID删除 | String | 否 | 代理商内部政策代码,支持模糊检索,模 糊检索部分用“*”代替。例:输入 “abcpolicy*”,匹配 “abcpolicy%”格式的所有政策(只 支持 * 在最后),且支持单个模糊,如果多个模糊请传多个deletePolicy 节点 |
cabin | 舱位(往返政策 对应去程舱位) | String | 否 | 舱位代码,大写且只支持单个舱位的录入,政策上有多个仓位,匹配到一个就删除 |
参数名称 | 中文含义 | 类型 | 必填 | 备注 |
outerId | 外部id | String | 是 | 用来标识B2B的一条政策,如果此ID重复淘宝采用覆盖机制。 |
airline | 航空公司代码 | String | 是 | CA,CZ,MU等航空公司二字码 |
depAirport | 出发机场 | String | 是 | PEK,SHA,CSX等机场三字码,全国为999. 以,号分割, 最多支持250个三字码 注意: 私有库存时只传一个,不可传多个,不可有分割符号,范例:PEK |
arrAirport | 到达机场 | String | 是 | PEK,SHA,CSX等机场三字码,全国为999. 以,号分割, 最多支持250个三字码 注意: 私有库存时只传一个,不可传多个,不可有分割符号,范例:PEK |
tripType | 航程类型 | Integer | 是 | 0是单程 1是往返 |
saleStartDate | 销售有效期开始日期 | String | 是 | 指从此日起,政策才可销售下单。格式“yyyy-MM-dd” |
saleEndDate | 销售有效期结束日期 | String | 是 | 格式“yyyy-MM-dd” |
prices | 价格 | List<PolicyPriceDO> | 是 | 包含了此政策的所有价格信息 |
supplierOfficeId | 批发商officeId | String | 是 | 批发商officeId(即:office号),创建PNR时,会给此office做授权,只支持一个office号。 |
supplierId | 代理商Id | String | 否 | 卖家Id ,此字段私有运价需要填写,非私有运价不需要填写。 |
needSwitchPNR | 是否更换PNR | Boolean | 是 | true 是 false 否。主要是针对平台的参数。 |
workTime | 出票工作时间 | String | 是 | 出票工作时间,最多支持7天(每天最多支持5个时间段); |
refundTime | 退票工作时间 | String | 是 | 退票工作时间, 最多支持7天(每天最多支持5个时间段) ; |
excludeDepAirports | 出发不适用 | String | 否 | 当出发机场为999全国时使用;PEK,SHA,CSX等机场三字码列表,以,号分割,最多支持250个三字码 |
excludeArrAirports | 到达不适用 | String | 否 | 当到达机场为999全国时使用;PEK,SHA,CSX等机场三字码列表,以,号分割, 最多支持250个三字码 |
invoiceType | 行程单发票类型 | Integer | 是 | 1 等额行程单 2 不提供发票 5 等额行程单加发票 6 等额发票 |
contentEI | Ei内容 | String | 否 | 支持最长32个字符 |
earliestIssueDays | 最早提前出票天数 | Integer | 是 | 没有限制 -1 |
lastestIssueDays | 最晚提前出票天数 | Integer | 是 | 没有限制 -1 |
minStayTime | 最小停留天数 | Integer | 是 | 没有限制 -1 |
maxStayTime | 最大停留天数 | Integer | 否 | 没有限制 -1 |
isSupportCodeShare | 是否支持共享航班 | Boolean | 是 | true是 false 否 |
isRefund | 是否可退 | Boolean | 否 | true 是 false 否;如果不填, 淘宝根据旅行有效期、航空公司、舱位匹配FD退改签 |
isChange | 是否可改 | Boolean | 否 | true 是 false 否;如果不填, 淘宝根据旅行有效期、航空公司、舱位匹配FD退改签 |
isIssue | 是否可签 | Boolean | 否 | true 是 false 否;如果不填, 淘宝根据旅行有效期、航空公司、舱位匹配FD退改签 |
isUpgrade | 是否可升舱 | Boolean | 否 | true 是 false 否;如果不填, 淘宝根据旅行有效期、航空公司、舱位匹配FD退改签 |
refundType | 退票计算方法 | Integer | 否 | 1 固定金额 2 百分比;如果不填, 淘宝根据航空公司、舱位匹配 “全量退改签”数据 |
refundBaseType | 退票计算基准 | Integer | 否 | 1:Y/C/F舱价格(根据当前舱位等级取对应的Y/C/F价格) 2:单程票面价格 3:往返票面价一半 4:原舱位FD票面价 5:往返票面价 |
refundPriceInfo | 退票计算时间点及对应取值 | String | 否 | 详见“退改签规则说明”; 如果不填, 淘宝根据旅行有效期、航空公司、舱位匹配FD退改签. 最多支持500个字符 |
changeType | 改票计算方式 | Integer | 否 | 1 固定金额 2 百分比;如果不填, 淘宝根据航空公司、舱位匹配 “全量退改签”数据 |
changeBaseType | 改票计算基准 | Integer | 否 | 1:Y/C/F舱价格(根据当前舱位等级取对应的Y/C/F价格) 2:单程票面价格 4:原舱位FD票面价 |
changePriceInfo | 改票计算时间点及对应取值 | String | 否 | 详见“退改签规则说明”; 如果不填, 淘宝根据旅行有效期、航空公司、舱位匹配FD退改签. 最多支持500个字符 |
tuigaiqianInfo | 退改签 | String | 否 | 退签改详情; 如果是私有运价政策(带有价格),必须传退改签。 如果公布运价(不带有价格)不填, 淘宝根据旅行有效期、航空公司、舱位匹配FD退改签 |
segments | 航段限制列表 | List<PolicySegmentDO> | 是 | 政策每一段上的限制条件;具体定义见PolicySegmentDO |
timestamp | 政策更新时间戳 | Long | 是 | 政策更新时间戳,主要用于政策删除,可以重复,全量是系统判断逻辑: timestamp <=delTime的政策都将被删除 |
memo | 备注 | String | 否 | 备注,最多500个字符 |
isPrivate | 是否是私有库存 | Boolean | 否 | true 是 false 否;如果不填,则为否 |
onlyAVFlight | 仅支持AV中有的航班 | Boolean | 否 | true 是 false 否;如果不填,则为否;仅针对私有库存 |
minimumTraveller | 最少成行人数 | Integer | 否 | 数字,为空则不限制 |
verifyPrice | 是否验价 | Byte | 否 | 空:从默认销售规则中取值 0:不验价 1:验价,验价是会用票面价进行PAT:A 当这个字段值为0或1时是否验价根据政策中的这个字段走,不取默认销售规则的值 |
supportCredentialType | 成人乘客支持的证件类型 | Byte | 否 | 空:支持所有证件类型 1:仅支持身份证 |
vipCodes | 大客户编码 | String | 否 | 多个大客户编码,以逗号间隔 |
autoCreatePnr | 是否创建PNR | Byte | 否 | 0:不占座 。空:默认占座 1:默认占座 (接口已经支持,代理商根据航司管控规则自行判断,如需开通请联系对应业务经理) |
参数名称 | 中文含义 | 类型 | 必填 | 备注 |
segmentNum | 第几程 | String | 是 | 去程第一段:00,去程第二段:01,回程第一段:10,回程第二段:11 |
includeFlightNos | 包含航班 | String | 否 | 111-999,111; 最多支持500个字符,使用半角逗号分隔 私有库存 必填,只传一个,不可传多个,不可有分隔符号,范例:1234 |
excludeFlightNos | 排除航班 | String | 否 | 111-999,111; 最多支持500个字符,使用半角逗号分隔 |
operationTime | 班期 | String | 是 | 星期几政策能用;1234567 |
travelStartDate | 旅行开始日期 | String | 是 | 起飞时间大于等于该日期,政策才可销售下单。格式“yyyy-MM-dd” |
travelEndDate | 旅行结束日期 | String |
|
起飞时间小于等于该日期,政策才可销售下单。格式“yyyy-MM-dd” |
depTimeRanges | 起飞时间限制 | String | 否 | 09:20-10:20,13:30-16:50 |
cabinList | 适用舱位列表 | String | 是 | 格式:A,B,C 私有库存 必填 只传一个,不可传多个,不可有分隔符号,范例:D |
seatNum | 可售库存数 | Integer | 否 | 取值返回1-300 仅对私有库存有意义 |
参数名称 | 中文含义 | 类型 | 必填 | 备注 |
price | 价格 | String | 否 | 如果不传,淘宝根据旅行有效期、航空公司、舱位匹配FD价格 私有库存 必填 |
retentionPoint | 返点 | Float | 否 | 只保留两位小数 |
retentionMoney | 返现 | Double | 否 | 可以是正负值,正值表示给客人返现,负值表示留钱。把一代加上金额,买家支付手续费,买家服务费,都合起来算在这个字段里 |
supportAgents | 卖家id | String | 否 | 卖家id |
ticketFareType | 票面价类型 | Byte | 否 | 可为空 0:指定票面价 1:Y舱折扣 2:系统运价FD和NFD 3:系统运价仅FD 4:系统运价仅NFD |
ticketFareDiscount | 票面价折扣 | Byte | 否 | 票面类型使用Y舱折扣时必填 空或折扣值(30,表示3折) |
ticketFareRule | 票面价进位规则 | Byte | 否 | 票面类型使用Y舱折扣时必填 空:不处理 0:个位进整到十位,即984->990 1:个位舍位,即984->980 2:个位四舍五入,即984->980,985->990 |
useSalePrice | 票面价是否使用销售价 | Byte | 否 | 空:不处理,票面价仍然是票面价 1:用销售价代替票面价 |
retentionPointType | 销售价返点类型 | Byte | 否 | 空:不处理 1:Y舱价格返点 |
salePriceRule | 销售价进位规则 | Byte | 否 | 空:不处理 0:个位进整到十位,即984->990 1:个位舍位,即984->980 2:个位四舍五入,即984->980,985->990 |
Http Header { Accept:*/* Accept-Encoding:gzip, deflate Accept-Language:zh-CN,zh;q=0.8,en;q=0.6 Connection:keep-alive Content-Length:1246 Content-Type:text/plain channelId:10011 userName:test timestamp:2015-05-04 18:32:40 userKey:F5B630C54B22E6353B627D99B0CCB63A } Http Body { "success":true, "deleteIds": "36525562,36525563", "lastModifiedTime": "2013-12-20 03:14:00", "lastOuterId": "36586989", "agentSubName":"test", "deletePolicys":[ { "depAirport":"SYX", "airline":"SC" } ], "policyDOs": [ { "airline": "ZH", "arrAirport": "CKG", "contentEI": "", "depAirport": "WUX", "earliestIssueDays": -1, "excludeArrAirports": "", "excludeDepAirports": "", "invoiceType": 1, "isChange": false, "isIssue": false, "isRefund": false, "isSupportCodeShare": false, "isUpgrade": false, "lastestIssueDays": -1, "maxStayTime": 0, "memo": "", "minStayTime": 0, "needSwitchPNR": false, "outerId": "36586536", "prices": [ { "price": "", "retentionMoney": 0, "retentionPoint": 5.8, "supportAgents": "" } ], "refundBaseType": 0, "refundPriceInfo": "", "refundTime": "{'1':'00:00-23:29','2':'00:00-23:29','3':'00:00-23:29','4':'00:00-23:29','5':'00:00-23:29','6':'00:00-23:29','7':'00:00-23:29'}", "refundType": 0, "saleEndDate": "2013-12-31", "saleStartDate": "2013-11-01", "segments": [ { "cabinList": "Y,B,M,H,K,L,J,Q,Z,G,V,W", "depTimeRanges": "", "excludeFlightNos": "", "includeFlightNos": "9562-9562", "operationTime": "1234567", "segmentNum": "00", "travelEndDate": "2013-12-31", "travelStartDate": "2013-09-27" } ], "supplierId": "", "supplierOfficeId": "PEK470", "timestamp": 1387480440000, "tripType": 0, "workTime": "{'1':'08:00-12:00,13:00-21:00','2':'00:00-23:59','3':'00:00-23:59','4':'00:00-23:59','5':'00:00-23:59','6':'00:00-23:59','7':'00:00-23:59'}" } }
正常逻辑响应报文
{ "success": false, "requestId": "100016566721106" }
异常逻辑响应报文
{ "success": false, "errorMsg": "userKey校验不通过" }