4.1 其他说明
约 1651 字大约 6 分钟
2025-04-24
Open Api 价格计算
occupancyRates 结构
{
"rateData": {
"type": 1,
"roomRate": {
"amountBeforeTax": "190",
"amountAfterTax": "200"
},
"personRate": {
"basePersonRateList": [
{
"childCount": 0,
"adultCount": 2,
"amountBeforeTax": "91",
"amountAfterTax": "100"
},
{
"childCount": 1,
"adultCount": 2,
"amountBeforeTax": "92",
"amountAfterTax": "110"
}
],
"extraAdultRate": {
"amountBeforeTax": "40",
"amountAfterTax": "50"
},
"extraChildRate": {
"childType": 1,
"childByAgeList": [
{
"minAge": 0,
"maxAge": 6,
"amountBeforeTax": "1",
"amountAfterTax": "10"
},
{
"minAge": 6,
"maxAge": 12,
"amountBeforeTax": "2",
"amountAfterTax": "20"
}
],
"childNormal": {
"amountBeforeTax": "8",
"amountAfterTax": "10"
}
}
}
}
}示例
| 字段 | 设置内容 | 说明 |
|---|---|---|
| 最大成人数 | 4 | 房间允许的最大成人数量 |
| 最大儿童数 | 3 | 房间允许的最大儿童数量 |
| 最大入住人数 | 5 | 房间允许的最大总人数(成人+儿童) |
RatePlan 人数拆分组合
| 组合编号 | 成人数 | 儿童数 | 报文示例 (A-adult, C-child) |
|---|---|---|---|
| 1 | 1 | 0 | 1A0C |
| 2 | 1 | 1 | 1A1C |
| 3 | 1 | 2 | 1A2C |
| 4 | 1 | 3 | 1A3C |
| 5 | 2 | 0 | 2A0C |
| 6 | 2 | 1 | 2A1C |
| 7 | 2 | 2 | 2A2C |
| 8 | 2 | 3 | 2A3C |
| 9 | 3 | 0 | 3A0C |
| 10 | 3 | 1 | 3A1C |
| 11 | 3 | 2 | 3A2C |
| 12 | 4 | 0 | 4A0C |
| 13 | 4 | 1 | 4A1C |
报文解析示例 (A-adult C- child)
房价价格
1-RoomRate
RateData
{
"type": 1,
"roomRate": {
"amountBeforeTax": "90",
"amountAfterTax": "100"
}
}KlookRate
{
"amountBeforeTax": "90",
"amountAfterTax": "100"
}人数价格
2-PersonRate[0-normal][A]
RateData
{
"type": 2,
"personRate": {
"basePersonRateList": [
{
"childCount": 0,
"adultCount": 2,
"amountAfterTax": "100"
},
{
"childCount": 0,
"adultCount": 3,
"amountAfterTax": "110"
}
],
"extraAdultRate": {
"amountAfterTax": "50"
},
"extraChildRate": {
"childType": 0,
"childNormal": {
"amountBeforeTax": "10",
"amountAfterTax": "20"
}
}
}
}KlookRate
基础价格
1. 1A+0C: 无法给出
2. 1A+1C : 无法给出
3. 1A+2C: 无法给出
4. 1A+3C: 无法给出
5. 2A+0C: 100
6. 2A+1C: 无法给出
7. 2A+2C:无法给出
8. 2A+3C:无法给出
9. 3A+0C: 110
10. 3A+1C: 130
11. 3A+2C: 150
12. 4A+0C: 160
13. 4A+1C: 1802-PersonRate[0-normal][B]
RateData
{
"type": 2,
"personRate": {
"basePersonRateList": [
{
"childCount": 0,
"adultCount": 2,
"amountAfterTax": "100"
},
{
"childCount": 0,
"adultCount": 3,
"amountAfterTax": "110"
}
],
"extraChildRate": {
"childType": 0,
"childNormal": {
"amountBeforeTax": "10",
"amountAfterTax": "20"
}
}
}
}KlookRate
基础价格
1. 1A+0C: 无法给出
2. 1A+1C : 无法给出
3. 1A+2C: 无法给出
4. 1A+3C: 无法给出
5. 2A+0C: 100
6. 2A+1C:无法给出
7. 2A+2C:无法给出
8. 2A+3C:无法给出
9. 3A+0C: 110
10. 3A+1C: 130
11. 3A+2C: 150
12. 4A+0C:无法给出
13. 4A+1C:无法给出2-PersonRate[0-normal][C]
RateData
{
"type": 2,
"personRate": {
"extraAdultRate": {
"amountAfterTax": "50"
},
"extraChildRate": {
"childType": 0,
"childNormal": {
"amountBeforeTax": "10",
"amountAfterTax": "20"
}
}
}
}KlookRate
基础价格
1. 1A+0C: 50
2. 1A+1C : 70
3. 1A+2C: 90
4. 1A+3C: 110
5. 2A+0C: 100
6. 2A+1C: 120
7. 2A+2C: 140
8. 2A+3C: 160
9. 3A+0C: 150
10. 3A+1C: 170
11. 3A+2C: 190
12. 4A+0C: 200
13. 4A+1C: 2202-PersonRate[0-normal][D]
RateData
{
"type": 2,
"personRate": {
"basePersonRateList": [
{
"childCount": 0,
"adultCount": 2,
"amountAfterTax": "100"
},
{
"childCount": 0,
"adultCount": 3,
"amountAfterTax": "110"
}
],
"extraChildRate": {
"childType": 0
}
}
}KlookRate
基础价格
1. 1A+0C: 无法给出
2. 1A+1C : 无法给出
3. 1A+2C: 无法给出
4. 1A+3C: 无法给出
5. 2A+0C: 100
6. 2A+1C:无法给出
7. 2A+2C:无法给出
8. 2A+3C:无法给出
9. 3A+0C: 110
10. 3A+1C:无法给出
11. 3A+2C:无法给出
12. 4A+0C:无法给出
13. 4A+1C:无法给出2-PersonRate[1-byAge][A]
RateData
{
"type": 2,
"personRate": {
"basePersonRateList": [
{
"childCount": 0,
"adultCount": 2,
"amountAfterTax": "100"
},
{
"childCount": 0,
"adultCount": 3,
"amountAfterTax": "110"
}
],
"extraAdultRate": {
"amountAfterTax": "50"
},
"extraChildRate": {
"childType": 1,
"childByAgeList": [
{
"minAge": 0,
"maxAge": 6,
"amountBeforeTax": "1",
"amountAfterTax": "10"
},
{
"minAge": 6,
"maxAge": 12,
"amountBeforeTax": "2",
"amountAfterTax": "20"
}
]
}
}
}KlookRate
基础价格
1. 1A+0C: 无法给出
2. 2A+0C: 100
3. 3A+0C: 110
4. 4A+0C: 160
儿童价格
[
{
"minAge": 0,
"maxAge": 6,
"amountBeforeTax": "1",
"amountAfterTax": "10"
},
{
"minAge": 6,
"maxAge": 12,
"amountBeforeTax": "2",
"amountAfterTax": "20"
}
]
实际价格=基础价格+儿童价格在具体的查价中进行计算
如果儿童年龄范围未命中,则升级儿童当成人处理,即儿童数 -1,成人数 +12-PersonRate[1-byAge][B]
RateData
{
"type": 2,
"personRate": {
"basePersonRateList": [
{
"childCount": 0,
"adultCount": 2,
"amountAfterTax": "100"
},
{
"childCount": 0,
"adultCount": 3,
"amountAfterTax": "110"
}
],
"extraChildRate": {
"childType": 1,
"childByAgeList": [
{
"minAge": 0,
"maxAge": 6,
"amountBeforeTax": "1",
"amountAfterTax": "10"
},
{
"minAge": 6,
"maxAge": 12,
"amountBeforeTax": "2",
"amountAfterTax": "20"
}
]
}
}
}KlookRate
基础价格
1. 1A+0C: 无法给出
2. 2A+0C: 100
3. 3A+0C: 110
儿童价格
[
{
"minAge": 0,
"maxAge": 6,
"amountBeforeTax": "1",
"amountAfterTax": "10"
},
{
"minAge": 6,
"maxAge": 12,
"amountBeforeTax": "2",
"amountAfterTax": "20"
}
]
实际价格=基础价格+儿童价格在具体的查价中进行计算
如果儿童年龄范围未命中,则升级儿童当成人处理,即儿童数 -1,成人数 +12-PersonRate[1-byAge][C]
RateData
{
"type": 2,
"personRate": {
"extraAdultRate": {
"amountAfterTax": "50"
},
"extraChildRate": {
"childType": 1,
"childByAgeList": [
{
"minAge": 0,
"maxAge": 6,
"amountBeforeTax": "1",
"amountAfterTax": "10"
},
{
"minAge": 6,
"maxAge": 12,
"amountBeforeTax": "2",
"amountAfterTax": "20"
}
]
}
}
}KlookRate
基础价格
1. 1A+0C: 50
2. 2A+0C: 100
3. 3A+0C: 150
4. 4A+0C: 200
儿童价格
[
{
"minAge": 0,
"maxAge": 6,
"amountBeforeTax": "1",
"amountAfterTax": "10"
},
{
"minAge": 6,
"maxAge": 12,
"amountBeforeTax": "2",
"amountAfterTax": "20"
}
]
实际价格=基础价格+儿童价格在具体的查价中进行计算
如果儿童年龄范围未命中,则升级儿童当成人处理,即儿童数 -1,成人数 +12-PersonRate[2-free][A]
RateData
{
"type": 2,
"personRate": {
"basePersonRateList": [
{
"childCount": 0,
"adultCount": 2,
"amountAfterTax": "100"
},
{
"childCount": 0,
"adultCount": 3,
"amountAfterTax": "110"
}
],
"extraAdultRate": {
"amountAfterTax": "50"
},
"extraChildRate": {
"childType": 2,
}
}
}KlookRate
基础价格
1. 1A+0C: 无法给出
2. 2A+0C: 100
3. 3A+0C: 110
4. 4A+0C: 160
儿童价格 null
实际价格=基础价格+儿童价格在具体的查价中进行计算,儿童数计算成 02-PersonRate[2-free][B]
RateData
{
"type": 2,
"personRate": {
"basePersonRateList": [
{
"childCount": 0,
"adultCount": 2,
"amountAfterTax": "100"
},
{
"childCount": 0,
"adultCount": 3,
"amountAfterTax": "110"
}
],
"extraChildRate": {
"childType": 2,
}
}
}KlookRate
基础价格
1. 1A+0C: 无法给出
2. 2A+0C: 100
3. 3A+0C: 110
儿童价格 null
实际价格=基础价格+儿童价格在具体的查价中进行计算,儿童数计算成 02-PersonRate[2-free][C]
RateData
{
"type": 2,
"personRate": {
"basePersonRateList": [
{
"childCount": 0,
"adultCount": 2,
"amountAfterTax": "100"
},
{
"childCount": 0,
"adultCount": 3,
"amountAfterTax": "110"
}
],
"extraAdultRate": {
"amountAfterTax": "50"
},
"extraChildRate": {
"childType": 2,
}
}
}KlookRate
基础价格
1. 1A+0C: 50
2. 2A+0C: 100
3. 3A+0C: 150
4. 4A+0C: 200
儿童价格 null
实际价格=基础价格+儿童价格在具体的查价中进行计算,儿童数计算成 02-PersonRate[3-asAdult][A]
RateData
{
"type": 2,
"personRate": {
"basePersonRateList": [
{
"childCount": 0,
"adultCount": 2,
"amountAfterTax": "100"
},
{
"childCount": 0,
"adultCount": 3,
"amountAfterTax": "110"
}
],
"extraAdultRate": {
"amountAfterTax": "50"
},
"extraChildRate": {
"childType": 3,
}
}
}KlookRate
基础价格
1. 1A+0C: 无法给出
2. 2A+0C: 100
3. 3A+0C: 110
4. 4A+0C: 160
儿童价格 null
实际价格=基础价格+儿童价格在具体的查价中进行计算,儿童数 -1,成人数 +12-PersonRate[3-asAdult][B]
RateData
{
"type": 2,
"personRate": {
"basePersonRateList": [
{
"childCount": 0,
"adultCount": 2,
"amountAfterTax": "100"
},
{
"childCount": 0,
"adultCount": 3,
"amountAfterTax": "110"
}
],
"extraChildRate": {
"childType": 3,
}
}
}KlookRate
基础价格
1. 2A+0C: 100
2. 3A+0C: 110
儿童价格 null
实际价格=基础价格+儿童价格在具体的查价中进行计算,儿童数 -1,成人数 +12-PersonRate[3-asAdult][B]
RateData
{
"type": 2,
"personRate": {
"extraAdultRate": {
"amountAfterTax": "50"
},
"extraChildRate": {
"childType": 3,
}
}
}KlookRate
基础价格
1. 1A+0C: 50
2. 2A+0C: 100
3. 3A+0C: 150
4. 4A+0C: 200
儿童价格 null
实际价格=基础价格+儿童价格在具体的查价中进行计算,儿童数 -1,成人数 +1