From 01a46dd685cb4f2b2b9eba5a29ae996214c78b1e Mon Sep 17 00:00:00 2001 From: Lei OT Date: Thu, 10 Jul 2025 17:13:04 +0800 Subject: [PATCH] vault backup: 2025-07-10 17:13:04 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Affected files: Haina/项目/HT数据分析/CT商旅数据统计.md Haina/项目/HotelHub/atta/4c05d44e748e10f0210045a6641ab7d3.png Haina/项目/HotelHub/atta/heytrip_b2b分销接口对接说明.html Haina/项目/HotelHub/atta/微信图片_20250710170007_1.png Haina/项目/HotelHub/atta/微信图片_20250710170007_2.png Haina/项目/HotelHub/喜玩.md --- .../HT数据分析/CT商旅数据统计.md | 3 +- .../atta/4c05d44e748e10f0210045a6641ab7d3.png | Bin 0 -> 9882 bytes .../heytrip_b2b分销接口对接说明.html | 6465 +++++++++++++++++ .../atta/微信图片_20250710170007_1.png | Bin 0 -> 15490 bytes .../atta/微信图片_20250710170007_2.png | Bin 0 -> 15934 bytes Haina/项目/HotelHub/喜玩.md | 18 +- 6 files changed, 6483 insertions(+), 3 deletions(-) create mode 100644 Haina/项目/HotelHub/atta/4c05d44e748e10f0210045a6641ab7d3.png create mode 100644 Haina/项目/HotelHub/atta/heytrip_b2b分销接口对接说明.html create mode 100644 Haina/项目/HotelHub/atta/微信图片_20250710170007_1.png create mode 100644 Haina/项目/HotelHub/atta/微信图片_20250710170007_2.png diff --git a/Haina/项目/HT数据分析/CT商旅数据统计.md b/Haina/项目/HT数据分析/CT商旅数据统计.md index e59816f..044f141 100644 --- a/Haina/项目/HT数据分析/CT商旅数据统计.md +++ b/Haina/项目/HT数据分析/CT商旅数据统计.md @@ -1,6 +1,6 @@ --- Created: 2025-03-10 10:41 Mon -Updated: 2025-07-10 16:41 Thu +Updated: 2025-07-10 16:44 Thu 需求方: 戴昳雯 --- @@ -23,6 +23,7 @@ Updated: 2025-07-10 16:41 Thu - 分析:某段火车票,产品,导向upsell 1. [?] upsell 订单与原始订单没有关联性 2. [?] 除了类型属性是`火车票Upsell`外, 还有订单以`M`结尾 *(但来源不是OTA)* 的也是`upsell` + 1. HT>商务订单>统计.商务数据统计>upsell订单统计 > [!todo] diff --git a/Haina/项目/HotelHub/atta/4c05d44e748e10f0210045a6641ab7d3.png b/Haina/项目/HotelHub/atta/4c05d44e748e10f0210045a6641ab7d3.png new file mode 100644 index 0000000000000000000000000000000000000000..e9c87c1546e42d15988aa0ea6fd41f0d3f077fbe GIT binary patch literal 9882 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 V?ay0jNc~X{%gc7=*h@DP{sRm1%EkZy literal 0 HcmV?d00001 diff --git a/Haina/项目/HotelHub/atta/heytrip_b2b分销接口对接说明.html b/Haina/项目/HotelHub/atta/heytrip_b2b分销接口对接说明.html new file mode 100644 index 0000000..8f3a453 --- /dev/null +++ b/Haina/项目/HotelHub/atta/heytrip_b2b分销接口对接说明.html @@ -0,0 +1,6465 @@ + + + + + + heytrip_b2b分销接口对接说明 + + + + + + + + + +

Heytrip B2B 分销接口

+

1.版本信息

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
版本号变更内容变更日期变更人备注
v1.0新建2024-03-13colin
v1.1编辑2024-03-29james补充酒店:主图地址,亮点,酒店图片信息,客评,
v1.1.1新建2024-04-01james添加商圈 行政区查询接口
v1.1.2编辑2024-04-12james补充酒店:附近位置信息  酒店实用信息 酒店政策说明
v1.1.3新建2024-04-12james新增酒店起价查询接口
v1.1.4编辑2024-04-16james酒店起价查询接口新添加每日价格
v1.1.5编辑2024-04-25james查价接口 新增每日价格
v1.1.6编辑2024-05-10james验单接口 入参 Nationality 为必填参数
v1.1.7编辑2024-05-17james补充酒店:增加 邮编字段
V1.1.8编辑2024-05-21james补充酒店:房型图片
V1.1.9编辑2024-05-22james编辑酒店静态信息:不开放酒店附近位置信息 属性中id,TypeName,TypeId字段
V1.2.0编辑2024-06-19james查价接口 开放 开票方式,是否提供专票字段
V1.2.1新增2024-09-03james新增增量接口
V1.2.2编辑2025-01-08james编辑酒店静态信息:开放酒店聚合指定供应商酒店id
V1.2.3新增2025-01-08james新增热销酒店Id获取接口
+

2.H址

+ + + + + + + + + + + + + + + +
环境地址
测试环境https://distapi-sandbox.heytripgo.com
正式环境https://distapi.heytripgo.com
+

swagger:https://distapi-sandbox.heytripgo.com/swagger

+

3.公共入参

+

3.1 Http request headers

+ + + + + + + + + + + + + + + + + +
名称类型是否必填描述示例
Authorizationstring鉴权参数Bearer apikey=yourAPIKey,signature=sha512Hash,timestamp=yourUNIXTimestamp
+

3.2 Signature 生成代码示例

+

3.2.1 GoLang

+
apiKey := "abc"
+secret := "123"
+timestamp := strconv.FormatInt(time.Now().Unix(), 10)
+c := sha512.New()
+c.Write([]byte(apiKey + secret + timestamp))
+signature := hex.EncodeToString(c.Sum(nil))
+authHeaderValue := "Bearer apikey=" + apiKey + ",signature=" + signature + ",timestamp=" + timestamp
+

3.2.2 Java

+
import java.io.UnsupportedEncodingException;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.security.Timestamp;
+import java.util.Date;
+String apiKey = "abc";
+String secret = "123";
+Date date= new java.util.Date();
+Long timestamp = (date.getTime() / 1000);
+String signature = null;
+try {
+    String toBeHashed = apiKey + secret + timestamp;
+    MessageDigest md = MessageDigest.getInstance("SHA-512");
+    byte[] bytes = md.digest(toBeHashed.getBytes("UTF-8"));
+    StringBuilder sb = new StringBuilder();
+    for(int i=0; i< bytes.length ;i++){
+        sb.append(Integer.toString((bytes[i] & 0xff) + 0x100, 16).substring(1));
+   }
+   signature = sb.toString();
+} catch (NoSuchAlgorithmException e) {
+   e.printStackTrace();
+} catch (UnsupportedEncodingException e) {
+   e.printStackTrace();
+}
+String authHeaderValue = "Bearer apikey=" + apiKey +  ",signature=" + signature + ",timestamp=" + timestamp;
+

3.2.3 C#

+
String apiKey = "abc";
+String secret = "123";
+TimeSpan epochTicks = new TimeSpan(new DateTime(1970, 1, 1).Ticks);
+TimeSpan unixTicks = new TimeSpan(DateTime.UtcNow.Ticks) - epochTicks;
+double unixTime = (int)unixTicks.TotalSeconds;
+var toBeHashed = apiKey + secret + unixTime;
+var bytes = System.Text.Encoding.UTF8.GetBytes(toBeHashed);
+using (var hash = System.Security.Cryptography.SHA512.Create())
+{
+    var hashedInputBytes = hash.ComputeHash(bytes);
+    var hashedInputStringBuilder = new System.Text.StringBuilder(128);
+    foreach (var b in hashedInputBytes)
+        hashedInputStringBuilder.Append(b.ToString("X2"));
+    var signature = hashedInputStringBuilder.ToString();
+    var authHeaderValue = "Bearer apikey=" + apiKey + ",signature=" + signature +",timestamp=" + unixTime;
+}
+

3.2.4 PHP

+
$apiKey = "abc";
+$secret = "123";
+$timestamp = time();
+$authHeader = 'Authorization: Bearer apikey=' . $apiKey . ',signature=' . hash("sha512", $apiKey.$secret.$timestamp) . ',timestamp=' . time();
+

3.2.5 Python

+
#!/usr/bin/env python
+import hashlib
+import time
+apiKey = "abc"
+secret = "123"
+timestamp = str(int(time.time()));
+authHeaderValue = "Bearer apikey=" + apiKey + ",signature=" + hashlib.sha512(apiKey+secret+timestamp).hexdigest() + ",timestamp=" + timestamp
+

3.2.6 Ruby

+
require 'digest'
+apiKey="abc"
+secret="123"
+timestamp = Time.now.to_i
+toBeHashed = "#{apiKey}#{secret}#{timestamp}"
+signature = Digest::SHA2.new(512).hexdigest(toBeHashed)
+authHeaderValue = "Bearer apikey=#{apiKey},signature=#{signature},timestamp=#{timestamp}"
+

3.2.7 Perl

+
use strict;
+use Crypt::Digest::SHA512 qw(sha512_hex);
+my $apiKey = 'abc';
+my $secret = '123';
+my $timestamp = time;
+my $sig = sha512_hex($apiKey . $secret . $timestamp);
+my $authHeaderValue = "Bearer apikey=".$apiKey.",signature=".$sig.",timestamp=".$timestamp;
+print $authHeaderValue;
+

3.2.8 JavaScript

+
var crypto = require('crypto');
+var request = require('request');
+var apiKey = 'abc';
+var secret = '123';
+var timestamp = Math.round(new Date().getTime() / 1000);
+var hash = crypto.createHash('sha512').update(apiKey + secret + timestamp).digest('hex');
+var authHeaderValue = 'Bearer apikey=' + apiKey + ',signature=' + hash + ',timestamp=' + timestamp;
+

4.公共出参

+

4.1.Http Status Codes

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Code描述备注
200请求成功具体响应数据见Response Body
429请求过多,受限制接口有QPS限制
400输入参数错误错误信息见Response
401鉴权失败,无权限访问检查Authorization是否设置正确
500服务器错误
+

4.1.1.Status Code 401 错误示例:

+
{
+  "Data": {
+    "Code": 401,
+    "Message": "HTTP status code:401"
+  },
+  "RequestId": "923c79bb-3581-4e4a-900a-ee81ae3a6a04"
+}
+

Http Response Body

+ + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
RequestIdstring请求编号
Dataobject具体响应数据
+

5.公共信息类接口

+

5.1.语言

+ + + + + + + + + + + + + + + + + + +
说明备注
Request URLhttps://distapi-sandbox.heytripgo.com/Common/Languages区分测试正式环境域名
Request MethodGET
+

输出参数:

+ + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
Idstring编号
Namestring名称
+

Response samples:

+
{
+  "Data": [
+    {
+      "Id": "zh-CN",
+      "Name": "简体中文"
+    },
+    {
+      "Id": "en-US",
+      "Name": "English (US)" 
+    }
+  ],
+  "RequestId": "56f06a08-de78-4447-8cd0-cb815a3b8bd1"
+}
+

6.地理位置信息类接口

+

6.1.国家

+ + + + + + + + + + + + + + + + + + +
说明备注
Request URLhttps://distapi-sandbox.heytripgo.com/Location/Countries区分测试正式环境域名
Request MethodGET
+

输入参数:

+ + + + + + + + + + + + + + + + + +
名称类型是否必填描述示例值
languagestring语言zh-CN
+

输出参数:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
Idstring编号
Namestring名称
Latitudestring纬度
Longitudestring经度
+

Response samples:

+
{
+  "Data": [
+    {
+      "Id": "AD",
+      "Name": "安道尔",
+      "Latitude": "42.506526947021484",
+      "Longitude": "1.547698974609375"
+    }
+  ],
+  "RequestId": "957cff87-3934-4135-83ac-56a089914524"
+}
+

6.2.城市

+ + + + + + + + + + + + + + + + + + +
说明备注
Request URLhttps://distapi-sandbox.heytripgo.com/Location/Cities区分测试正式环境域名
Request MethodGET
+

输入参数:

+ + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述示例值
languagestring语言zh-CN
countryIdstring国家编号CN
+

输出参数:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
Idstring编号
Namestring名称
Latitudestring纬度
Longitudestring经度
+

Response samples:

+
{
+  "Data": [
+    {
+      "Id": "1286",
+      "Name": "石家庄",
+      "Latitude": "38.041872",
+      "Longitude": "114.513931"
+    }
+  ],
+  "RequestId": "957cff87-3934-4135-83ac-56a089914524"
+}
+

6.3 商圈 行政区查询接口

+ + + + + + + + + + + + + + + + + + +
说明备注
Request URLhttps://distapi-sandbox.heytripgo.com/Location/searchAdminiBusDistrict区分测试正式环境域名
Request MethodGET
+

输入参数:

+ + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述示例值
languagestring语言zh-CN
cityIdstring城市编码233
+

输出参数:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
LocationsList位置条件
AccommodationTypesDictionary<string, string>酒店类型
FacilitiesDictionary<string, string>设施
+

位置:GetHotelSearchConditionLocationDto

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
Categorystring种类
ItemsList明细
Selectedbool选中状态
+

明细:B2bGetLocationInfoByTypeIdDto

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
Typestring类型:Place、  Shop、  Area
Idstring编号
Namestring名称
LocaleNamestring本地化名称
Longitudestring经度
Latitudestring纬度
CountryCodestring国家编号
CountryNamestring国家名称
CountryLocaleNamestring国家本地化名称
CityIdstring城市编号
CityNamestring城市名称
CityLocaleNamestring城市本地化名称
+

Response samples:

+
 {
+    "Data": {
+        "Locations": [
+            {
+                "Category": "景点/地标",
+                "Items": [
+                    {
+                        "Type": "Place",
+                        "Id": "6981",
+                        "Name": "Tower of London",
+                        "LocaleName": "伦敦塔",
+                        "Longitude": "-0.075949",
+                        "Latitude": "51.508112",
+                        "CountryCode": null,
+                        "CountryName": null,
+                        "CountryLocaleName": null,
+                        "CityId": null,
+                        "CityName": null,
+                        "CityLocaleName": null
+                    },
+                    {
+                        "Type": "Place",
+                        "Id": "6971",
+                        "Name": "V&A  - Victoria and Albert Museum",
+                        "LocaleName": "维多利亚和艾伯特博物馆",
+                        "Longitude": "-0.17238",
+                        "Latitude": "51.496574",
+                        "CountryCode": null,
+                        "CountryName": null,
+                        "CountryLocaleName": null,
+                        "CityId": null,
+                        "CityName": null,
+                        "CityLocaleName": null
+                    },
+                    {
+                        "Type": "Place",
+                        "Id": "6983",
+                        "Name": "Tower Bridge",
+                        "LocaleName": "伦敦塔桥",
+                        "Longitude": "-0.075356",
+                        "Latitude": "51.505456",
+                        "CountryCode": null,
+                        "CountryName": null,
+                        "CountryLocaleName": null,
+                        "CityId": null,
+                        "CityName": null,
+                      leName": null,
+                        "CityId": null,
+                        "CityName": null,
+                        "CityLocaleName": null
+                    },
+                    {
+                        "Type": "Place",
+                        "Id": "113293",
+                        "Name": "Troubadour Wines",
+                        "LocaleName": "Troubadour Wines",
+                        "Longitude": "-0.191814",
+                        "Latitude": "51.488497",
+                        "CountryCode": null,
+                        "CountryName": null,
+                        "CountryLocaleName": null,
+                        "CityId": null,
+                        "CityName": null,
+                        "CityLocaleName": null
+                    },
+                    {
+                        "Type": "Place",
+                        "Id": "13869",
+                        "Name": "Ilford Golf Club",
+                        "LocaleName": "伊尔福德高尔夫俱乐部",
+                        "Longitude": "0.055472",
+                        "Latitude": "51.565475",
+                        "CountryCode": null,
+                        "CountryName": null,
+                        "CountryLocaleName": null,
+                        "CityId": null,
+                        "CityName": null,
+                        "CityLocaleName": null
+                    },
+                    {
+                        "Type": "Place",
+                        "Id": "204425",
+                        "Name": "King's Cross Station",
+                        "LocaleName": "King's Cross Station",
+                        "Longitude": "-0.123341",
+                        "Latitude": "51.531986",
+                        "CountryCode": null,
+                        "CountryName": null,
+                        "CountryLocaleName": null,
+                        "CityId": null,
+                        "CityName": null,
+                        "CityLocaleName": null
+                    },
+                    {
+                        "Type": "Place",
+                        "Id": "151824",
+                        "Name": "Embassy of Colombia",
+                        "LocaleName": "哥伦比亚大使馆",
+                        "Longitude": "-0.161345",
+                        "Latitude": "51.499063",
+                        "CountryCode": null,
+                        "CountryName": null,
+                        "CountryLocaleName": null,
+                        "CityId": null,
+                        "CityName": null,
+                        "CityLocaleName": null
+                    },
+                    {
+                        "Type": "Shop",
+                        "Id": "910565248",
+                        "Name": "New Park Fruiterers",
+                        "LocaleName": "New Park Fruiterers",
+                        "Longitude": "-0.1255244",
+                        "Latitude": "51.4485133",
+                        "CountryCode": null,
+                        "CountryName": null,
+                        "CountryLocaleName": null,
+                        "CityId": null,
+                        "CityName": null,
+                        "CityLocaleName": null
+                    },
+                    {
+                        "Type": "Shop",
+                        "Id": "910565070",
+                        "Name": "Mary Cook Antiques",
+                        "LocaleName": "Mary Cook Antiques",
+                        "Longitude": "-0.194781",
+                        "Latitude": "51.506824",
+                        "CountryCode": null,
+                        "CountryName": null,
+                        "CountryLocaleName": null,
+                        "CityId": null,
+                        "CityName": null,
+                        "CityLocaleName": null
+                    },
+                    {
+                        "Type": "Shop",
+                        "Id": "910560787",
+                        "Name": "Lidi",
+                        "LocaleName": "Lidi",
+                        "Longitude": "0.118996083212785",
+                        "Latitude": "51.4959265",
+                        "CountryCode": null,
+                        "CountryName": null,
+                        "CountryLocaleName": null,
+                        "CityId": null,
+                        "CityName": null,
+                        "CityLocaleName": null
+                    },
+                    {
+                        "Type": "Shop",
+                        "Id": "910560537",
+                        "Name": "Kingston Monday Market",
+                        "LocaleName": "Kingston Monday Market",
+                        "Longitude": "-0.298076",
+                        "Latitude": "51.40912",
+                        "CountryCode": null,
+                        "CountryName": null,
+                        "CountryLocaleName": null,
+                        "CityId": null,
+                        "CityName": null,
+                        "CityLocaleName": null
+                    },
+                    {
+                        "Type": "Shop",
+                        "Id": "910569376",
+                        "Name": "Partridges Food Market",
+                        "LocaleName": "Partridges Food Market",
+                        "Longitude": "-0.16061",
+                        "Latitude": "51.490726",
+                        "CountryCode": null,
+                        "CountryName": null,
+                        "CountryLocaleName": null,
+                        "CityId": null,
+                        "CityName": null,
+                        "CityLocaleName": null
+                    },
+                    {
+                        "Type": "Shop",
+                        "Id": "910567466",
+                        "Name": "Pak Discount Cash & Carry",
+                        "LocaleName": "Pak Discount Cash & Carry",
+                        "Longitude": "-0.2506357",
+                        "Latitude": "51.5387965",
+                        "CountryCode": null,
+                        "CountryName": null,
+                        "CountryLocaleName": null,
+                        "CityId": null,
+                        "CityName": null,
+                        "CityLocaleName": null
+                    },
+                    {
+                        "Type": "Shop",
+                        "Id": "910547531",
+                        "Name": "Happie Loves It",
+                        "LocaleName": "Happie Loves It",
+                        "Longitude": "-0.12242",
+                        "Latitude": "51.51484",
+                        "CountryCode": null,
+                        "CountryName": null,
+                        "CountryLocaleName": null,
+                        "CityId": null,
+                        "CityName": null,
+                        "CityLocaleName": null
+                    },
+                    {
+                        "Type": "Shop",
+                        "Id": "910550887",
+                        "Name": "It's Only Rock 'n' Roll",
+                        "LocaleName": "It's Only Rock 'n' Roll",
+                        "Longitude": "-0.15804",
+                        "Latitude": "51.523697",
+                        "CountryCode": null,
+                        "CountryName": null,
+                        "CountryLocaleName": null,
+                        "CityId": null,
+                        "CityName": null,
+                        "CityLocaleName": null
+                    },
+                    {
+                        "Type": "Shop",
+                        "Id": "910553580",
+                        "Name": "Hampstead Antique & Craft Emporium",
+                        "LocaleName": "Hampstead Antique & Craft Emporium",
+                        "Longitude": "-0.178534",
+                        "Latitude": "51.55549",
+                        "CountryCode": null,
+                        "CountryName": null,
+                        "CountryLocaleName": null,
+                        "CityId": null,
+                        "CityName": null,
+                        "CityLocaleName": null
+                    },
+                    {
+                        "Type": "Shop",
+                        "Id": "910552345",
+                        "Name": "Hope and Greenwood",
+                        "LocaleName": "Hope and Greenwood",
+                        "Longitude": "-0.120932",
+                        "Latitude": "51.512627",
+                        "CountryCode": null,
+                        "CountryName": null,
+                        "CountryLocaleName": null,
+                        "CityId": null,
+                        "CityName": null,
+                        "CityLocaleName": null
+                    },
+                    {
+                        "Type": "Shop",
+                        "Id": "910551593",
+                        "Name": "Grocery & General Store",
+                        "LocaleName": "Grocery & General Store",
+                        "Longitude": "0.176860300000044",
+                        "Latitude": "51.5820152000001",
+                        "CountryCode": null,
+                        "CountryName": null,
+                        "CountryLocaleName": null,
+                        "CityId": null,
+                        "CityName": null,
+                        "CityLocaleName": null
+                    },
+                    {
+                        "Type": "Shop",
+                        "Id": "910553288",
+                        "Name": "Hackett",
+                        "LocaleName": "Hackett",
+                        "Longitude": "-0.157841",
+                        "Latitude": "51.49315",
+                        "CountryCode": null,
+                        "CountryName": null,
+                        "CountryLocaleName": null,
+                        "CityId": null,
+                        "CityName": null,
+                        "CityLocaleName": null
+                    },
+                    {
+                        "Type": "Shop",
+                        "Id": "910557121",
+                        "Name": "Les Aldrich Music",
+                        "LocaleName": "Les Aldrich Music",
+                        "Longitude": "-0.146662",
+                        "Latitude": "51.590237",
+                        "CountryCode": null,
+                        "CountryName": null,
+                        "CountryLocaleName": null,
+                        "CityId": null,
+                        "CityName": null,
+                        "CityLocaleName": null
+                    },
+                    {
+                        "Type": "Shop",
+                        "Id": "910549569",
+                        "Name": "Havana Club",
+                        "LocaleName": "Havana Club",
+                        "Longitude": "-0.159357",
+                        "Latitude": "51.49851",
+                        "CountryCode": null,
+                        "CountryName": null,
+                        "CountryLocaleName": null,
+                        "CityId": null,
+                        "CityName": null,
+                        "CityLocaleName": null
+                    },
+                    {
+                        "Type": "Shop",
+                        "Id": "910570065",
+                        "Name": "Patrick Cox",
+                        "LocaleName": "Patrick Cox",
+                        "Longitude": "-0.158009",
+                        "Latitude": "51.493736",
+                        "CountryCode": null,
+                        "CountryName": null,
+                        "CountryLocaleName": null,
+                        "CityId": null,
+                        "CityName": null,
+                        "CityLocaleName": null
+                    },
+                    {
+                        "Type": "Shop",
+                        "Id": "910570173",
+                        "Name": "Oddbins Fine Wine Shops",
+                        "LocaleName": "Oddbins Fine Wine Shops",
+                        "Longitude": "-0.199637",
+                        "Latitude": "51.5086",
+                        "CountryCode": null,
+                        "CountryName": null,
+                        "CountryLocaleName": null,
+                        "CityId": null,
+                        "CityName": null,
+                        "CityLocaleName": null
+                    },
+                    {
+                        "Type": "Shop",
+                        "Id": "910570321",
+                        "Name": "Nilgiris",
+                        "LocaleName": "Nilgiris",
+                        "Longitude": "-0.103335014999971",
+                        "Latitude": "51.3789773",
+                        "CountryCode": null,
+                        "CountryName": null,
+                        "CountryLocaleName": null,
+                        "CityId": null,
+                        "CityName": null,
+                        "CityLocaleName": null
+                    },
+                    {
+                        "Type": "Shop",
+                        "Id": "910548445",
+                        "Name": "Horse Guards Building",
+                        "LocaleName": "马卫队大楼",
+                        "Longitude": "-0.127222",
+                        "Latitude": "51.504722",
+                        "CountryCode": null,
+                        "CountryName": null,
+                        "CountryLocaleName": null,
+                        "CityId": null,
+                        "CityName": null,
+                        "CityLocaleName": null
+                    },
+                    {
+                        "Type": "Shop",
+                        "Id": "910547065",
+                        "Name": "Hamilton's",
+                        "LocaleName": "Hamilton's",
+                        "Longitude": "-0.149697",
+                        "Latitude": "51.510708",
+                        "CountryCode": null,
+                        "CountryName": null,
+                        "CountryLocaleName": null,
+                        "CityId": null,
+                        "CityName": null,
+                        "CityLocaleName": null
+                    },
+                    {
+                        "Type": "Shop",
+                        "Id": "910567994",
+                        "Name": "Mysteries",
+                        "LocaleName": "Mysteries",
+                        "Longitude": "-0.126628",
+                        "Latitude": "51.51471",
+                        "CountryCode": null,
+                        "CountryName": null,
+                        "CountryLocaleName": null,
+                        "CityId": null,
+                        "CityName": null,
+                        "CityLocaleName": null
+                    },
+                    {
+                        "Type": "Shop",
+                        "Id": "910570269",
+                        "Name": "Primark Store",
+                        "LocaleName": "Primark Store",
+                        "Longitude": "-0.131049",
+                        "Latitude": "51.51651",
+                        "CountryCode": null,
+                        "CountryName": null,
+                        "CountryLocaleName": null,
+                        "CityId": null,
+                        "CityName": null,
+                        "CityLocaleName": null
+                    }
+                ],
+                "Selected": false
+            },
+            {
+                "Category": "行政区",
+                "Items": [
+                    {
+                        "Type": "Area",
+                        "Id": "233",
+                        "Name": "Greater London",
+                        "LocaleName": "大伦敦",
+                        "Longitude": "",
+                        "Latitude": "",
+                        "CountryCode": null,
+                        "CountryName": null,
+                        "CountryLocaleName": null,
+                        "CityId": null,
+                        "CityName": null,
+                        "CityLocaleName": null
+                    },
+                    {
+                        "Type": "Area",
+                        "Id": "26522",
+                        "Name": "Gatwick Airport",
+                        "LocaleName": "盖特威克机场",
+                        "Longitude": "",
+                        "Latitude": "",
+                        "CountryCode": null,
+                        "CountryName": null,
+                        "CountryLocaleName": null,
+                        "CityId": null,
+                                   "Type": "Area",
+                        "Id": "507633",
+                        "Name": "Windsor",
+                        "LocaleName": "温莎",
+                        "Longitude": "",
+                        "Latitude": "",
+                        "CountryCode": null,
+                        "CountryName": null,
+                        "CountryLocaleName": null,
+                        "CityId": null,
+                        "CityName": null,
+                        "CityLocaleName": null
+                    },
+                    {
+                        "Type": "Area",
+                        "Id": "507634",
+                        "Name": "Slough",
+                        "LocaleName": "斯劳",
+                        "Longitude": "",
+                        "Latitude": "",
+                        "CountryCode": null,
+                        "CountryName": null,
+                        "CountryLocaleName": null,
+                        "CityId": null,
+                        "CityName": null,
+                        "CityLocaleName": null
+                    },
+                    {
+                        "Type": "Area",
+                        "Id": "514784",
+                        "Name": "Twickenham",
+                        "LocaleName": "特威克纳姆",
+                        "Longitude": "",
+                        "Latitude": "",
+                        "CountryCode": null,
+                        "CountryName": null,
+                        "CountryLocaleName": null,
+                        "CityId": null,
+                        "CityName": null,
+                        "CityLocaleName": null
+                    },
+                    {
+                        "Type": "Area",
+                        "Id": "514785",
+                        "Name": "Watford",
+                        "LocaleName": "沃特福德",
+                        "Longitude": "",
+                        "Latitude": "",
+                        "CountryCode": null,
+                        "CountryName": null,
+                        "CountryLocaleName": null,
+                        "CityId": null,
+                        "CityName": null,
+                        "CityLocaleName": null
+                    },
+                    {
+                        "Type": "Area",
+                        "Id": "514786",
+                        "Name": "Croydon",
+                        "LocaleName": "克罗伊登",
+                        "Longitude": "",
+                        "Latitude": "",
+                        "CountryCode": null,
+                        "CountryName": null,
+                        "CountryLocaleName": null,
+                        "CityId": null,
+                        "CityName": null,
+                        "CityLocaleName": null
+                    },
+                    {
+                        "Type": "Area",
+                        "Id": "564240",
+                        "Name": "West Kensington",
+                        "LocaleName": "西肯辛顿",
+                        "Longitude": "",
+                        "Latitude": "",
+                        "CountryCode": null,
+                        "CountryName": null,
+                        "CountryLocaleName": null,
+                        "CityId": null,
+                        "CityName": null,
+                        "CityLocaleName": null
+                    },
+                    {
+                        "Type": "Area",
+                        "Id": "597352",
+                        "Name": "Edgware",
+                        "LocaleName": "埃奇韦尔",
+                        "Longitude": "",
+                        "Latitude": "",
+                        "CountryCode": null,
+                        "CountryName": null,
+                        "CountryLocaleName": null,
+                        "CityId": null,
+                        "CityName": null,
+                        "CityLocaleName": null
+                    },
+                    {
+                        "Type": "Area",
+                        "Id": "597562",
+                        "Name": "Kingston upon Thames",
+                        "LocaleName": "泰晤士河畔金斯顿",
+                        "Longitude": "",
+                        "Latitude": "",
+                        "CountryCode": null,
+                        "CountryName": null,
+                        "CountryLocaleName": null,
+                        "CityId": null,
+                        "CityName": null,
+                        "CityLocaleName": null
+                    }
+                ],
+                "Selected": false
+            }
+        ],
+        "AccommodationTypes": {
+            "102": "船屋",
+            "103": "整间平房",
+            "105": "胶囊旅馆",
+            "106": "木屋",
+            "107": "乡村民宿",
+            "108": "家庭旅馆",
+            "109": "农家旅馆",
+            "110": "假日公园",
+            "111": "客栈",
+            "112": "小屋",
+            "113": "爱情酒店",
+            "114": "帐篷",
+            "115": "摩洛哥传统庭院住宅",
+            "120": "酒店式公寓",
+            "122": "度假别墅",
+            "131": "独栋房屋",
+            "132": "家庭旅馆",
+            "133": "民宿",
+            "134": "町屋",
+            "28": "独立别墅",
+            "29": "公寓",
+            "30": "别墅",
+            "32": "旅馆/民宿",
+            "33": "青年旅馆",
+            "34": "酒店",
+            "35": "汽车旅馆",
+            "37": "度假村",
+            "38": "日式旅馆"
+        },
+        "Facilities": {
+            "57": "健身房 ",
+            "105": "高尔夫球场(3公里范围内)",
+            "61": "水疗",
+            "31": "WiFi上网",
+            "252": "出租车服务",
+            "116": "24小时前台",
+            "124": "行李寄存",
+            "22": "代客泊车",
+            "17": "酒店/机场接送",
+            "11": "餐厅",
+            "7": "酒吧",
+            "24": "可携带宠物",
+            "83": "吸烟区",
+            "355": "停车场(附近)",
+            "357": "免费停车 ",
+            "2675": "免费使用商务区",
+            "2678": "免费洗衣服务",
+            "2532": "会议/宴会设施"
+        }
+    },
+    "RequestId": "b12d1186-2d51-4b3f-b964-520d4308a310"
+}
+

# 7.酒店相关接口

+

7.1.获取有效酒店编号

+ + + + + + + + + + + + + + + + + + +
说明备注
Request URLhttps://distapi-sandbox.heytripgo.com/Accommodation/AvailableAccommodationIds区分测试正式环境域名
Request MethodGET
+

+

+

输入参数:

+

+ + + + + + + + + + + + + + + + + +
名称类型是否必填描述示例值
pageIndexint第几页1
+

输出参数:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
TotalPageint总页数
TotalCountint总数据行数
Dataint[]酒店编号数组
+

Response samples:

+
{
+  "TotalPage": 1692,
+  "TotalCount": 169146,
+  "Data": [
+    21321410
+  ],
+  "RequestId": "0a477b04-93c9-4bfd-9cb1-613147c0ffc5"
+}
+

7.2.获取酒店房型相关静态信息

+ + + + + + + + + + + + + + + + + + + + + + + +
说明备注
Request URLhttps://distapi-sandbox.heytripgo.com/Accommodation/AccommodationsDetails区分测试正式环境域名
Request MethodPOST
Content-Typeapplication/json
+

输入参数:

+

+ + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述示例值
Languagestring语言zh-CN
AccommodationIdsint[]酒店编号集合,最多仅可输入10个酒店编号[21321410,20933682]
+

输出参数:

+

** 酒店信息**

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述备注
HotelIdint酒店编号
HotelNamestring酒店名称
LocaleNamestring酒店本地化名称(根据输入参数Language)
CountryCodestring国家编号
CityIdstring城市编号
Addressstring地址
AddressLocalestring地址本地化名称
Phonestring电话
Latitudestring纬度
Longitudestring经度
Ratingdecimal星级
HotelTypestring酒店类型
Brandstring品牌
Descriptionstring描述
PostalCodestring邮编
RoomsRoom[]房型信息集合
HeroImgstring主图地址
HighlightXHotelHighlight亮点
UrlsUrl[]酒店图片信息
ReviewXHotelReview客评
FacilityXHotelFacility设施描述
LocationXHotelLocation附近位置信息
InformationsList酒店实用信息
InstructionXHotelInstruction酒店政策说明
SupplierTypestring酒店供应类型:SF(自签单体)   null(普通) 默认是null
SupplierMappingHotelIdList酒店聚合匹配酒店id (供应商 艺龙, Agoda)
+

+

输出房型(Room):

+

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述备注
RoomIdstring房型编号
RoomNamestring房型名称
LocaleNamestring房型本地化名称
BedTypeDescstring床型描述
MaxOccupancyMaxOccupancy最大入住人数信息
BedRoomsBedRoom[]卧室床型明细
Areastring面积
Viewsstring景观
Windowint窗户信息 0未知 1有窗 2无窗 3部分有窗 4内窗 5封闭窗 6部分内窗
Floorstring楼层
WiredBroadbandint有线网络信息 0未知 1无 2免费 3收费 4部分收费 5部分有且收费 6部分有且免费
WirelessWidebandint无线网络信息 0未知 1无 2免费 3收费 4部分收费 5部分有且收费 6部分有且免费
Smokingint吸烟信息 0未知 1禁烟 2部分禁烟 3可吸烟
BathRoomTypeint卫浴信息 0未知 1独立卫浴 2公共卫浴
ImagesList房型图片
+

输出最大入住人数(MaxOccupancy):

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
Totalint最大入住人数
Childrenint最大入住儿童数
Adultsint最大入住成人数
AgeCategoriesAgeCategory[]入住人年龄分类
+

房型入住人数年龄分类(AgeCategory)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
Namestring"Adult"  "Child" 有可能有些供应商分很多种类
MinAgedecimal?年龄最小值
MaxAgedecimal?年龄最大值
+

+

输出卧室床型明细(BedRoom):

+ + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
BedsBed[[]]床型,二维数组,外层是“或”关系
HasBathroombool是否有卫生间
+

输出卧室床型(Bed):

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
BedTypestring床型
BedSizestring床尺寸
Countint床数量
+

输出亮点(Highlight):

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
LocationHighlightDescstring位置亮点描述
MainHighlightsList亮点条目
+

输出亮点条目(MainHighlights):

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
Namestring名称
Categorystring种类
Tooltipstring提示(可鼠标覆盖展示)
+

输出客评(Review)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
Scoredecimal总评分
ReviewCountint点评数
ScoreDetailsList客评分类明细(总评分鼠标覆盖可展示)
Descstring描述 9-10惊艳了Exceptional 8-9棒棒哒Excellent 7-8还不错Very good 6-7一般Good 0-6评分Review score
SummariesList客人评论
PositiveMentionsList客人点赞分类
+

输出客评分类明细(XHotelReviewScoreDetail)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
Namestring名称
Categorystring种类 cleanliness(环境和清洁度) facilities(设施) location(位置) roomComfort(客房舒适度) staffPerformance(服务)valueForMoney(性价比)
Scoredecimal分数
CityAveragedecimal当前城市平均标准
+

输出客人评论(XHotelReviewSummaries)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
Countrystring点评客人来源国家
Reviewerstring点评客人昵称
ReviewRatingdecimal点评分数
Descstring点评描述
ReviewDateDateTime点评时间.
+

输出客人点赞分类(XHotelPositiveMention)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
Namestring分类名称
Countint点赞次数
+

输出设施描述(XHotelFacility)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
CategoriesList设施分类
HighlightsList亮点设施
+

输出设施分类(XHotelFacilityCategory)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
Categorystring设施种类
Namestring设施种类名称
ItemsList设施明细
+

输出标准酒店信息-设施(XHotelFacilityItem)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
Idstring设施编号
Namestring设施名称
Symbolstring符号
+

输出 附近位置信息(XHotelLocation)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
PoiScoredecimal?位置评分
AirportScoredecimal?机场评分
TransportationScoredecimal?公共交通评分
TopPlacesList热门地标
ShopsList附近商店
PlacesList附近地标
NearbyCategoriesList附近位置简要分类
WalkablePlacesXHotelWalkablePlaces可步行抵达地点信息
+

输出 标准酒店信息-附近位置条目(XHotelLocationItem)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述备注
Idstring编号无效字段
Namestring名称
Distancedecimal?距离(km)
Latitudedecimal?位置纬度
Longitudedecimal?位置经度
TypeNamestring类型无效字段
TypeIdstring类型编号无效字段
+

输出 附近位置简要分类(XHotelNearbyCategory)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
Categorystring分类
Namestring名称
PlacesListPlaces
MinDistancedecimal?最近距离
+

输出 (XHotelNearbyPlace)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
Distancedecimal?距离(km)
Latitudedecimal?位置纬度
Longitudedecimal?位置经度
Namestring名称
+

输出 可步行抵达地点信息(XHotelWalkablePlaces)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
Titlestring标题
Descstring描述
CategoriesList分类
+

输出 可步行抵达地点信息分类(XHotelWalkableCategory)

+ + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
Namestring名称
PlacesListPlaces
+

输出 可步行抵达地点信息条目(XHotelWalkablePlace)

+ + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
Distancedecimal?距离(km)
Namestring名称
+

输出 酒店实用信息(XHotelInformation)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
Categorystring种类
CategoryNamestring种类名称
ItemsList政策条目信息
+

输出 酒店政策条目信息条目(XHotelInformationItem)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
Idstring编号
Namestring名称
Valuestring
+

输出 酒店政策说明(XHotelInstruction)

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
Descstring描述
Specialstring特殊说明
FeesDescstring
+

输出房型图片 XRoomImage

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
Categorystring图片类型
Urlstring
+

输出聚合供应商酒店id CtripMappHotel

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
SourceSupplerstring供应商名称
SourceHotelIdstring标准酒店id
MappHotelIdstring聚合酒店id
MappRoomIdstring聚合房型id(不开放)
+

Request samples:

+
{
+  "Language": "zh-CN",
+  "AccommodationIds": [
+    21321410
+  ]
+}
+

Response samples:

+
{
+  "Data": {
+    "21321410": {
+      "HotelId": 21321410,
+      "HotelName": "Rosewood Guangzhou",
+      "LocaleName": "广州瑰丽酒店",
+      "CountryCode": "CN",
+      "CityId": "e2001",
+      "Address": "Floor 95, Guangzhou Zhoudafu Financial Center, No. 6 East Zhujiang Road",
+      "AddressLocale": "珠江东路6号广州周大福金融中心95层",
+      "Phone": "020-88528888",
+      "Latitude": "23.118153187",
+      "Longitude": "113.326415164",
+      "Rating": 0,
+      "HotelType": "34",
+      "Brand": "Rosewood",
+      "Description": "广州瑰丽酒店位处于新近开幕的周大福金融中心。周大福金融中心楼高 530 米,是广州崭新地标。广州瑰丽酒店矗立于繁华的天河商业区中心,地理位置优越。距离主要商业中心和知名文化及建筑地标都尽在咫尺。 瑰丽酒店精心诠释尊崇不凡品味,酒店建筑由Kohn Pedersen Fox Associates设计,成为城市新名片。垂直的服务式公寓拥有数个户外露台,平添宁静安逸氛围。酒店电梯格外引人注目,每秒 20 米的上升速度居全球首位,仿佛瞬间到达顶楼。内部设计由多伦多室内设计事务所Yabu Pushelberg担纲,于当代风格基础上融入一系列中式艺术品、建筑主题和本地材质,营造令人耳目一新的现代典雅居停。\"",
+      "PostalCode":"41140"
+      "Rooms": [
+        {
+          "RoomId": "C97nCoU0O/BeFV+hiR+kyg==",
+          "RoomName": "Deluxe Riverview King Room",
+          "LocaleName": "豪华江景大床客房",
+          "BedTypeDesc": "大床2米",
+          "MaxOccupancy": null,
+          "BedRooms": null,
+          "Area": "40-50",
+          "Views": "城景",
+          "Window": 5,
+          "Floor": "96-103",
+          "WiredBroadband": 2,
+          "WirelessWideband": 2,
+          "Smoking": 0,
+          "BathRoomType": 1
+        }
+      ],
+ "HeroImg": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttF05@mOAmZpUGvpOkp5@IAlX9vGB3ZSfZ4$LfuTdqdwsntv8zpbDaPZzNi36LZTBeA==.jpg ",
+            "Highlight": null,
+            "Urls": [
+                {
+                    "Caption": "外观",
+                    "Category": "5",
+                    "Urls": [
+                        {
+                            "Type": "Mid",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttF05@mOAmZpUGvpOkp5@IAlX9vGB3ZSfZ4$LfuTdqdwsntv8zpbDaPZzNi36LZTBeA==.jpg "
+                        },
+                        {
+                            "Type": "Max",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttMs@dF9IufAPjBFsmBHMvAvRE1TIjYO56tFdmLL7Qhpt8pv7TFbMpURHsuyv$NBUbA==.jpg "
+                        }
+                    ]
+                },
+                {
+                    "Caption": "客房",
+                    "Category": "8",
+                    "Urls": [
+                        {
+                            "Type": "Mid",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttF05@mOAmZpUGvpOkp5@IAmtoHEVXYjLKepFvwT8HZfqwJ7e0E5pV@ig$laUZWiK0w==.jpg "
+                        },
+                        {
+                            "Type": "Max",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttMs@dF9IufAPjBFsmBHMvAuFfD2yEyqqnqx9mk@DvVB6pcmNAng6cojHuVno0nePZQ==.jpg "
+                        },
+                        {
+                            "Type": "Mid",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttF05@mOAmZpUGvpOkp5@IAmtoHEVXYjLKepFvwT8HZfqhgkmqwG@q$qwjpy64mkM1Q==.jpg "
+                        },
+                        {
+                            "Type": "Max",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttMs@dF9IufAPjBFsmBHMvAuFfD2yEyqqnqx9mk@DvVB6hUcd6pUNdIacuQGiRQ9cAA==.jpg "
+                        },
+                        {
+                            "Type": "Mid",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttF05@mOAmZpUGvpOkp5@IAmtoHEVXYjLKepFvwT8HZfq4zf2zeHcBgsk3Q8jCDzrWA==.jpg "
+                        },
+                        {
+                            "Type": "Max",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttMs@dF9IufAPjBFsmBHMvAuFfD2yEyqqnqx9mk@DvVB6Yub4vC9oZjwreraifL9HhQ==.jpg "
+                        },
+                        {
+                            "Type": "Mid",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttF05@mOAmZpUGvpOkp5@IAmtoHEVXYjLKepFvwT8HZfq5QZuLCQr@sK8EwwG4lIQ7g==.jpg "
+                        },
+                        {
+                            "Type": "Max",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttMs@dF9IufAPjBFsmBHMvAuFfD2yEyqqnqx9mk@DvVB6Jg8JbKlMiyzey29j76Tk5Q==.jpg "
+                        }
+                    ]
+                },
+                {
+                    "Caption": "大堂/接待台",
+                    "Category": "6",
+                    "Urls": [
+                        {
+                            "Type": "Mid",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttF05@mOAmZpUGvpOkp5@IAmtoHEVXYjLKepFvwT8HZfqY9FKEz2u9YVeeWP4nWan2Q==.jpg "
+                        },
+                        {
+                            "Type": "Max",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttMs@dF9IufAPjBFsmBHMvAuFfD2yEyqqnqx9mk@DvVB6KBS4N9FcPmiGCiDxq4rVOQ==.jpg "
+                        },
+                        {
+                            "Type": "Mid",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttF05@mOAmZpUGvpOkp5@IAmtoHEVXYjLKepFvwT8HZfqKhd@ld0U7XsaKHqL77$lzg==.jpg "
+                        },
+                        {
+                            "Type": "Max",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttMs@dF9IufAPjBFsmBHMvAuFfD2yEyqqnqx9mk@DvVB6@mVGEJwOHH9jikBDvThphA==.jpg "
+                        },
+                        {
+                            "Type": "Mid",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttF05@mOAmZpUGvpOkp5@IAmtoHEVXYjLKepFvwT8HZfqaUS8ntSJYYDNe6eiQ16JRg==.jpg "
+                        },
+                        {
+                            "Type": "Max",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttMs@dF9IufAPjBFsmBHMvAuFfD2yEyqqnqx9mk@DvVB6mRAwhPnj2aLunHBHgeMJag==.jpg "
+                        },
+                        {
+                            "Type": "Mid",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttF05@mOAmZpUGvpOkp5@IAmtoHEVXYjLKepFvwT8HZfqdgdCNq@OHVFecKbLmNcPoQ==.jpg "
+                        },
+                        {
+                            "Type": "Max",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttMs@dF9IufAPjBFsmBHMvAuFfD2yEyqqnqx9mk@DvVB65hqO2oumw3A254JS2vKEdA==.jpg "
+                        },
+                        {
+                            "Type": "Mid",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttF05@mOAmZpUGvpOkp5@IAmtoHEVXYjLKepFvwT8HZfqfpuTTIkOyklyFdKMHx6Viw==.jpg "
+                        },
+                        {
+                            "Type": "Max",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttMs@dF9IufAPjBFsmBHMvAuFfD2yEyqqnqx9mk@DvVB6TJEjGmtsO@AppzkrM5uIlg==.jpg "
+                        }
+                    ]
+                },
+                {
+                    "Caption": "休闲",
+                    "Category": "2",
+                    "Urls": [
+                        {
+                            "Type": "Mid",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttF05@mOAmZpUGvpOkp5@IAmQ8OZjnuvswnYBDpo2lhY13QcZcO81QyHBaEpV6ga9hA==.jpg "
+                        },
+                        {
+                            "Type": "Max",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttMs@dF9IufAPjBFsmBHMvAuFfD2yEyqqnqx9mk@DvVB6j4rJq@vqk02SfE2O@1dXOg==.jpg "
+                        }
+                    ]
+                },
+                {
+                    "Caption": "公共区域",
+                    "Category": "11",
+                    "Urls": [
+                        {
+                            "Type": "Mid",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttF05@mOAmZpUGvpOkp5@IAmQ8OZjnuvswnYBDpo2lhY1a39cxczv2Wwo3wmRrD9rHg==.jpg "
+                        },
+                        {
+                            "Type": "Max",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttMs@dF9IufAPjBFsmBHMvAuFfD2yEyqqnqx9mk@DvVB6FYdPIHUikoAAd1jVC@ekrg==.jpg "
+                        },
+                        {
+                            "Type": "Mid",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttF05@mOAmZpUGvpOkp5@IAmtoHEVXYjLKepFvwT8HZfq7BRG6uQkvVoUGAdPGlfAtQ==.jpg "
+                        },
+                        {
+                            "Type": "Max",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttMs@dF9IufAPjBFsmBHMvAuFfD2yEyqqnqx9mk@DvVB6w$etZWJ3skuYRSY8d0WNsA==.jpg "
+                        },
+                        {
+                            "Type": "Mid",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttF05@mOAmZpUGvpOkp5@IAmtoHEVXYjLKepFvwT8HZfqZnmWEuD2gXnjOUSGzwYE0w==.jpg "
+                        },
+                        {
+                            "Type": "Max",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttMs@dF9IufAPjBFsmBHMvAuFfD2yEyqqnqx9mk@DvVB6fH@Sl3ij405of3vqufJVhQ==.jpg "
+                        }
+                    ]
+                },
+                {
+                    "Caption": "餐厅",
+                    "Category": "1",
+                    "Urls": [
+                        {
+                            "Type": "Mid",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttF05@mOAmZpUGvpOkp5@IAmtoHEVXYjLKepFvwT8HZfqXAGxt8cBQ4TxYwOAKhiDEA==.jpg "
+                        },
+                        {
+                            "Type": "Max",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttMs@dF9IufAPjBFsmBHMvAuFfD2yEyqqnqx9mk@DvVB6w2Onvsl7kHcVcnViuOS$yQ==.jpg "
+                        },
+                        {
+                            "Type": "Mid",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttF05@mOAmZpUGvpOkp5@IAmtoHEVXYjLKepFvwT8HZfqt$lnVsFU6d42axK8PsHbUA==.jpg "
+                        },
+                        {
+                            "Type": "Max",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttMs@dF9IufAPjBFsmBHMvAuFfD2yEyqqnqx9mk@DvVB6rcxiggsxXLVll4guYXKuTA==.jpg "
+                        },
+                        {
+                            "Type": "Mid",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttF05@mOAmZpUGvpOkp5@IAmtoHEVXYjLKepFvwT8HZfqoh3MTqc08rp@t3T4A73kZw==.jpg "
+                        },
+                        {
+                            "Type": "Max",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttMs@dF9IufAPjBFsmBHMvAuFfD2yEyqqnqx9mk@DvVB66PyQgpOhnjGW36dy3VJKHw==.jpg "
+                        },
+                        {
+                            "Type": "Mid",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttF05@mOAmZpUGvpOkp5@IAmtoHEVXYjLKepFvwT8HZfqORtTNTT8$bx3cA3fe2w3@Q==.jpg "
+                        },
+                        {
+                            "Type": "Max",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttMs@dF9IufAPjBFsmBHMvAuFfD2yEyqqnqx9mk@DvVB6xFq00p5eqTH9uuvTuIBR@A==.jpg "
+                        }
+                    ]
+                },
+                {
+                    "Caption": "会议与服务",
+                    "Category": "3",
+                    "Urls": [
+                        {
+                            "Type": "Mid",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttF05@mOAmZpUGvpOkp5@IAmtoHEVXYjLKepFvwT8HZfqU6u7UZrMuBEu1KG9SkwCHw==.jpg "
+                        },
+                        {
+                            "Type": "Max",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttMs@dF9IufAPjBFsmBHMvAuFfD2yEyqqnqx9mk@DvVB6yqfwvlupDTabEawV2du@FQ==.jpg "
+                        },
+                        {
+                            "Type": "Mid",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttF05@mOAmZpUGvpOkp5@IAmtoHEVXYjLKepFvwT8HZfqoYbEQuse$XBnSq55sZMJiQ==.jpg "
+                        },
+                        {
+                            "Type": "Max",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttMs@dF9IufAPjBFsmBHMvAuFfD2yEyqqnqx9mk@DvVB6FkEnJJu4Rg3lqRzno1MVJA==.jpg "
+                        },
+                        {
+                            "Type": "Mid",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttF05@mOAmZpUGvpOkp5@IAmtoHEVXYjLKepFvwT8HZfq8CVp766xOTrvvkdh3mjgSg==.jpg "
+                        },
+                        {
+                            "Type": "Max",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttMs@dF9IufAPjBFsmBHMvAuFfD2yEyqqnqx9mk@DvVB6Wsl1zS4HTziV6@B9y6mDEg==.jpg "
+                        },
+                        {
+                            "Type": "Mid",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttF05@mOAmZpUGvpOkp5@IAmtoHEVXYjLKepFvwT8HZfqnSBB8xSEUNIXhVcw3dQuHw==.jpg "
+                        },
+                        {
+                            "Type": "Max",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttMs@dF9IufAPjBFsmBHMvAuFfD2yEyqqnqx9mk@DvVB6UVd$Piqp3j0fRyaFuaEnpw==.jpg "
+                        },
+                        {
+                            "Type": "Mid",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttF05@mOAmZpUGvpOkp5@IAmtoHEVXYjLKepFvwT8HZfqvpdLfxuJj6aWu54irQ6z3A==.jpg "
+                        },
+                        {
+                            "Type": "Max",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttMs@dF9IufAPjBFsmBHMvAuFfD2yEyqqnqx9mk@DvVB65K8Q8ITZJoovPDCZ8xcFnA==.jpg "
+                        }
+                    ]
+                },
+                {
+                    "Caption": "其他",
+                    "Category": "10",
+                    "Urls": [
+                        {
+                            "Type": "Mid",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttF05@mOAmZpUGvpOkp5@IAmtoHEVXYjLKepFvwT8HZfqjpVL@zigeGy3xTfuy3qPMw==.jpg "
+                        },
+                        {
+                            "Type": "Max",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttMs@dF9IufAPjBFsmBHMvAuFfD2yEyqqnqx9mk@DvVB6brYeRyrHOH2C8ZIborvARg==.jpg "
+                        },
+                        {
+                            "Type": "Mid",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttF05@mOAmZpUGvpOkp5@IAmtoHEVXYjLKepFvwT8HZfqSzq34bCI4@rxYm5$LboHzg==.jpg "
+                        },
+                        {
+                            "Type": "Max",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttMs@dF9IufAPjBFsmBHMvAuFfD2yEyqqnqx9mk@DvVB64@kayyQcDD84S0oGjZ8JHw==.jpg "
+                        },
+                        {
+                            "Type": "Mid",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttF05@mOAmZpUGvpOkp5@IAmtoHEVXYjLKepFvwT8HZfqYhrAA9jDdj4OJaQyVWFRNg==.jpg "
+                        },
+                        {
+                            "Type": "Max",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttMs@dF9IufAPjBFsmBHMvAuFfD2yEyqqnqx9mk@DvVB6d398DKHAZ1oGmtWcy8fNog==.jpg "
+                        },
+                        {
+                            "Type": "Mid",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttF05@mOAmZpUGvpOkp5@IAlX9vGB3ZSfZ4$LfuTdqdwsvAioeHVE7Kauh8ctoIK2PQ==.jpg "
+                        },
+                        {
+                            "Type": "Max",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttMs@dF9IufAPjBFsmBHMvAvRE1TIjYO56tFdmLL7Qhptbq4eCQOq1NSV$bOLa5Jc5w==.jpg "
+                        }
+                    ]
+                },
+                {
+                    "Caption": "周边图片",
+                    "Category": "12",
+                    "Urls": [
+                        {
+                            "Type": "Mid",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttF05@mOAmZpUGvpOkp5@IAmtoHEVXYjLKepFvwT8HZfqk@106Ab@pDTaGpzAhlL4cQ==.jpg "
+                        },
+                        {
+                            "Type": "Max",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttMs@dF9IufAPjBFsmBHMvAuFfD2yEyqqnqx9mk@DvVB6sWu7REvQQMO34uHaT$94dQ==.jpg "
+                        },
+                        {
+                            "Type": "Mid",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttF05@mOAmZpUGvpOkp5@IAmtoHEVXYjLKepFvwT8HZfq@Vsu@Y0Q9AFNI7X19kZHWQ==.jpg "
+                        },
+                        {
+                            "Type": "Max",
+                            "Url": "http://i.xiwantrip.com/image2/cIFi13sqeCTeEfD0RF2ttMs@dF9IufAPjBFsmBHMvAuFfD2yEyqqnqx9mk@DvVB63F6nFSZqAOf7Ya3MLDQAxg==.jpg "
+                        }
+                    ]
+                }
+            ],
+            "Review": {
+                "Score": 9.6,
+                "ReviewCount": 149,
+                "ScoreDetails": null,
+                "Desc": "惊艳了",
+                "Summaries": null,
+                "PositiveMentions": null
+            },
+            "Facility": {
+                "Categories": [
+                    {
+                        "Category": "General facilities",
+                        "Name": "基础设施",
+                        "Items": [
+                            {
+                                "Id": "31",
+                                "Name": "免费wifi",
+                                "Symbol": null
+                            },
+                            {
+                                "Id": "",
+                                "Name": "急救包",
+                                "Symbol": null
+                            },
+                            {
+                                "Id": "11",
+                                "Name": "餐厅",
+                                "Symbol": null
+                            },
+                            {
+                                "Id": "",
+                                "Name": "有电梯",
+                                "Symbol": null
+                            },
+                            {
+                                "Id": "",
+                                "Name": "净水机",
+                                "Symbol": null
+                            },
+                            {
+                                "Id": "",
+                                "Name": "干衣机",
+                                "Symbol": null
+                            },
+                            {
+                                "Id": "",
+                                "Name": "火灾报警器",
+                                "Symbol": null
+                            },
+                            {
+                                "Id": "2573",
+                                "Name": "灭火器",
+                                "Symbol": null
+                            },
+                            {
+                                "Id": "2541",
+                                "Name": "烟雾报警器",
+                                "Symbol": null
+                            },
+                            {
+                                "Id": "",
+                                "Name": "门禁系统",
+                                "Symbol": null
+                            },
+                            {
+                                "Id": "",
+                                "Name": "安全报警器",
+                                "Symbol": null
+                            },
+                            {
+                                "Id": "",
+                                "Name": "新风系统",
+                                "Symbol": null
+                            },
+                            {
+                                "Id": "83",
+                                "Name": "吸烟区",
+                                "Symbol": null
+                            },
+                            {
+                                "Id": "254",
+                                "Name": "无障碍通道",
+                                "Symbol": null
+                            },
+                            {
+                                "Id": "",
+                                "Name": "书吧",
+                                "Symbol": null
+                            },
+                            {
+                                "Id": "",
+                                "Name": "大堂吧",
+                                "Symbol": null
+                            },
+                            {
+                                "Id": "",
+                                "Name": "公共区域闭路电视监控系统",
+                                "Symbol": null
+                            },
+                            {
+                                "Id": "2532",
+                                "Name": "会议厅",
+                                "Symbol": null
+                            },
+                            {
+                                "Id": "",
+                                "Name": "一氧化碳报警器",
+                                "Symbol": null
+                            },
+                            {
+                                "Id": "",
+                                "Name": "洗涤用具",
+                                "Symbol": null
+                            },
+                            {
+                                "Id": "",
+                                "Name": "熨斗/挂烫机",
+                                "Symbol": null
+                            },
+                            {
+                                "Id": "",
+                                "Name": "多功能厅",
+                                "Symbol": null
+                            },
+                            {
+                                "Id": "",
+                                "Name": "洗衣房",
+                                "Symbol": null
+                            },
+                            {
+                                "Id": "357",
+                                "Name": "免费停车",
+                                "Symbol": null
+                            }
+                        ]
+                    },
+                    {
+                        "Category": "Recreation facilities",
+                        "Name": "休闲设施",
+                        "Items": [
+                            {
+                                "Id": "",
+                                "Name": "KTV",
+                                "Symbol": null
+                            },
+                            {
+                                "Id": "57",
+                                "Name": "健身室",
+                                "Symbol": null
+                            }
+                        ]
+                    },
+                    {
+                        "Category": "Service facilities",
+                        "Name": "服务设施",
+                        "Items": [
+                            {
+                                "Id": "",
+                                "Name": "共享办公空间",
+                                "Symbol": null
+                            },
+                            {
+                                "Id": "118",
+                                "Name": "干洗",
+                                "Symbol": null
+                            },
+                            {
+                                "Id": "2537",
+                                "Name": "熨衣服务",
+                                "Symbol": null
+                            },
+                            {
+                                "Id": "",
+                                "Name": "叫醒服务",
+                                "Symbol": null
+                            },
+                            {
+                                "Id": "8",
+                                "Name": "洗衣服务",
+                                "Symbol": null
+                            },
+                            {
+                                "Id": "",
+                                "Name": "保安人员",
+                                "Symbol": null
+                            },
+                            {
+                                "Id": "",
+                                "Name": "专职行李员",
+                                "Symbol": null
+                            },
+                            {
+                                "Id": "124",
+                                "Name": "行李寄存",
+                                "Symbol": null
+                            },
+                            {
+                                "Id": "",
+                                "Name": "快速入住退房",
+                                "Symbol": null
+                            },
+                            {
+                                "Id": "",
+                                "Name": "电子身份证",
+                                "Symbol": null
+                            },
+                            {
+                                "Id": "116",
+                                "Name": "24小时前台",
+                                "Symbol": null
+                            },
+                            {
+                                "Id": "249",
+                                "Name": "邮政服务",
+                                "Symbol": null
+                            },
+                            {
+                                "Id": "",
+                                "Name": "婚宴服务",
+                                "Symbol": null
+                            },
+                            {
+                                "Id": "",
+                                "Name": "多语种服务",
+                                "Symbol": null
+                            },
+                            {
+                                "Id": "",
+                                "Name": "商务服务",
+                                "Symbol": null
+                            },
+                            {
+                                "Id": "",
+                                "Name": "叫车服务",
+                                "Symbol": null
+                            }
+                        ]
+                    }
+                ],
+                "Highlights": null
+            },
+            "Location": null,
+            "Informations": null,
+            "Instruction": null,
+            "SupplierType": "",
+            "SupplierMappingHotelId": "[{\"SourceSuppler\":\"Elong\",\"SourceHotelId\":\"21922944\",\"MappHotelId\":\"18885830\",\"MappRoomId\":null},{\"SourceSuppler\":\"Agoda\",\"SourceHotelId\":\"21922944\",\"MappHotelId\":null,\"MappRoomId\":null}]"
+    }
+  },
+  "RequestId": "bda5fa6b-2ab8-4d8e-9364-9894b03deb75"
+}
+

7.3.获取酒店报价

+ + + + + + + + + + + + + + + + + + + + + + + +
说明备注
Request URLhttps://distapi-sandbox.heytripgo.com/Accommodation/Availability区分测试正式环境域名
Request MethodPOST
Content-Typeapplication/json
+

输入参数:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述示例值
Languagestring语言zh-CN
AccommodationIdsint[]酒店编号集合,目前仅支持1个酒店查询[21321410]
CheckInDateDate入住日期2024-03-15
CheckOutDateDate离店日期2024-03-16
Nationalitystring国籍CN
NumberOfAdultsint入住总成人数1
ChildrenAgesint[]入住每个儿童年龄[6,8]
NumberOfRoomsint预订房间数1
Currencystring币种,目前仅支持人民币CNY
+

输出房型(RoomPrice): +与静态数据房型一致,下面列出比静态数据多的信息

+ + + + + + + + + + + + + + + +
名称类型是否必填描述
RatePlansRatePlan[]价格计划集合
+

输出价格计划(RatePlan):

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
RatePlanIdstring价格计划编号
RatePlanNamestring价格计划名称
Availableint可订状态 1可订 0不可订
MealTypeint餐食类型 1明确数量(早中晚餐食看Breakfast Lunch Dinner 数量);2半包;3全包;4午/晚二选一;5早+ 午/晚二选一;
Breakfastint早餐数量
Lunchint午餐数量
Dinnerint晚餐数量
BookingRuleBookingRule预订规则
Cancelablebool是否可取消
CancelRulesCancelRule[]取消规则信息: 0 未知 1扣首日 2扣全额 3按价格多少百分比扣 4免费取消 5扣几晚 6扣多少钱
PayTypeint付款方式 1现付 2预付
Currencystring币种 CNY
Pricedecimal价格
OfflineFeedecimal到店付费用
OfflineFeeCurrencystring到店付币种 CNY
InstantConfirmbool是否即时确认
DailysPlanDailyDto[]每日价格
InvoiceTypeint开票方式:0 Unknown 、1 提供方开票 、2 酒店开票、3 供应商开票
SpecialInvoicebool?是否提供专票:  null  true false
+

输出取消规则 CancelRules

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
DeductTypeint取消手续费类型:0 未知 1扣首日 2扣全额 3按价格多少百分比扣 4免费取消 5扣几晚 6扣多少钱
Descstring描述
StartTimeDateTime取消规则的生效日期和时间 北京时间
EndTimeDateTime取消规则的结束日期和时间 北京时间
StartTimeLocalstring取消规则的生效日期和时间 酒店当地时间
EndTimeLocalstring取消规则的结束日期和时间 酒店当地时间
DeductValuedecimal扣款相关数值:                                                                                                     1.按价格多少百分比扣,DeductType为3时有值,0.5代表百分之50 ;             2.扣几晚,DeductType为5时有值,2.0代表扣两晚;                                       3.扣多少钱
+

输出预订规则 BookingRule

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
Descstring描述
MinDaysint最小连住天数,要求连住
MaxDaysint最大连住天数,连住限制
MinAmountint最小预订房量
MaxAmountint最大预订房量
MinAdvHoursint最小提前预订小时 以入住日24点往前推算
MaxAdvHoursint最大提前预订小时 以入住日24点往前推算
+

输出每日价格:PlanDailyDto

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
DateDateTime日期
Pricedecimal价格
+

Request samples:

+
{
+  "Language": "zh-CN",
+  "AccommodationIds": [20933682],
+  "CheckInDate": "2024-03-20",
+  "CheckOutDate": "2024-03-21",
+  "Nationality": "CN",
+  "NumberOfAdults": 1,
+  "ChildrenAges": [],
+  "NumberOfRooms": 1,
+  "Currency": "CNY"
+}
+

Response samples:

+
{
+  "Data": [
+    {
+      "RatePlans": [
+        {
+          "RatePlanId": "ZKJWckyeWWbU9xDCqPOKzUkyZ58yqsqIYdGV7+shA7E=",
+          "RatePlanName": "",
+          "Available": 1,
+          "MealType": 1,
+          "Breakfast": 1,
+          "Lunch": 0,
+          "Dinner": 0,
+          "BookingRule": null,
+          "Cancelable": false,
+          "CancelRules": null,
+          "PayType": 2,
+          "Currency": "Unknown",
+          "Quantity": null,
+          "Price": 788,
+          "OfflineFee": null,
+          "OfflineFeeCurrency": null
+        }
+      ],
+      "RoomId": "jEB7EqsCEKIrYRi0NW32gGAjvdtgO6coxDr5yHYAOw4=",
+      "RoomName": "Guestroom - Mountain-View (Double bed)",
+      "LocaleName": "桃源山景大床房",
+      "BedTypeDesc": "大床",
+      "MaxOccupancy": {
+        "Total": 1,
+        "Children": 0,
+        "Adults": 1,
+        "AgeCategories": null
+      },
+      "BedRooms": null,
+      "Area": "60",
+      "Views": null,
+      "Window": 1,
+      "Floor": "5-8",
+      "WiredBroadband": 0,
+      "WirelessWideband": 0,
+      "Smoking": 0,
+      "BathRoomType": 0
+    }
+  ],
+  "RequestId": "74de720e-e4b5-4d49-b7c4-34ae890f1d36"
+}
+

7.4.下单前验证报价是否可订

+ + + + + + + + + + + + + + + + + + + + + + + +
说明备注
Request URLhttps://distapi-sandbox.heytripgo.com/Accommodation/PriceCheck区分测试正式环境域名
Request MethodPOST
Content-Typeapplication/json
+

输入参数:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述示例值
Languagestring语言zh-CN
AccommodationIdint酒店编号21321410
CheckInDateDate入住日期2024-03-15
CheckOutDateDate离店日期2024-03-16
Nationalitystring国籍CN
NumberOfAdultsint入住总成人数1
ChildrenAgesint[]入住每个儿童年龄[6,8]
NumberOfRoomsint预订房间数1
Currencystring币种,目前仅支持人民币CNY
RoomIdstring房型编号
RatePlanIdstring价格计划编号
+

输出参数:

+ + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
Statusstringavailable可订 sold_out满房
RoomRoomPrice房型房价
+

Request samples:

+
{
+  "Language": "zh-CN",
+  "AccommodationId": 20933682,
+  "CheckInDate": "2024-03-20",
+  "CheckOutDate": "2024-03-21",
+  "Nationality": "CN",
+  "NumberOfAdults": 1,
+  "ChildrenAges": [],
+  "NumberOfRooms": 1,
+  "Currency": "CNY",
+  "RoomId": "OhMH1UiLbn0EsWE7bqMdNGj5pFt5Kmttn7ezLgZOZiU=",
+  "RatePlanId": "lh7If8Ji42SAtfp3HHKW/wdoWbCbSJnDW49cXI5mzA4="
+}
+

Response samples:

+
{
+  "Data": {
+    "Status": "available",
+    "Room": {
+      "RatePlans": [
+        {
+          "RatePlanId": "lh7If8Ji42SAtfp3HHKW/wdoWbCbSJnDW49cXI5mzA4=",
+          "RatePlanName": "",
+          "Available": 1,
+          "MealType": 1,
+          "Breakfast": 1,
+          "Lunch": 0,
+          "Dinner": 0,
+          "BookingRule": null,
+          "Cancelable": false,
+          "CancelRules": null,
+          "PayType": 2,
+          "Currency": "Unknown",
+          "Quantity": null,
+          "Price": 667,
+          "OfflineFee": null,
+          "OfflineFeeCurrency": null,
+          "InstantConfirm": false
+        }
+      ],
+      "RoomId": "OhMH1UiLbn0EsWE7bqMdNGj5pFt5Kmttn7ezLgZOZiU=",
+      "RoomName": "Standard Mountain View King Room",
+      "LocaleName": "云山山景大床房",
+      "BedTypeDesc": "大床",
+      "MaxOccupancy": {
+        "Total": 1,
+        "Children": 0,
+        "Adults": 1,
+        "AgeCategories": null
+      },
+      "BedRooms": null,
+      "Area": "39",
+      "Views": null,
+      "Window": 1,
+      "Floor": "2-8",
+      "WiredBroadband": 0,
+      "WirelessWideband": 0,
+      "Smoking": 0,
+      "BathRoomType": 0
+    }
+  },
+  "RequestId": "adbed75d-0ed8-40a0-b504-2cdad55061e7"
+}
+

7.5.酒店起价查询接口

+ + + + + + + + + + + + + + + + + + + + + + + +
说明备注
Request URLhttps://distapi-sandbox.heytripgo.com/Accommodation/QuotedHotelsPrice区分测试正式环境域名
Request MethodPost
Content-Typeapplication/json
+

输入参数:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述示例值
CheckInDateDateTime入住时间
CheckOutDateDateTime离店时间
adultNumint成人人数
roomCountint房间数
childNumint儿童数
ageList儿童年龄
nationalitystring国籍
hotelIdsList酒店id集合(一次只能查10条)
+

输出参数:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
Idint酒店id
Pricedecimal价格
Currencystring币种
dailiesList查询时间区间起价明()
+

输出参数(DailyPrice)

+ + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
Dateint日期
MinPricedecimal价格
+

Request samples:

+
{
+  "CheckInDate": "2024-04-12T09:17:35.941Z",
+  "CheckOutDate": "2024-04-12T09:17:35.941Z",
+  "adultNum": 0,
+  "roomCount": 0,
+  "childNum": 0,
+  "age": [
+    0
+  ],
+  "nationality": "string",
+  "hotelIds": [
+    0
+  ]
+}
+

Response samples:

+
{
+    "Data": [
+        {
+            "Id": 20612452,
+            "Price": 171.0,
+            "Currency": "CNY"
+        },
+        {
+            "Id": 20612493,
+            "Price": 92.0,
+            "Currency": "CNY"
+        },
+        {
+            "Id": 20612438,
+            "Price": 349.0,
+            "Currency": "CNY"
+        },
+        {
+            "Id": 20612469,
+            "Price": 215.0,
+            "Currency": "CNY"
+        },
+        {
+            "Id": 20612418,
+            "Price": 126.0,
+            "Currency": "CNY"
+        }
+    ],
+    "RequestId": "3d6288bc-65c2-4b43-944b-7695b73db1c0"
+}
+

7.6 增量接口

+

+ + + + + + + + + + + + + + + + + + + + + + + +
说明备注
Request URLhttps://distapi-sandbox.heytripgo.com/Accommodation/GetPriceCacheIncrement区分测试正式环境域名
Request MethodGET
Content-Typeapplication/json
+

输入参数:

+ + + + + + + + + + + + + + + + + +
名称类型是否必填描述示例值
maxIdlong增量编号1
+

输出参数:

+ + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述示例值
MaxIdlong增量最大编号111
DetailsList增量明细
+

输出对象:XPriceCacheIncrementDetail

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
HotelIdstring酒店编号
CheckInDateDateTime?变更入住日期/变更价格的日期(有些供应商是指定某个日期,不含离店)
CheckOutDateDateTime?变更离店日期/变更价格的日期
+

Response samples:

+
+

+

8.订单相关接口

+

8.1.1创建订单

+ + + + + + + + + + + + + + + + + + + + + + + +
说明备注
Request URLhttps://distapi-sandbox.heytripgo.com/Order/Create区分测试正式环境域名
Request MethodPOST
Content-Typeapplication/json
+

1.下单前建议先验单获知最新准确的价格,但是这个步骤不是必须的; +2.TotalSalePrice 你的销售总价,内部下单前根据TotalSalePrice是否大于即将下单的价格,如果是亏损的会拦截下单

+

输入参数:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述示例值
Languagestring语言zh-CN
AccommodationIdint酒店编号21321410
CheckInDateDate入住日期2024-03-15
CheckOutDateDate离店日期2024-03-16
Nationalitystring国籍CN
NumberOfAdultsint入住总成人数1
ChildrenAgesint[]入住每个儿童年龄[6,8]
NumberOfRoomsint预订房间数1
Currencystring币种,目前仅支持人民币CNY
RoomIdstring房型编号
RatePlanIdstring价格计划编号
TotalSalePricedecimal你的销售价格
ArrivalTimestring预计到店时间,格式:HH:mm
SpecialRequeststring特殊要求
RoomGuestsRoomGuest[]房间客人信息
ContactInfoContactInfo联系人信息
DistributorOrderIdstring分销商单号
+

输入房间客人信息(RoomGuest):

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述示例值
RoomNoint入住人所属房间序号,从1开始计数1
GuestInfosGuestInfo[]客人信息
Nationalitystring国籍CN
NumberOfAdultsint每个房间入住人数(每个房间入住人数之和因与入住总人数一致)1
ChildrenAgesint[]入住每个儿童年龄[6,8]
+

输入客人信息(GuestInfo):

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述示例值
IsAdultbool是否成人
LastNamestring
FirstNamestring
+

输入联系人信息(ContactInfo):

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述示例值
LastNamestring
FirstNamestring
AreaCodestring电话区号
Phonestring电话
Emailstring邮箱
+

输出参数:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
BookingSuccessbool是否下单成功
OrderIdstring订单号
Currencystring币种,目前仅支持人民币
Messagestring信息
+

Request samples:

+
{
+  "Language": "zh-CN",
+  "Currency": "CNY",
+  "TotalSalePrice": 1722,
+  "AccommodationId": 100428,
+  "RoomId": "agE/zkUstxBkBGUalOAvqwG+4eSCLCD1bTEbt8AEY7M=",
+  "RatePlanId": "M2+KglLUDLqcVhYPgsZvjUhmLmRI6GQVX2v8lSDvmRo=",
+  "NumberOfAdults": 2,
+  "ChildrenAges": [
+
+  ],
+  "CheckInDate": "2024-03-28",
+  "CheckOutDate": "2024-03-29",
+  "NumberOfRooms": 1,
+  "RoomGuests": [
+    {
+      "RoomNo": 0,
+      "GuestInfos": [
+        {
+          "IsAdult": true,
+          "LastName": "ZHANG",
+          "FirstName": "SAN"
+        },
+        {
+          "IsAdult": true,
+          "LastName": "LI",
+          "FirstName": "DAN"
+        }
+
+      ],
+      "Nationality": "CN",
+      "NumberOfAdults": 2,
+      "ChildrenAges": [
+
+      ]
+    }
+  ],
+  "ContactInfo": {
+    "FirstName": "ZHANG",
+    "LastName": "SAN",
+    "AreaCode": "",
+    "Phone": "666666",
+    "Email": ""
+  },
+  "ArrivalTime": "15:30",
+  "SpecialRequest": "",
+  "Nationality": "CN",
+  "DistributorOrderId": "10000666677755"
+}
+

Response samples:

+
{
+  "Data": {
+    "OrderId": "240314175651730069",
+    "Currency": "CNY",
+    "BookingSuccess": true,
+    "Message": "Order reservation successful"
+  },
+  "RequestId": "c45accfb-580e-4cdc-a735-5dc9859ffa7a"
+}
+

8.1.2取消订单

+ + + + + + + + + + + + + + + + + + + + + + + +
说明备注
Request URLhttps://distapi-sandbox.heytripgo.com/Order/Cancel区分测试正式环境域名
Request MethodPOST
Content-Typeapplication/json
+

输入参数:

+ + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述示例值
OrderIdstring订单号
CancelReasonstring取消原因
+

输出参数:

+ + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
OrderIdstring订单号
CancelSuccessbool是否取消成功
+

Request samples:

+
{
+  "OrderId": "240314175651730069",
+  "CancelReason": "测试"
+}
+

Response samples:

+
{
+  "Data": {
+    "OrderId": "240314175651730069",
+    "CancelSuccess": true
+  },
+  "RequestId": "5c0d4a80-61e0-479f-855d-5c42f223ddfb"
+}
+

8.1.3查询订单

+ + + + + + + + + + + + + + + + + + +
说明备注
Request URLhttps://distapi-sandbox.heytripgo.com/Order/Preview区分测试正式环境域名
Request MethodGET
+

输入参数:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述示例值
OrderIdstring订单号240314175651730069
distributorOrderIdstring分销商订单单号JD18DD70FC77358000 (分销单号和订单号两者必须有一个有值)
Languagestring语言zh-CN
+

输出参数:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
OrderIdstring订单号
OrderStatusint订单状态,1待支付、3预定中(正在处理)、6已确认、22预定失败、2已取消
ConfirmationNumberstring酒店确认号
SpecialRequeststring特殊要求
SettlementStatusint结算状态,0未结算、1已结算
InvoiceStatusint发票状态,0未申请、1审核中、2已寄出
OrderTimestring预定日期
CheckOutDatestring入住日期
RoomCountint预定房间数
Breakfastint早餐数
Nationalitystring国籍
ContactNamestring联系人
ContactPhonestring联系电话
ContactEmailstring联系邮箱
Currencystring币种
TotalSalePricedecimal总卖价
OfflineFeedecimal到店付金额
OfflineFeeCurrencydecimal到店付币种
IsCancelablebool是否可取消
CancelableDescstring是否可取消描述
IsPaybool是否已支付
IsRefundbool是否已退款
GuestInfosGuestInfo[]客人信息
RoomInfoOrderRoom房间
HotelInfoOrderHotel酒店信息
+

输出房间信息(OrderRoom):

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
RoomNamestring房型名
BedTypestring床型名
Windowint
Breakfastint早餐数
+

输出酒店信息(OrderHotel):

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
HotelIdint酒店编号
CountryCodestring国家编号
Countrystring国家
Citystring城市
HotelNamestring酒店名称
HotelNameEnstring酒店名称英文
Addressstring地址
+

Response samples:

+
{
+  "Data": {
+    "OrderId": "240314175651730069",
+    "OrderStatus": 6,
+    "OrderTime": "2024/03/14 17:57:03",
+    "CheckInDate": "2024/03/28",
+    "CheckOutDate": "2024/03/29",
+    "RoomCount": 1,
+    "Breakfast": 0,
+    "Nationality": "CN",
+    "ContactName": "SAN/ZHANG",
+    "ContactPhone": "666666",
+    "ContactEmail": "",
+    "ConfirmationNumber": null,
+    "SettlementStatus": 0,
+    "InvoicingStatus": 0,
+    "Currency": "CNY",
+    "TotalSalePrice": 1722,
+    "OfflineFee": 0,
+    "OfflineFeeCurrency": "Unknown",
+    "RoomGuests": [
+      {
+        "RoomNo": 0,
+        "GuestInfos": [
+          {
+            "IsAdult": true,
+            "LastName": "ZHANG",
+            "FirstName": "SAN"
+          },
+          {
+            "IsAdult": true,
+            "LastName": "LI",
+            "FirstName": "DAN"
+          }
+        ],
+        "Nationality": "CN",
+        "NumberOfAdults": 2,
+        "NumberOfChildren": 0,
+        "ChildrenAges": []
+      }
+    ],
+    "DailyPrices": [
+      {
+        "Date": "2024/03/28",
+        "SalePrice": 1722,
+        "Breakfast": 0
+      }
+    ],
+    "IsCancelable": false,
+    "CancelableDesc": "<font color='#333333'>不可取消</font>",
+    "CancelRuleDescs": [
+      "不可取消或修改"
+    ],
+    "SpecialRequest": "",
+    "HotelInfo": {
+      "HotelId": 100428,
+      "CountryCode": null,
+      "Country": "泰国",
+      "City": "甲米",
+      "HotelName": "贝壳海",
+      "HotelNameEn": "The ShellSea Krabi I Luxury Beach Resort & Pool Villas",
+      "HotelStar": 5,
+      "Address": "999 Moo 6 Saithai ",
+      "HotelTel": "66-75-819519",
+      "ZipCode": "",
+      "HotelImg": null
+    },
+    "RoomInfo": {
+      "RoomName": "贝壳海海洋间",
+      "BedType": "2 张单人床 或 1 张特大床",
+      "Window": 0,
+      "Breakfast": 2
+    },
+    "IsPay": true,
+    "IsRefund": false
+  },
+  "RequestId": "ec13fb93-8d0b-4a9f-a6b2-f72305c28803"
+}
+

8.1.4 新增热销酒店Id获取接口

+ + + + + + + + + + + + + + + + + + +
说明备注
Request URLhttps://distapi-sandbox.heytripgo.com/Accommodation/GetHotelIncrement区分测试正式环境域名
Request MethodGET
+

输入参数:

+ + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述示例值
searchdatestring酒店新增时间2025-01-01
pageIndexint页数1 (每次只能查1000条数据)
+

输出参数:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + +
名称类型是否必填描述
TotalPageint总页数
TotalCountint总条数
Dataint[]数据集合
+

+{
+    "TotalPage": 30,
+    "TotalCount": 2908,
+    "Data": [
+        20004698,
+        20007688,
+        20008011,
+        20010730,
+        20013077,
+        20013395,
+        20015931,
+        20017343,
+        20018624,
+        20018634,
+        20018846,
+        20019861,
+        20020470,
+        20021865,
+        20021976,
+        20024710,
+        20026209,
+        20026368,
+        20027499,
+        20027501,
+        20027892,
+        20028564,
+        20031982,
+        20033659,
+        20035827,
+        20039870,
+        20040316,
+        20040622,
+        20041178,
+        20041261,
+        20041818,
+        20042749,
+        20043263,
+        20043529,
+        20043711,
+        20044248,
+        20045197,
+        20045310,
+        20045400,
+        20045524,
+        20046125,
+        20048414,
+        20049080,
+        20049630,
+        20049828,
+        20052428,
+        20052669,
+        20054870,
+        20056429,
+        20056924,
+        20057147,
+        20058049,
+        20058781,
+        20058783,
+        20059660,
+        20059875,
+        20060650,
+        20060822,
+        20061459,
+        20061654,
+        20061802,
+        20062267,
+        20062749,
+        20064330,
+        20066664,
+        20067494,
+        20068830,
+        20070207,
+        20070397,
+        20071455,
+        20071534,
+        20074607,
+        20081836,
+        20082805,
+        20083580,
+        20083674,
+        20085498,
+        20086902,
+        20087166,
+        20089270,
+        20090340,
+        20094457,
+        20094810,
+        20099909,
+        20101153,
+        20101539,
+        20101677,
+        20101810,
+        20104582,
+        20105245,
+        20108478,
+        20108639,
+        20109605,
+        20112740,
+        20113047,
+        20113372,
+        20115150,
+        20115426,
+        20116063,
+        20121377
+    ],
+    "RequestId": "379e7cd2-77ce-40e9-ae85-7828f479485c"
+}
+
+ + + \ No newline at end of file diff --git a/Haina/项目/HotelHub/atta/微信图片_20250710170007_1.png b/Haina/项目/HotelHub/atta/微信图片_20250710170007_1.png new file mode 100644 index 0000000000000000000000000000000000000000..add54faf52230f02b7ea6cb083aa45ba9ec58b57 GIT binary patch literal 15490 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/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%0A-whR))gYCw1C>SG_9LX#y*X}HCa zXMiekMAw*Xo<(qiXq_!9fo4Q$cZScYKg+S7SF=em=TYdT_VK7GZvmW?+^bGY!9Yx%%R6s~_C#a-J>iy19+w3kX)dkO{9aM>G;XcE zZw+~(L0U5q+Xh5v-pAP7w?;LqGAbJjpUA*jBF!$pH*aq_uw>Z5&wXwWp-M}iWfQ!$ z0e!s)vYA@z9ZZdRxP4Mp8;_0oWXF{FF_~(QBv+!tW*DcTMiXOe*>4#wY|5cgP8l*n zD4I_No73)jt*gK`u||HNy0%1ndKKGefX7|@#DJ0(VjKKha#P70)FHP!;D$SP5)W|v zRkaDTx?OB3;R5JF_21d;9_zNf3xSVNH@77FuWe~hv-@&*H|Tc)!=8|C<%fs$4Wk3I zU@V_o6UXP1-$< literal 0 HcmV?d00001 diff --git a/Haina/项目/HotelHub/喜玩.md b/Haina/项目/HotelHub/喜玩.md index 2ebd9bc..66328cd 100644 --- a/Haina/项目/HotelHub/喜玩.md +++ b/Haina/项目/HotelHub/喜玩.md @@ -1,6 +1,6 @@ --- -Created: 2024-08-12 Mon -Updated: 2024-10-21 11:01 Mon +Created: 2024-08-12 15:30 Mon +Updated: 2025-07-10 17:11 Thu --- ## API @@ -26,6 +26,20 @@ Updated: 2024-10-21 11:01 Mon 5. ? Docker配置后 1. [ ] 缺少日志 2. [ ] 无法获取IP +3. 2025-01-08 接口更新 @江南烟雨: + - ![](Haina/项目/HotelHub/atta/heytrip_b2b分销接口对接说明.html) + - ![left](Haina/项目/HotelHub/atta/4c05d44e748e10f0210045a6641ab7d3.png) + - @Lei、OT 上午好,这个是新增热销酒店的获取接口,麻烦对接一下,后续我们有新上线的酒店也会同步到这个接口,你们可以设置定时获取然后匹配上线,谢谢! + - 收到 + + `新增热销` 与原来的获取有效酒店编号有什么不同 + 原来的定时获取有效, 还是生效的吧? + - 跟之前的不冲突,因为有的分销商不是每天都主动去更新酒店ID,有的是一周有的是一个月。这个新增接口可以获取最新上架的酒店 +4. 2025-06-12 更新 @江南烟雨: + - 这个是酒店类型名称 + - 最近其他分销商出现这个问题,酒店静态数据这个字段表示酒店类型。在输出酒店名称的时候需要判断一下这个。 + - ![left](Haina/项目/HotelHub/atta/微信图片_20250710170007_2.png) + - ![left](Haina/项目/HotelHub/atta/微信图片_20250710170007_1.png) ## 喜玩接口