Skip to main content

优惠券相关接口

扩展接口只对部分客户开放,需要业务配合。对接前请和华住的商务沟通,签署补充协议

业务说明:

优惠券使用PKID标识不同类型的券,华住会按照券的类型给企业分配额度,企业发券给用户受额度限制(接口7.1.5)。这里说的优惠券只是一种类型,不是具体某一张券。接口7.1.1,7.1.3都是查询优惠券类型信息。

用户领取优惠券之后才可以使用,我们把用户领取优惠券的动作称为绑券(接口7.1.7)。具体的优惠券在用户绑券的时候生成,每张优惠券有一个券码couponNo,标识这一张券。

优惠券的开始日期beginDate、截至日期endDate标识该类型券的使用时间范围,在时间范围内下单才可以使用(只影响下单时间,与订单的入住时间无关)。这个时间范围一般设置的比较大,比如设置1年。具体某张优惠劵的可用时间,在用户绑券操作的时候计算得出,比如绑定之后7天之内可用。每张优惠券上用bindedTime标识用户绑定的时间。绑定后生效时间bindBeginDate,绑定后结束时间bindEndDate标识这张券的使用时间范围。如果这个时间范围超过优惠券的时间范围,则受到优惠券时间的限制。比如,活动在4/30日结束(endDate),客户4/25日绑定优惠券(bindedTime),绑定后30天有效,优惠券截至日期是5/25(bindEndDate),到4/30活动就结束了,5/25这个日期在这里无效。

有些类型的优惠券会设置绑定日期控制delayEffectDay,比如绑定之后3天才可以使用。绑定后生效时间就是绑定日期加3天。

用户预订具体酒店的时候,接口7.1.8会按照预订日期和酒店筛选出用户所有的优惠券中可以在当前当前订单中使用的券。

企业查询可以分配的优惠券列表

企业查询当前有哪些类型的优惠券可以分配给用户,以及每种类型券的额度信息

接口地址:coupon/getCouponList

请求方式:POST

请求参数说明:
参数名参数类型备注是否必填示例值
cardIdString公司卡号VCENTCRM0002220001
cardPassWordString公司卡密码TestPassword
请求示例:
{
"cardId": "VCENTCRM0002224829",
"cardPassWord": "123321a"
}
返回参数说明:
参数名参数类型备注
codecode状态码
200 成功!
500 应用程序繁忙,请稍后再试!
521 企业V卡号或者验证码错误!
messageString响应消息
contentList<SendCouponDTO>优惠券列表
SendCouponDTO
参数名参数类型备注
pkIdString优惠券Id
balanceCountInteger剩余额度
totalCountInteger总额度
couponInfoCouponInfoDTO优惠券信息
CouponInfoDTO
参数名参数类型备注
pkIdString优惠券Id
nameString优惠券名称
typeString优惠劵类型
AMOUNT:定额;
VIP_AMOUNT:固定价;
DISCOUNT:折扣
valuenumber优惠券面额
startDateDate有效期开始时间
endDateDate有效期结束时间
返回示例:
{
"code": "200",
"message": "成功!",
"content": [
{
"pkId": "3323",
"totalCount": 100,
"balanceCount": 1,
"couponInfo": {
"pkId": "3323",
"name": "测试优惠券",
"type": "AMOUNT",
"value": 100,
"startDate": "2021-07-01 00:00:00",
"endDate": "2021-08-01 00:00:00"
}
}
]
}

企业根据券码查询优惠券详情

接口地址:coupon/getCouponDetail

请求方式:POST

