文档中心 > 景区门票

门票码平台接入说明

更新时间:2024/10/11 访问次数:10078

一、使用须知

1.需要在阿里开放平台(https://open.taobao.com/),注册appKey,应用标签选择“飞猪-新业务”;
2.需要使用appKey和appSecret访问;
3.接口仅以post请求访问;
4.以下通知接口API加签规则:https://fliggy.open.taobao.com/doc.htm?docId=119474&docType=1
5.SDK调用试例地址: https://open.taobao.com/docV3.htm?spm=a219a.7386653.0.0.7aa5669aaJixbr&docId=101618&docType=1
6.接口后带有(通知),代表飞猪往外部调用系统商,需要系统商提供接口URL和访问账号及秘钥,且需要做幂等(除订单查询);
接口后带有(TOP),代表系统商可以通过TOP平台进行消息回调。
7.线上回调地址:https://eco.taobao.com/router/rest。
预发回调地址:https://pre-gw.api.taobao.com/top/router/rest。(联调测试过程中使用预发回调地址)

二、通用定义

通用入参

分页参数

参数 类型 备注
pageNo Integer 当前页码,默认为1,范围[1,∞)
pageSize Integer 每页条数,默认为20,范围[1,100]

通用返回

参数 类型 备注
code Integer 通用错误码
message String 描述信息
data 返回数据集,有下面四种情况:
无数据,这时没有data字段,表示接口的返回值中没有结果;
数据为对象类型,表示为JSONObject,具体定义要根据接口而定;
数据为数组类型,表示为JSONArray,表示结果是一系列值,值的类型要根据接口而定;
数据为值类型,表示为具体的封装类型,如String,Integer,Long,Byte,Double等。

三、API接口定义

1.下单

接入方式:(要求系统商有能力尽量按方式一接入,即实现预下单,取消订单和订单创建3个接口)
1.实现预下单,取消订单和订单创建3个接口。
2.实现1.1和1.4
3.实现1.2、1.3、1.4
注:要求预下单,订单创建和退款通知要实现幂等

1.1校验接口(通知)

请求参数

字段 类型 必填 长度 说明
itemCode String 20 商品编码,商品上填写的外部通知code
travelDate String 50 出行日期yyyy-MM-dd
startTime String 50 开始时间HH:MM
endTime String 50 结束时间HH:MM
priceUnit Object 价格信息
travellers List 出行人,实名制景区必填
contact TicketTravellerDTO 取票人
property Integer 票性质
outSessionId String 外部场次id
orderId Long 飞猪订单id

价格信息

字段 类型 必填 长度 说明
price Long 10 单价金额,分
totalPrice Long 10 总价,分
quantity Integer 5 订单件数

TicketTravellerDTO——出行人/取票人信息

字段 类型 必填 长度 说明
name String 50 姓名
certificateType Integer 5 证件类型
certificateId String 50 证件号,取票人必填,实名制景区也必填
mobile String 20 电话
email String 100 邮箱

证件类型: 0:身份证 1:护照 3:军官证 4:回乡证 5:台胞证 6:港澳通行证 7:国际海员 8:外国人永久居留(身份)证 9:其他证件 10:警官证 11:士兵证 12:台湾通行证 13:入台证 14:户口本 15:出生证明 16:驾驶证 17:港澳居民居住证 18台湾居民居住证
票性质:0:成人票 1:儿童票 2:亲子票(1大1小) 3:家庭票(2大1小) 4:大学生票 5:双人票 6:情侣票 7:老人票 8:家庭票(2大2小) 9:中学生票 10:学生票 11:中/高考考生特惠票 12:女士票 13:男士票 14:教师票 15:军人票 16:残疾票 17:三人票 18:团队票 19:标准票 20:全价票 21:半价票 22:参观票 23:优惠票 24:特定日票 25:婴幼儿票 26:陪同票 27:亲子票(1大2小) 28:青少年票 29:老人票(65岁及以上) 30:优待票(宗教人士) 31:老人票(60岁-64岁) 32:优待票

返回参数

字段 类型 必填 说明
code Integer 返回码 成功:0 失败:其他
message String 返回信息,可在前端进行透出

请求示例

{ "itemCode": "PFT20200716387974", "travelDate": "2020-12-12", "startTime": "08:00", "endTime": "12:00", "priceUnit": { "price": 2100, "totalPrice": 4200, "quantity": 2, }, "travellers": [ { "name": "张三", "certificateType": 1, "certificateId": "35058319990909123x", "email": "xxx@qq.com" } ], "contact": { "name": "张三", "mobile": 15011111111 } }

返回示例

{ "code": 0 }

1.2预下单(试单)接口(通知)

实现1.2,必须实现1.3来释放占用库存
1.2和1.1接口的区别:试单会按不同系统商的能力返回不同的结果。
系统商支持锁定库存:会返回锁库存的申请码-tokenCode
系统商不支持锁定库存:返回2.1的结果

请求参数

字段 类型 必填 长度 说明
itemCode String 20 商品编码,商品上填写的外部通知code
travelDate String 50 出行日期yyyy-MM-dd
startTime String 50 开始时间HH:MM
endTime String 50 结束时间HH:MM
priceUnit Object 价格信息
travellers List 出行人,实名制景区必填
contact TicketTravellerDTO 取票人
property Integer 票性质
outSessionId String 外部场次id
orderId Long 飞猪订单id

价格信息

字段 类型 必填 长度 说明
price Long 10 单价金额,分
totalPrice Long 10 总价,分
quantity Integer 5 订单件数

TicketTravellerDTO——出行人/取票人信息

字段 类型 必填 长度 说明
name String 50 姓名
certificateType Integer 5 证件类型
certificateId String 50 证件号,取票人必填,实名制景区也必填
mobile String 20 电话
email String 100 邮箱

证件类型: 0:身份证 1:护照 3:军官证 4:回乡证 5:台胞证 6:港澳通行证 7:国际海员 8:外国人永久居留(身份)证 9:其他证件 10:警官证 11:士兵证 12:台湾通行证 13:入台证 14:户口本 15:出生证明 16:驾驶证 17:港澳居民居住证 18台湾居民居住证
票性质:0:成人票 1:儿童票 2:亲子票(1大1小) 3:家庭票(2大1小) 4:大学生票 5:双人票 6:情侣票 7:老人票 8:家庭票(2大2小) 9:中学生票 10:学生票 11:中/高考考生特惠票 12:女士票 13:男士票 14:教师票 15:军人票 16:残疾票 17:三人票 18:团队票 19:标准票 20:全价票 21:半价票 22:参观票 23:优惠票 24:特定日票 25:婴幼儿票 26:陪同票 27:亲子票(1大2小) 28:青少年票 29:老人票(65岁及以上) 30:优待票(宗教人士) 31:老人票(60岁-64岁) 32:优待票

返回参数

字段 类型 必填 说明
code Integer 返回码 成功:0 失败:其他
message String 返回信息,可在前端进行透出
data Object 返回对象
–>outOrderId String 外部订单号outOrderId
–>tokenCode String 申请码

请求示例

{ "orderId": 1348110290636535365, "itemCode": "PFT20200716387974", "travelDate": "2020-12-12", "startTime": "08:00", "endTime": "12:00", "priceUnit": { "price": 2100, "totalPrice": 4200, "quantity": 2, }, "travellers": [ { "name": "张三", "certificateType": 1, "certificateId": "35058319990909123x", "email": "xxx@qq.com" } ], "contact": { "name": "张三", "mobile": 15011111111 } }

返回示例

{ "code": 0, "data": { "outOrderId": "2392342", "tokenCode": "2392342" } }

1.3取消预下单(试单)接口(通知)

实现1.2,必须实现1.3来释放占用库存,没有实现1.2则该接口非必接

请求参数

字段 类型 必填 长度 说明
orderId Long 飞猪订单编号
outOrderId String 50 外部订单号
tokenCode String 50 申请码

返回参数

字段 类型 必填 说明
code Integer 返回码 成功:0 失败:其他
message String 返回信息,可在前端进行透出

请求示例

{"orderId": "PFT20200716387974","tokenCode": "xxxxx"}

返回示例

{"code": 0}

1.4订单创建接口(通知)

现已支持同步发码能力,即在订单创建返回参数带上凭证信息。

请求参数

字段 类型 必填 长度 说明
itemCode String 20 商品编码,商品上填写的外部通知code
travelDate String 50 出行日期yyyy-MM-dd
startTime String 50 开始时间HH:MM
endTime String 50 结束时间HH:MM
priceUnit Object 价格信息
travellers List 出行人,实名制景区必填
contact TicketTravellerDTO 取票人
property Integer 票性质
outSessionId String 外部场次id
outOrderId String 50 外部订单id
tokenCode String 50 申请码
orderId Long 飞猪订单id

价格信息

字段 类型 必填 长度 说明
price Long 10 单价金额,分
totalPrice Long 10 总价,分
quantity Integer 5 订单件数

TicketTravellerDTO——出行人/取票人信息

字段 类型 必填 长度 说明
name String 50 姓名
certificateType Integer 5 证件类型
certificateId String 50 证件号,取票人必填,实名制景区也必填
mobile String 20 电话
email String 100 邮箱

证件类型: 0:身份证 1:护照 3:军官证 4:回乡证 5:台胞证 6:港澳通行证 7:国际海员 8:外国人永久居留(身份)证 9:其他证件 10:警官证 11:士兵证 12:台湾通行证 13:入台证 14:户口本 15:出生证明 16:驾驶证 17:港澳居民居住证 18台湾居民居住证
票性质:0:成人票 1:儿童票 2:亲子票(1大1小) 3:家庭票(2大1小) 4:大学生票 5:双人票 6:情侣票 7:老人票 8:家庭票(2大2小) 9:中学生票 10:学生票 11:中/高考考生特惠票 12:女士票 13:男士票 14:教师票 15:军人票 16:残疾票 17:三人票 18:团队票 19:标准票 20:全价票 21:半价票 22:参观票 23:优惠票 24:特定日票 25:婴幼儿票 26:陪同票 27:亲子票(1大2小) 28:青少年票 29:老人票(65岁及以上) 30:优待票(宗教人士) 31:老人票(60岁-64岁) 32:优待票

返回参数

字段 类型 必填 说明
code Integer 返回码 成功:0 失败:其他
message String 返回信息,可在前端进行透出
data Object 返回对象
–>outOrderId String 外部订单号outOrderId
–>tokenCode String 申请码
–>sendCodeType Integer 发码类型:
1:同步发码(注:实现同步发码,依然需要接发码回调接口的)
2:异步发码
注:可不传,飞猪会通过是否有传凭证信息判断是同步还是异步
–>voucherInfos List<object> 凭证信息列表

凭证信息

字段 类型 必填 说明
type Integer 凭证类型:
1:1码1刷(3张成人票3个码)
2:1码多刷(3张成人票1个码)
ticketAvailableTimes Integer 每张票可使用次数
confirmCode String 确认码(用户核销的凭证,一般为数字或字母组合)
url String 凭证URL(二维码图片url)
supportCode String 辅助码(一般为数字或字母组合)
pdfUrl String pdf凭证的url链接

请求示例

{"itemCode":"123456","travelDate":"2022-02-24","priceUnit":{"price":1,"totalPrice":3,"quantity":3},"contact":{"certificateType":0,"name":"张三","certificateId":"35058319990909121x","mobile":"15111111111"},"travellers":[{"certificateType":0,"name":"张三","certificateId":"35058319990909122x","mobile":"15111111111"},{"certificateType":0,"name":"李四","certificateId":"35058319990909124x","mobile":"15111111111"},{"certificateType":0,"name":"王五","certificateId":"35058319990909125x","mobile":"15111111111"}],"property":0,"realNameSystem":1,"mainOrderId":2486868014839682466,"orderId":3000006216400120239,"sellerId":263687635,"supplierId":239,"evn":false,"accountId":"NONE"}

返回示例

{"code": 0, "message": "success", "data": {"outOrderId": "TI20220224144714371", "tokenCode": "ea9a70639345446fa611125c5c7bd410", "voucherInfos": [{"type": 1, "confirm_code": "8d74dfaf8c3c41b29006b24254f30bf1&22", "url": "http://wwws.xx.com/1.png", "quantity": 1}, {"type": 1, "confirm_code": "ebb5e5f5e00941da8f3b1c4621fc50d9&22", "url": "http://wwws.xx.com/3.png", "quantity": 1}, {"type": 1, "confirm_code": "0f85ddc1f4d0442cb17b1b5ee2f8db36&22", "url": "http://wwws.xx.com/2.png", "quantity": 1}]}}

2.成功发码回调接口(TOP)

必接,推荐同步发码,依赖上游的系统商可以异步发码
API名称: alitrip.travel.ticket.order.create
接口文档:https://open.taobao.com/api.htm?spm=a219a.7386653.0.0.c113669aSlydXy&docId=53357&docType=2
注意:
1.返回参数里 confirmCode 确认码,如果没有返回确认码,又是实名制的,确认码默认outOrderId_序列号(如 t123_1),序列号为凭证信息列表的index。
2.发码回调接口里,二维码图片传url。
3.发码回调接口要确保调用接口之后,飞猪端的返回参数是成功。如果返回是失败,请做好异常处理机制,并重试(定时重试即可,建议2-3分钟重试一次,重试3-5次)。
4.不要在1.4订单创建接口调用时,同步调用发码回调接口,建议是在订单创建接口调用成功之后,延迟2秒再调用发码回调接口。

3.创建核销回调接口(TOP)

必接
API名称: taobao.travel.ticket.order.verify
接口文档:https://open.taobao.com/api.htm?docId=50607&docType=2
核销回调接口,used_quantity字段的值,要根据write_off_type的值进行处理。
1.write_off_type的值为 0 或者不传,则used_quantity的值为当次操作的核销数量。举例:一笔订单里购买了3张门票,第一次核销了1张,那核销回调里used_quantity的值为1;第二次又核销了1 张,核销回调里used_quantity的值还是1,而不是2。
2.write_off_type的值为 1 时,则used_quantity的值为已核销的总数量。举例:一笔订单里购买了3张门票,第一次核销了1张,那核销回调里used_quantity的值为1;第二次又核销了1 张,核销回调里used_quantity的值是2。

4.退款(注:码平台不支持部分退)

方试一:退款接口
1.适用于同步处理退款申请的系统商。
2.收到退款接口的请求之后,能在接口超时之前完成审核,(除了遇到系统异常的情况)接口返回参数里,refundStatus返回值为1 -已退款,或者2 -已拒绝,code值为0 -成功。

方式二:退款接口 + 退款回调接口
1.适用于异步处理退款申请或者需要人工审核退款申请的系统商。
2.收到退款接口的请求之后,(除了遇到系统异常的情况)接口返回参数里,refundStatus返回值为3 -审核中,code值为0 -成功。
3.待系统审核完成或人工审核完成之后,调用退款回调接口,告知飞猪退款处理结果。
4.退款回调接口要确保调用接口之后,飞猪端的接口返回参数是成功。如果返回是失败,请做好异常处理机制,并重试(定时重试即可,建议5-10分钟重试一次),直到收到返回成功。

4.1发起退款接口(通知)

必接

请求参数

字段 类型 必填 长度 说明
orderId Long 飞猪订单编号
outOrderId String 50 外部订单号
refundFee Long 退款金额【单位:分】
refundType Integer 退款类型:1全额退款退单;3部分退款,默认是1
refundNum Integer 退款份数(部分退必填)
fliggyRefundFlowId String 飞猪退款流水id(部分退必填)
refundVoucherConfirmCodes List 退款凭证code列表,部分退必填

返回参数

字段 类型 必填 说明
code Integer 返回码 成功:0 失败:其他
message String 返回信息,可在前端进行透出
data Object 返回对象
–>orderId Long 飞猪订单号
–>refundStatus Integer 1. 已退款(相当于退款回调的同意退款) 2. 已驳回(退款回调的拒绝退款)3. 审核中(需要审核,会回调),其中1和2是不会回调,3会回调
–>refundFailureReason String 2退票失败,需要填写失败原因

请求示例

{ "orderId":12345678901, "outOrderId":23456789012 }

返回示例

返回成功: { "code": 0, "message": "已部分核销,无法退票", "data": { "orderId":12345678901, "refundStatus":2 "refundFailureReason":"重复购买" } }

4.2退款结果回调接口(TOP)

API名称: taobao.travel.ticket.order.refund
接口文档:https://open.taobao.com/api.htm?docId=50646&docType=2

4.3查询退款单详情(通知)

必接

请求参数

字段 类型 必填 长度 说明
orderId Long 飞猪订单编号
outOrderId String 50 外部订单号
fliggyRefundFlowId String 飞猪退款流水id

返回参数

字段 类型 必填 说明
code Integer 返回码 成功:0 失败:其他
message String 返回信息,可在前端进行透出
data List 返回对象
–>orderId Long 飞猪订单号
–>refundStatus Integer 1. 已退款(相当于退款回调的同意退款) 2. 已驳回(退款回调的拒绝退款)3. 审核中(需要审核,会回调),其中1和2是不会回调,3会回调,4部分退款成功
–>refundType Integer 退款类型:1全额退款退单;3部分退款,默认是1
–>refundNum Integer 退款份数(部分退必填)
–>fliggyRefundFlowId String 飞猪退款流水id(部分退必填)
–>refundVoucherConfirmCodes List 退款凭证code列表,部分退必填

请求示例

{ "orderId":12345678901, "outOrderId":23456789012,"fliggyRefundFlowId":123123 }

返回示例

返回成功: { "code": 0, "message": "已部分核销", "data": [{ "orderId":12345678901, "refundStatus":2 ,"refundFailureReason":"重复购买","refundType":"","refundQuantity":1,"fliggyRefundFlowId":123123,"refundVoucherConfirmCodes":["123123","34567"] }]}

5.门票订单查询查询接口(通知)

必接,用来同步数据状态
订单查询接口,返回完整的订单信息,包括退款状态(如有申请退款)和凭证二维码信息(图片或图片url)

请求参数

字段 类型 必填 长度 说明
orderId Long 飞猪订单编号
outOrderId String 50 外部订单号

返回参数

字段 类型 必填 说明
code Integer 返回码 成功:0 失败:其他
message String 返回信息,可在前端进行透出
data Object 返回对象
–>orderId Long 飞猪订单编号
–>outOrderId String 第三方订单编号
–>outOrderPayStatus Integer 支付状态(1已支付/2未支付/3部分支付)
–>outOrderStatus Integer 订单状态(1正常/2取消)
–>refundStatus Integer 1. 已退款(相当于退款回调的同意退款) 2. 已驳回(退款回调的拒绝退款)3. 审核中(需要审核,会回调),其中1和2是不会回调,3会回调。未退款则返回null
–>refundFailureReason String refundStatus取值2时代表退票失败,需要填写失败原因。否则返回null
–>refundSuccessNum Integer 退款成功份数
–>voucherInfos List<object> 凭证信息列表

凭证信息

字段 类型 必填 说明
type Integer 凭证类型:
1:1码1刷(3张成人票3个码)
2:1码多刷(3张成人票1个码)
ticketAvailableTimes Integer 每张票可使用次数
confirmCode String 确认码(用户核销的凭证,一般为数字或字母组合)
url String 凭证URL(二维码图片url)
supportCode String 辅助码(一般为数字或字母组合)
sendStatus Integer 凭证发送状态(1已发送/0未发送)
useStatus Integer 凭证使用状态(0未使用/1已经使用/2部分使用)
ticketUsageNums Integer 票已使用数量
pdfUrl String pdf凭证的url链接
refundSuccessNum Integer 退款成功份数
refundingNum Integer 退款中份数

请求示例

{ "orderId":12345678901, "outOrderId":"2345678901" }

返回示例

{ "code": 0, "message": "", "data": { "orderId": false, "outOrderId": "111", "outOrderStatus": 1, "outOrderPayStatus": 1, "voucherInfos": [{ "type": 1, "sendStatus": 1, "useStatus": 1, "ticketAvailableTimes": 2, "ticketUsageNums": 1, "confirmCode": "123456", "img": [01010101001], "url": "//image", "supportCode": "123445" }] } }

6.系统配置

6.1. 心跳接口(通知)

6.2. 商家账号确认接口(通知)

7.景点

7.1.景点数据查询

API名称:taobao.alitrip.travel.baseinfo.scenics.get
接口文档:https://fliggy.open.taobao.com/api.htm?docId=25781&docType=2

7.2.门票景点绑定

景点绑定用于商家管理(标准景点&商家景点绑定)
API名称:alitrip.ticket.scenic.bind
接口文档:https://fliggy.open.taobao.com/api.htm?docId=27946&docType=2

四、通用返回码

/**
* 成功返回
*/
SUCCESS(Boolean.TRUE, "0", "success", "成功",ErrorCodeTypeEnum.SUCCESS),

/**
* 系统级错误
*/
SERVICE_ERROR(Boolean.FALSE, "500", "System exception, please contact the administrator", "系统异常,请联系管理员",ErrorCodeTypeEnum.SYE_ERROR),
SENTINEL_LIMITING(Boolean.FALSE,"509","The system is busy, triggering current limit, please try again later", "系统繁忙,触发限流,请稍后重试!",ErrorCodeTypeEnum.SYE_ERROR),

GET_ALLOTMENT_EXCEPTION(Boolean.FALSE,"15002","get_allotment_exception","获取库存异常",ErrorCodeTypeEnum.SYE_ERROR),
DSL_NOT_FOUNT_SYSTEM_CONFIGURE(Boolean.FALSE, "15005", "dsl_not_fount_system_configure", "DSL未找到系统商配置信息或能力信息",ErrorCodeTypeEnum.SYE_ERROR),
HSF_TIMEOUT_EXCEPTION(Boolean.FALSE, "15007", "hsf_timeout_exception", "HSF超时请重试!",ErrorCodeTypeEnum.SYE_ERROR),
PARAMETER_CHECK_EXCEPTION(Boolean.FALSE, "20001", "parameter check exception", "参数校验异常",ErrorCodeTypeEnum.SYE_ERROR),
SUPPLIER_NOT_EXISTENT(Boolean.FALSE, "20002", "supplier not existent", "系统商不存在或不可用",ErrorCodeTypeEnum.SYE_ERROR),
SUPPLIER_CONFIG_SEARCH_EXCEPTION(Boolean.FALSE, "20004", "supplier config search exception", "获取系统商配置信息异常",ErrorCodeTypeEnum.SYE_ERROR),
SUPPLIER_ABILITY_NOT_EXISTENT(Boolean.FALSE, "20005", "supplier ability not existent", "系统商能力不存在或当前账号已经失效",ErrorCodeTypeEnum.SYE_ERROR),
SUPPLIER_DATA_NOT_EXISTENT(Boolean.FALSE, "20006", "supplier response data not existent", "系统商响应信息有误或为空",ErrorCodeTypeEnum.SYE_ERROR),
SELLER_NOT_EXIST(Boolean.FALSE,"20007","seller not exist","卖家账号未配置或未同步",ErrorCodeTypeEnum.SELLER_ERROR),
XML_BEAN_CONVERSION_EXCEPTION(Boolean.FALSE, "20008", "supplier response data not existent", "xml与bean转换异常",ErrorCodeTypeEnum.SYE_ERROR),
ENCRYPTION_EXCEPTION(Boolean.FALSE, "20009", "encryption error", "加密异常",ErrorCodeTypeEnum.SYE_ERROR),
CORDING_EXCHANGE_EXCEPTION(Boolean.FALSE,"20010","cording exchange exception","编码转换异常",ErrorCodeTypeEnum.SYE_ERROR),
TOKEN_EXPIRE(Boolean.FALSE,"20011","token expire","token已过期或已失效",ErrorCodeTypeEnum.SYE_ERROR),
CONFIRM_IMG_CONVERSION_EXCEPTION(Boolean.FALSE,"20012","confirm img exception","确认码转二维码转换异常",ErrorCodeTypeEnum.SYE_ERROR),
GENERATE_SIGNATURE_ERROR(Boolean.FALSE,"20015","generate signature error","生成签名异常",ErrorCodeTypeEnum.SYE_ERROR),
DATE_FORMAT_CONVERSION_ERROR(Boolean.FALSE,"20016","date_format_conversion_error","日期格式转换异常",ErrorCodeTypeEnum.SYE_ERROR),
RESPONSE_CONTENT_DECRYPT_EXCEPTION(Boolean.FALSE,"20017","response content decrypt exception","响应内容解密异常",ErrorCodeTypeEnum.SYE_ERROR),
DSL_GET_PARAM_ERROR(Boolean.FALSE,"20021","DSL get param error","DSL获取参数异常",ErrorCodeTypeEnum.SYE_ERROR),
DSL_CONFIG_ERROR(Boolean.FALSE,"20022","DSL config error","DSL参数配置错误",ErrorCodeTypeEnum.SYE_ERROR),
SUPPLIER_SERVICE_PARAM_EMPTY(Boolean.FALSE,"20023","supplier service param empty","自定义中间层未初始化SET",ErrorCodeTypeEnum.SYE_ERROR),


/**
* 直连前置参数校验或卖家维度错误 业务错误 例如断言抛出 或者 resultException抛出 需要通知交易 建议以40开头
* TODO 没有涵盖的业务提示自行添加
*/
SELLER_ACCOUNT_UNAUTHORIZED_OR_CONFIG_ERROR(Boolean.FALSE, "40001", "seller_account_unauthorized_or_config_error", "商家账号未授权或配置错误",ErrorCodeTypeEnum.SELLER_ERROR),
SUPPLIER_ACCOUNT_NOT_CONFIGURED(Boolean.FALSE, "40002", "Account_information_of_system_provider_not_configured", "未配置对应的系统商账户信息",ErrorCodeTypeEnum.SELLER_ERROR),
THE_KEY_AND_COOPERATION_ID_DO_NOT_EXIST_OR_THE_SPLICING_IS_ILLEGAL(Boolean.FALSE, "40003", "The_key_and_cooperation_Id_do_not_exist_or_the_splicing_is_illegal", "密钥和合作ID不存在或拼接不合法",ErrorCodeTypeEnum.BIZ_ERROR),
COMMODITY_PURCHASE_LIMIT(Boolean.FALSE, "40004", "commodity purchase limit", "商品限购",ErrorCodeTypeEnum.SELLER_ERROR),
ORDER_NUMBER_CANNOT_BE_EMPTY(Boolean.FALSE, "40006", "Order_number_cannot_be_empty", "订单件数不许为空",ErrorCodeTypeEnum.BIZ_ERROR),
EXTERNAL_ORDER_NUMBER_IS_EMPTY(Boolean.FALSE, "40007", "External_order_number_is_empty", "外部订单号不可为空",ErrorCodeTypeEnum.BIZ_ERROR),
THE_NATURE_OF_THE_TICKET_CANNOT_BE_EMPTY(Boolean.FALSE, "40009", "The_nature_of_the_ticket_cannot_be_empty", "票性质不许为空",ErrorCodeTypeEnum.BIZ_ERROR),
THE_START_AND_END_TIME_OF_THE_TICKET_IS_EMPTY(Boolean.FALSE, "40010", "The_start_and_end_time_of_the_ticket_is_empty", "场次票开始结束时间为空",ErrorCodeTypeEnum.BIZ_ERROR),
TICKET_ID_IS_EMPTY(Boolean.FALSE, "40011", "Ticket_ID_is_empty", "票品ID不可为空",ErrorCodeTypeEnum.BIZ_ERROR),
REAl_NAME_SYSTEM_IS_EMPTY(Boolean.FALSE, "40012", "real_name_system_is_empty", "实名制字段不能为空",ErrorCodeTypeEnum.BIZ_ERROR),
ITEMCODE_FORMAT_ERROR(Boolean.FALSE, "40014", "itemCode format error", "商品编码格式错误",ErrorCodeTypeEnum.SELLER_ERROR),
SCENIC_NOT_EXIST(Boolean.FALSE,"40018","scenic not exist","查询健康码获取景区信息失败",ErrorCodeTypeEnum.BIZ_ERROR),
SEARCH_HEALTH_CODE_FAIL(Boolean.FALSE,"40019","search health code fail","查询健康码失败",ErrorCodeTypeEnum.BIZ_ERROR),
SESSION_ID_IS_EMPTY(Boolean.FALSE,"40021","session id is empty","场次id不许为空",ErrorCodeTypeEnum.BIZ_ERROR),
ORDER_NUMBER_IS_EMPTY(Boolean.FALSE, "40022", "order_number_is_empty", "飞猪订单号不可为空",ErrorCodeTypeEnum.BIZ_ERROR),
SUPPLIER_SELLER_STATUS_FAILED(Boolean.FALSE,"40023","The merchant account status is invalid, please contact the operator","商家账号状态失效,请联系运营人员",ErrorCodeTypeEnum.BIZ_ERROR),

/**
* 日期区域
*/
START_DATE_OR_END_DATE_FORMAT_ERROR(Boolean.FALSE, "41001", "start_date_or_end_date_format_error", "开始日期或者结束日期格式有误",ErrorCodeTypeEnum.BIZ_ERROR),

/**
* 联系人出行人区域
*/
CONTACT_CERTIFICATE_ID_OR_TYPE_EMPTY(Boolean.FALSE, "42002", "contact_certificate_id_or_type_empty", "联系人证件号或者证件类型为空",ErrorCodeTypeEnum.SELLER_ERROR),
TRAVELER_CERTIFICATE_ID_OR_TYPE_EMPTY(Boolean.FALSE, "42003", "traveler_certificate_id_or_type_empty", "出行人证件号或者证件类型为空",ErrorCodeTypeEnum.SELLER_ERROR),
TRAVELER_INFORMATION_CANNOT_BE_EMPTY_UNDER_REAL_NAME_SYSTEM(Boolean.FALSE, "42004", "Traveler_information_cannot_be_empty_under_real_name_system", "实名制下出行人信息不许为空",ErrorCodeTypeEnum.SELLER_ERROR),
WRONG_NUMBER_OF_TRAVELERS(Boolean.FALSE, "42005", "wrong_number_of_travelers", "出行人数有误",ErrorCodeTypeEnum.BIZ_ERROR),
UNSUPPORTED_CERTIFICATE_TYPE_OR_EMPTY(Boolean.FALSE, "42006", "Unsupported_certificate_type_or_empty", "不支持的证件类型或为空",ErrorCodeTypeEnum.SELLER_ERROR),
TRAVELER_NOT_EXIST(Boolean.FALSE, "42007", "traveler_not_exist", "出行人信息不存在",ErrorCodeTypeEnum.BIZ_ERROR),

/**
* 价格库存区域
*/
PRICE_UNIT_IS_EMPTY(Boolean.FALSE, "43001", "price unit is empty", "价格信息为空",ErrorCodeTypeEnum.SELLER_ERROR),
PRODUCT_SEARCH_EXCEPTION(Boolean.FALSE, "43002", "The product inventory or price queried by the system vendor does not exist", "系统商查询产品库存或价格不存在",ErrorCodeTypeEnum.BIZ_ERROR),
ERROR_IN_PRICE_VERIFICATION(Boolean.FALSE, "43003", "Error_in_price_verification", "价格校验有误",ErrorCodeTypeEnum.BIZ_ERROR),

/**
* 系统商返回信息有误 业务通知 一般情况为相应数据有误或为空 需要联系系统商解决 建议50开头
* TODO 正向链路
*
*/
SUPPLIER_RESPONSE_NOT_EXISTENT(Boolean.FALSE,"50001","supplier response data not existent","系统商响应数据不存在",ErrorCodeTypeEnum.SUPPLIER_ERROR),
SUPPLIER_RESPONSE_TYPE_ERROR(Boolean.FALSE,"50002","supplier response type error","系统商响应数据类型有误",ErrorCodeTypeEnum.SUPPLIER_ERROR),
GET_TOKEN_RESOLUTION_EXCEPTION(Boolean.FALSE,"50003","Get_token_resolution_exception","获取token解析异常",ErrorCodeTypeEnum.SUPPLIER_ERROR),
ABNORMAL_ORDER_STATUS_RETURNED(Boolean.FALSE,"50005","Abnormal_order_status_returned","系统商返回订单状态不存在",ErrorCodeTypeEnum.SUPPLIER_ERROR),
TIME_FORMAT_CONVERSION_FAILED(Boolean.FALSE,"50007","Time_format_conversion_failed","时间格式转换失败",ErrorCodeTypeEnum.SUPPLIER_ERROR),
SYSTEM_VENDOR_RESPONSE_DATA_JSON_TO_BEAN_EXCEPTION(Boolean.FALSE,"50008","System_vendor_response_data_JSON_to_bean_exception","系统商响应数据json to bean异常",ErrorCodeTypeEnum.SUPPLIER_ERROR),
OUT_SESSION_ID_IS_EMPTY(Boolean.FALSE, "50009", "out_session_id_is_empty", "系统商响应外部场次id为空",ErrorCodeTypeEnum.SUPPLIER_ERROR),
OUT_ORDER_ID_IS_EMPTY(Boolean.FALSE, "50010", "out_order_id_is_empty", "系统商响应外部订单id为空",ErrorCodeTypeEnum.SUPPLIER_ERROR),
SYSTEM_QUOTIENT_STATUS_HTTP_RESPONSE_SUCCESS(Boolean.FALSE,"50011","System_quotient_status_HTTP_response_not_success","http状态响应非成功",ErrorCodeTypeEnum.SUPPLIER_ERROR),
RESPONSE_ORDER_STATUS_ERROR(Boolean.FALSE, "50012", "response order status error", "系统商响应外部订单状态有误",ErrorCodeTypeEnum.SUPPLIER_ERROR),
SHENDA_SYSTEM_EXCEPTION(Boolean.FALSE,"50013","shenda system exception","深大系统异常{}",ErrorCodeTypeEnum.SUPPLIER_ERROR),
TICKET_ID_EMPTY(Boolean.FALSE,"50014","ticket_id_empty","票id为空",ErrorCodeTypeEnum.SUPPLIER_ERROR),
RESPONSE_CERTIFICATE_EMPTY(Boolean.FALSE,"50015","response certificate empty","系统商响应凭证信息为空",ErrorCodeTypeEnum.SUPPLIER_ERROR),
MERCHANT_ACCOUNT_TO_DISABLE(Boolean.FALSE,"50016","merchant_account_to_disable","商家账号以停用请联系商家进行处理",ErrorCodeTypeEnum.SELLER_ERROR),
HTTP_CLIENT_RESPONSE_ERROR(Boolean.FALSE,"50021","http_client_response_error","httpClient响应状态有误",ErrorCodeTypeEnum.SUPPLIER_ERROR),
SYSTEM_PROVIDER_REQUEST_TIMEOUT(Boolean.FALSE, "50022", "System_provider_request_timeout", "系统商请求超时!",ErrorCodeTypeEnum.SYE_ERROR),
SYSTEM_PROVIDER_REQUESTS_IO_EXCEPTION(Boolean.FALSE, "50023", "System_provider_requests_IO_exception", "系统商请求IO异常!",ErrorCodeTypeEnum.SYE_ERROR),
SYSTEM_PROVIDER_REQUESTS_RESPONSE_EXCEPTION(Boolean.FALSE, "50024", "System_provider_requests_IO_exception", "系统商请求响应异常!",ErrorCodeTypeEnum.SYE_ERROR),
QUERY_OUT_ORDER_INFORMATION_EXCEPTION(Boolean.FALSE, "50025", "query outOrder information exception", "外部订单查询不存在",ErrorCodeTypeEnum.SYE_ERROR),
ORDER_CREATE_FAIL(Boolean.FALSE, "50026", "order create fail in supplier", "系统商侧订单创建失败",ErrorCodeTypeEnum.SYE_ERROR),
/**
* 系统商返回信息类型的 正常业务返回 不需要做任何特殊操作 建议60开头
*/
PLEASE_DO_NOT_REPEAT_THE_APPOINTMENT(Boolean.FALSE, "60001", "please do not repeat the appointment", "已有预约记录,请勿重复预约",ErrorCodeTypeEnum.NORMAL_ERROR),
ORDER_IS_PROCESSING(Boolean.FALSE, "60002", "order is processing", "订单正在处理中,请稍后重试",ErrorCodeTypeEnum.NORMAL_ERROR),
NO_REFUNDS_ARE_ALLOWED_FOR_UNPAID_OR_USED_ORDERS(Boolean.FALSE, "60003", "no_refunds_are_allowed_for_unpaid_or_used_orders", "订单未支付或者已使用订单不允许退款",ErrorCodeTypeEnum.BIZ_ERROR),
INCOMPATIBLE_RESTRICTION_RULES(Boolean.FALSE,"60019","incompatible restriction rules","订单不符合商品限购规则",ErrorCodeTypeEnum.SELLER_ERROR),
CERTIFICATETYPE_OUT_RESTRICTION(Boolean.FALSE,"60020","certificateType out restriction","证件不符合限购规则",ErrorCodeTypeEnum.SELLER_ERROR),
CERTIFICATETYPE_REPEAT(Boolean.FALSE,"60021","certificateType repeat","证件号重复",ErrorCodeTypeEnum.BIZ_ERROR),
HEALTH_CODE_VERIFICATION_FAILED(Boolean.FALSE,"60043","health code verification failed","健康码校验未通过",ErrorCodeTypeEnum.SYE_ERROR),
ORDER_ALREADY_CREATE(Boolean.FALSE,"61001","order already create","在系统商侧订单已经预约过",ErrorCodeTypeEnum.SYE_ERROR),

/**
* 业务异常 需特殊处理
*/
PRODUCT_INFORMATION_EXCEPTION(Boolean.FALSE, "65001", "product information exception", "产品信息异常",ErrorCodeTypeEnum.SELLER_ERROR),
QUERY_ORDER_INFORMATION_EXCEPTION(Boolean.FALSE, "65002", "query order information exception", "直连订单查询不存在",ErrorCodeTypeEnum.SYE_ERROR),
OUT_OF_STOCK_EXCEPTION(Boolean.FALSE, "65003", "The inventory of this product is insufficient on that day, please select another date.", "该产品当日库存不足,请选择其它日期。",ErrorCodeTypeEnum.SELLER_ERROR),
INSUFFICIENT_ACCOUNT_DEPOSIT_EXCEPTION(Boolean.FALSE, "65004", "The account balance of the merchant is insufficient, please choose other goods to buy!", "商家账号余额不足,请选择其它商品购买!",ErrorCodeTypeEnum.SELLER_ERROR),
ITEMCODE_NOT_FOUND(Boolean.FALSE, "65005", "Product code does not exist or has been taken off the shelf or not authorized", "商品编码不存在或已下架或未授权",ErrorCodeTypeEnum.SELLER_ERROR),
THE_ORDER_HAS_BEEN_CANCELLED_AND_CANNOT_BE_PAID_PLEASE_TRY_AGAIN_LATER(Boolean.FALSE, "65006", "The order has been cancelled and cannot be paid. Please try again later", "订单已经取消,不能进行支付,请您稍后再试",ErrorCodeTypeEnum.SELLER_ERROR),
ORDER_DOES_NOT_EXIST_PLEASE_TRY_AGAIN_LATER(Boolean.FALSE, "65007", "Order does not exist, please try again later", "订单不存在,请稍后再试",ErrorCodeTypeEnum.SELLER_ERROR),


ERROR_OR_BLANK_IN_OBTAINING_VOUCHER_INFORMATION(Boolean.FALSE, "70001", "error_or_blank_in_obtaining_voucher_information", "获取凭证信息有误或为空",ErrorCodeTypeEnum.BIZ_ERROR),

/**
* 回调链路异常
*/
API_NOT_FOUND(Boolean.FALSE, "70002", "api not found", "该系统商没有此能力",ErrorCodeTypeEnum.SYE_ERROR),
SUPPLIER_CALLBACK_DATA_NOT_EXISTENT(Boolean.FALSE,"70003","supplier callback data not existent","系统商回调数据为空",ErrorCodeTypeEnum.SUPPLIER_ERROR),
THE_CALLBACK_DATA_IS_NOT_STANDARDIZED(Boolean.FALSE,"70004","The_callback_data_is_not_standardized","系统商回调通知数据不规范",ErrorCodeTypeEnum.SUPPLIER_ERROR),
NOTIFY_METHOD_NOT_EXIST(Boolean.FALSE, "70005", "notify_method_not_exist", "无对应的回调通知方法",ErrorCodeTypeEnum.SUPPLIER_ERROR),
NOTICE_EXTRACT_AK_EXCEPTION(Boolean.FALSE, "70006", "notice extract ak error", "系统商回调通知参数提取ak有误",ErrorCodeTypeEnum.SUPPLIER_ERROR),
SUPPLIER_INVALID_CALLBACK_TYPE(Boolean.FALSE,"70007","supplier invalid callback type","系统商回调类型不合法",ErrorCodeTypeEnum.SUPPLIER_ERROR),
SUPPLIER_URL_CONFIGURATION_ERROR(Boolean.FALSE,"70008","supplier invalid callback type","系统商回调url配置有误",ErrorCodeTypeEnum.SUPPLIER_ERROR),
METHOD_NOT_EXIST(Boolean.FALSE, "70009", "method_not_exist", "无对应的方法",ErrorCodeTypeEnum.SYE_ERROR),
/**
* 退款回调异常
*/
REFUND_NOTICE_PARAM_UNAPPROVENUM_EMPTY(Boolean.FALSE, "72001", "refund_notice_param_unapprovenum_empty", "系统商退款通知不同意退数量为空",ErrorCodeTypeEnum.SUPPLIER_ERROR),
REFUND_NOTICE_PARAM_APPROVENUM_EMPTY(Boolean.FALSE, "72002", "refund_notice_param_approvenum_empty", "系统商退款通知同意退数量为空",ErrorCodeTypeEnum.SUPPLIER_ERROR),
REFUND_NOTICE_PARAM_SUBORDERNOS_EMPTY(Boolean.FALSE, "72003", "refund_notice_param_subordernos_empty", "系统商退款通知子订单为空",ErrorCodeTypeEnum.SUPPLIER_ERROR),
REFUND_NOTICE_PARTIAL_REFUND_NOT_ALLOWED(Boolean.FALSE, "72004", "refund_notice_partial_refund_not_allowed", "系统商退款通知部分退不被允许",ErrorCodeTypeEnum.SUPPLIER_ERROR),
REFUND_NOTICE_PARAM_ORDERID_OR_OUTORDERID_EMPTY(Boolean.FALSE, "72005", "refund_notice_order_param_order_id_or_out_order_id_is_empty", "系统商退款通知参数订单或者外部订单id为空",ErrorCodeTypeEnum.SUPPLIER_ERROR),
REFUND_REJECTION_REASON_CANNOT_BE_EMPTY(Boolean.FALSE,"72006","refund_rejection_reason_cannot_be_empty","退款拒绝原因不许为空",ErrorCodeTypeEnum.SUPPLIER_ERROR),
NOTIFY_REFUND_EXCEPTION(Boolean.FALSE, "72007", "notify refund exception", "退款回调服务异常",ErrorCodeTypeEnum.SYE_ERROR),
/**
* 核销回调异常
*/
VERIFY_NOTICE_PARAM_ORDERID_OR_OUTORDERID_EMPTY(Boolean.FALSE, "74001", "verify_notice_param_order_id_or_out_order_id_is_empty", "系统商核销通知参数订单id或者外部订单id为空",ErrorCodeTypeEnum.SUPPLIER_ERROR),
VERIFY_NOTICE_PARAM_VERIFICATIONNUM_EMPTY(Boolean.FALSE, "74002", "verify_notice_param_verification_num_is_empty", "系统商核销通知参数核销数量为空",ErrorCodeTypeEnum.SUPPLIER_ERROR),
VERIFY_NOTICE_PARAM_VOUCHERINFO_IS_EMPTY(Boolean.FALSE,"74003","verify_notice_param_voucherinfo_is_empty","系统商核销通知凭证信息为空",ErrorCodeTypeEnum.SUPPLIER_ERROR),
VERIFY_NOTICE_CERTIFICATE_ID_EMPTY(Boolean.FALSE,"74004","verify notice param certificateId is empty","系统商核销通知参数证件号为空",ErrorCodeTypeEnum.SUPPLIER_ERROR),
VERIFY_NOTICE_CHECK_SIGN_ERROR(Boolean.FALSE, "74005", "verify notice check sign error", "系统商核销回调验签失败",ErrorCodeTypeEnum.SUPPLIER_ERROR),
SUPPLIER_VERIFY_FAILURE(Boolean.FALSE,"74006","supplier verify failure","系统商核销失败-{}",ErrorCodeTypeEnum.SUPPLIER_ERROR),
VERIFY_MODIFY_ORDER_ERROR(Boolean.FALSE,"74007","verify modify order error","核销修改订单信息失败",ErrorCodeTypeEnum.SYE_ERROR),
NOTIFY_VERIFY_EXCEPTION(Boolean.FALSE, "74008", "parameter check exception", "订单核销异常",ErrorCodeTypeEnum.SYE_ERROR),
VERIFICATION_NOTIFY_TFC_EXCEPTION(Boolean.FALSE, "74009", "verification notify tfc exception", "核销回调履约服务异常",ErrorCodeTypeEnum.SYE_ERROR),
EXCEPTION_IN_WRITE_OFF_MESSAGE_OF_BARLEY_SDK_SUBSCRIPTION(Boolean.FALSE,"74010","Exception_in_write_off_message_of_barley_SDK_subscription","sdk订阅核销消息异常",ErrorCodeTypeEnum.SUPPLIER_ERROR),
SIGN_CHECK_FAILED(Boolean.FALSE, "74011", "sign check failed", "回调验签参数校验失败",ErrorCodeTypeEnum.SYE_ERROR),

/**
* 发码回调异常
*/
CALLBACK_CREATE_TFC_EXCEPTION(Boolean.FALSE, "76001", "callback create tfc exception", "发码回调履约服务异常",ErrorCodeTypeEnum.SYE_ERROR),


SEND_METAQ_EXCEPTION(Boolean.FALSE,"80001","send metaq exception","发送metaq消息异常",ErrorCodeTypeEnum.SYE_ERROR),
SEARCH_REDIS_EXCEPTION(Boolean.FALSE,"80002","search redis exception","未查询到异常信息",ErrorCodeTypeEnum.SYE_ERROR),
SEARCH_ORDER_EXCEPTION(Boolean.FALSE,"80003","search order exception","调用travelBC查询订单信息异常",ErrorCodeTypeEnum.SYE_ERROR),

 

/**
* 未知错误 兜底返回 99999
*/
UNKNOWN_ERROR(Boolean.FALSE,"99999","unknown error","未知错误",ErrorCodeTypeEnum.UNKNOWN_ERROR);

FAQ

关于此文档暂时还没有FAQ
返回
顶部