请求参数说明:
参数名参数类型备注是否必填示例值
cardIdString公司卡号VCENTCRM0002220001
cardPassWordString公司卡密码TestPassword
couponNoString优惠券码。个人绑券接口会返回E4815D54DD604D8BB392219DB604A63C
请求示例:
{
"cardId": "VCENTCRM0002224829",
"cardPassWord": "123321a",
"couponNo": "E4815D54DD604D8BB392219DB604A63C"
}
返回参数说明:
参数名参数类型备注
codecode状态码
200 成功!
500 应用程序繁忙,请稍后再试!
521 企业V卡号或者验证码错误!
messageString响应消息
contentCouponDetailDTO优惠券详情
CouponDetailDTO
参数名参数类型备注
pkIdinteger优惠券ID
couponNostring优惠劵码
effectDatestring生效时间
projectNamestring活动名称
bindedTimestring,绑定时间
beginDatestring开始时间
endDatestring截止时间
amountnumber优惠金额
具体金额参考优惠券类型
例:amount = 85
couponType = AMOUNT:订单金额减85元;
couponType = DISCOUNT:订单金额85折;
couponType = VIP_AMOUNT:订单金额85元
statusCodestring优惠券活动状态码(B:已绑定;T:已使用;X:作废)
isOverLayboolean是否重叠使用
delayEffectDayinteger绑定后多少天后生效
isMarketingPriceboolean是否门市价价(TRUE:门市价上打折;FALSE:会员价上打折)
bindOrgIDstring绑定酒店/使用酒店
usedRulesstring使用规则
areaLevelstring使用范围等级(1:全国;4:酒店)
usedHotelIDsstring可供使用的酒店(AreaLevel=1 时为空)
orderLimitsTypestring使用范围(1:用于订单;2:用于间夜)
couponTypestring优惠劵类型(C:定额; RF:固定价;DR:折扣)
isRentRoomboolean是否时租
isUsableboolean是否可用
notUsableReasonstring不可用原因
disableWeekdaysstring禁用周(多个以“,”分割)星期六是6,星期日是7,星期一是1,例如返回7,1,说明星期日,星期一不能用
返回示例:
{
"code": "200",
"message": "成功!",
"content": {
"pkId": "3323",
"couponNo": "E4815D54DD604D8BB392219DB604A63C",
"effectDate": null,
"projectName": null,
"bindedTime": "2021-07-10 17:15:39",
"beginDate": "2021-07-10 00:00:00",
"endDate": "2022-05-06 23:59:59",
"amount": 10,
"statusCode": "T",
"isOverLay": false,
"delayEffectDay": 0,
"isMarketingPrice": false,
"bindOrgID": "",
"usedRules": "",
"areaLevel": "4",
"usedHotelIDs": "3500001,3500002,3500007,3500011,3500013,3500041,3500051.......",
"orderLimitsType": "1",
"couponType": "DR",
"notUsableReason": false,
"disableWeekdays": null,
"rentRoom": false,
"usable": false
},
"echoToken": "8e5c752c-95f7-4b02-87e3-c893572b98c8"
}

查询优惠券详情

接口地址:coupon/getCouponDetailByPkId

请求方式:POST

请求参数说明
参数名参数类型备注是否必填示例值
cardIdString公司卡号VCENTCRM0002220001
cardPassWordString公司卡密码TestPassword
pkIdStringpkid96531
hotelIdString酒店id2000014
请求示例
{
"cardId": "VCENTCRM0002224829",
"pkId": "3657",
"cardPassWord": "123321a",
"hotelId": "2000014"
}
返回参数说明
参数名参数类型备注
codecode状态码
200 成功!
500 应用程序繁忙,请稍后再试!
521 企业V卡号或者验证码错误!
messageString响应消息
contentCouponDetailByPkIdDTO优惠券详情

CouponDetailByPkIdDTO

参数名参数类型备注
pkIdinteger优惠券ID
bindBeginDateString绑定后生效时间
bindEndDateString绑定后结束时间
todayCanUsedboolean调用接口时如果传hotelId就会检测此优惠券今日在hotelId对应的酒店是否可用。使用场景:用户绑券前可以先确认是否可用。 调用接口时如果没有传hotelId,此字段返回false
orderLimitsTypeString使用范围(1、用于订单 2、用于间夜)
activityCodeString活动名称
beginDateString活动开始时间
endDateString活动结束时间
amountnumber优惠券金额
projectTypeInteger活动类型 (0 = All(全部) , 1 = Ecoupons(优惠券,包括3456权益券) , 2 = Activity(促销券) , 3 = LateCheckout(延时退房券) , 4 = QuotaPoint(定额积分券) , 5 = RoomDay(间夜券) , 6 = CancelNoShow(NOSHOW券) , 7 = BFM(早餐券) , 8 = OTA(美团券) ) = ['0', '1', '2', '3', '4', '5', '6', '7', '8'],
displayNameString前端显示名称
ticketTypeString券类别 C=定额; RF=规定价 DR=折扣
ticketTypeNameString券类别名字
bindedLimitInteger绑定数量限制
usedLimitInteger使用数量限制
usedRulesString使用规则
inAdvanceDayInteger提前预订天数
bindExpirationString绑定后有效期
单位,值
D0 - 0天
W1 - 1周
M3 - 3月
Y1 - 1年
N1 - 1分钟
areaLevelString使用范围等级 (1:全国;4:酒店)
disableWeekdaysString禁用周,星期六是7,星期日是1,星期一是2,例如返回71,说明星期六,星期日不能用
extendFunctionString权益配置项
extendFunctionNameString权益配置项名字
delayEffectDayInteger绑定后多久可以开始使用,单位(天)
remarkString备注
rangeTypeString范围类型:1-通用券 2-单店券 3-多店券
isSupportboolean是否支持指定的酒店(请求参数hotelId有值才返回,否则为空)
isOverlayboolean是否重叠使用
orgIdList<String>适用的酒店范围
返回示例
{
"code": "200",
"message": "成功!",
"content": {
"pkId": "3657",
"bindBeginDate": "2022-06-27 10:15:15",
"bindEndDate": null,
"todayCanUsed": "false",
"orderLimitsType": "1",
"activityCode": "zkq测试券2",
"beginDate": "2022-02-28T00:00:00",
"endDate": "2023-02-28T00:00:00",
"amount": "11",
"projectType": "1",
"displayName": "",
"ticketType": "C",
"ticketTypeName": "定额优惠券",
"bindedLimit": "99",
"usedLimit": "99",
"usedRules": "",
"inAdvanceDay": "0",
"bindExpiration": "",
"areaLevel": "4",
"disableWeekdays": "",
"extendFunction": null,
"extendFunctionName": null,
"delayEffectDay": "0",
"remark": "",
"rangeType": "1",
"isSupport": null,
"isYF": "false",
"isGenBeforehand": "false",
"isBd": "false",
"isOverlay": "false",
"orgId": [
"2000014"
]
},
"echoToken": "f3be2c0e-3245-45b2-9d7b-9126fc12e0b2"
}

查询会员优惠券列表

接口地址:coupon/getMemberCouponList

请求方式:POST

请求参数说明:
参数名参数类型备注是否必填示例值
cardIdString公司卡号VCENTCRM0002220001
cardPassWordString公司卡密码TestPassword
bookerIdString预订公司卡号VCENTCRM0002220001
mobileString绑卷会员手机号15036222256
请求示例:
{
"cardId": "VCENTCRM0002224829",
"cardPassWord": "123321a",
"bookerId": "VCENTCRM0002224829",
"mobile": "15036222256"
}
返回参数说明:
参数名参数类型备注
codecode状态码
200 成功!
500 应用程序繁忙,请稍后再试!
521 企业V卡号或者验证码错误!
messageString响应消息
contentList<MemberCouponDTO>会员优惠券列表
MemberCouponDTO
参数名参数类型备注
couponNoString优惠券码
couponStatusString优惠券状态
NONE:无
UNUSED:未使用
USED:已使用
couponInfoCouponInfoDTO优惠券信息
CouponInfoDTO
参数名参数类型备注
pkIdString优惠券Id
nameString优惠券名称
typeString优惠劵类型。见 企业查询优惠券列表
valuenumber优惠券面额
startDateDate有效期开始时间
endDateDate有效期结束时间
返回示例:
{
"code": "200",
"message": "成功!",
"content": [
{
"couponNo": "65207838613D4EB5BAF725A462DFD1A6",
"couponStatus": "UNUSED",
"couponInfo": {
"pkId": "3323",
"name": "测试优惠券",
"type": "1",
"value": 100,
"startDate": "2021-07-01 00:00:00",
"endDate": "2021-08-01 00:00:00"
}
}
]
}

TMC给企业设定发礼包额度

TMC发给其它挂靠公司(给的是额度)

接口地址:coupon/sendCoupon

请求方式:POST

请求参数说明:
参数名参数类型备注是否必填示例值
cardIdString公司卡号VCENTCRM0002220001
cardPassWordString公司卡密码TestPassword
bookerIdString分配公司卡号R20005050001936627
pkIdString券Id(废弃,请使用packId)3323
packIdString活动礼包Idxp123
totalCountInt分配额度100
请求示例:
{
"cardId": "VCENTCRM0002224829",
"cardPassWord": "123321a",
"bookerId": "VCENTCRM1016431348",
"pkId": "3323",
"totalCount": 100
}
返回参数说明:
参数名参数类型备注
codecode状态码
200 成功!
500 应用程序繁忙,请稍后再试!
521 企业V卡号或者验证码错误!
messageString响应消息
contentBool是否成功
返回示例:
{
"code": "200",
"message": "string",
"content": true
}

优惠券额度回收

TMC公司发放优惠券额度给托管公司后,回收已发放额度

接口地址:coupon/recycleCoupon

请求方式:POST

请求参数说明:
参数名参数类型备注是否必填示例值
cardIdString公司卡号VCENTCRM1016433543
cardPassWordString公司卡密码A7A5C7DF-A1B2-469B-8361-A1AF85289571
bookerIdString分配公司卡号
pkIdString优惠券ID(废弃,请使用packId)
packIdString活动礼包Idxp123
totalCountInt回收数量(额度)
请求示例:
{
"cardId": "VCENTCRM0002224829",
"cardPassWord": "123321a",
"bookerId": "VCENTCRM1016431348",
"pkId": "3323",
"totalCount": 100
}
返回参数说明:
参数名参数类型备注
codecode状态码
200 成功!
500 应用程序繁忙,请稍后再试!
1101 优惠券额度不足
1102 优惠券不存在
1107 无法发券给自己公司
messageString响应消息
contentBool是否成功
返回示例:
{
"code": "200",
"message": "string",
"content": true
}

企业给个人绑券

将分配给其他企业的劵或者自己的劵跟个人做绑定,把劵发给个人

接口地址:coupon/bindCoupon

请求方式:POST

请求参数说明:
参数名参数类型备注是否必填示例值
cardIdString公司卡号VCENTCRM0002220001
cardPassWordString公司卡密码TestPassword
bookerIdString企业卡号VCENTCRM1016431348
pkIdString券Id3323
mobileString个人手机号码15036222256
请求示例:
{
"cardId": "VCENTCRM0002224829",
"cardPassWord": "123321a",
"bookerId": "VCENTCRM1016431348",
"pkId": "3323",
"mobile": "15036222256"
}
返回参数说明:
参数名参数类型备注
codecode状态码
200 成功!
500 应用程序繁忙,请稍后再试!
521 企业V卡号或者验证码错误!
messageString响应消息
contentString优惠券券码
返回示例:
{
"code": "200",
"message": "string",
"content": "65207838613D4EB5BAF725A462DFD1A6"
}

查询会员在酒店可以用的优惠券列表

接口地址:coupon/getHotelMemberCouponList

请求方式:POST

请求参数说明:
参数名参数类型备注是否必填示例值
cardIdString公司卡号VCENTCRM0002220001
cardPassWordString公司卡密码TestPassword
hotelIdString酒店id2000014
checkInDateDate入住日期2022-04-09
mobileString个人手机号码15036222256
roomTypeString房型DR1
请求示例:
{
"cardId": "VCENTCRM0002224829",
"cardPassWord": "123321a",
"hotelId": "2000014",
"mobile": "13728174397",
"roomType": "DR1",
"checkInDate": "2022-09-01"
}
返回参数说明:
参数名参数类型备注
codecode状态码
200 成功!
500 应用程序繁忙,请稍后再试!
521 企业V卡号或者验证码错误!
messageString响应消息
contentList<HotelMemberCouponDTO>可用优惠券列表

HotelMemberCouponDTO

参数名参数类型备注
pkIdString优惠券Id
hotelIdString酒店id
nameString总额度
ticketNoString优惠券信息
needMarketingPriceBoolean市场价预订才可以用这个券
amountBigDecimal优惠券金额
effectDateString优惠券可预订开始时间
ticketTypeTicketType优惠劵类型
C 立减优惠
DR 折扣优惠
RF 一口价优惠
返回示例:
{
"code": "200",
"message": "成功!",
"content": [
{
"hotelId": "2000014",
"name": "zkq测试券1",
"pkId": "3656",
"ticketNo": "201D3F86C40746639A48041982A27892",
"needMarketingPrice": false,
"amount": 10.00,
"effectDate": "2022-02-28T15:45:07",
"ticketType": "C"
},
{
"hotelId": "2000014",
"name": "zkq测试券2",
"pkId": "3657",
"ticketNo": "6EC34CA6644A4A0EAE38165B1688CD1E",
"needMarketingPrice": false,
"amount": 11.00,
"effectDate": "2022-08-02T11:28:00",
"ticketType": "C"
}
],
"echoToken": "f4a8d35d-dfa8-4655-a471-ece98f58b183"
}