API简介
描述
JSON简介 JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。
JSON构建的结构:
1. “名称/值”对的集合(A collection of name/value pairs)。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。
2. 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。
这些都是常见的数据结构。事实上大部分现代计算机语言都以某种形式支持它们。这使得一种数据格式在同样基于这些结构的编程语言之间交换成为可能。
JSON的具体形式
1、对象是一个无序的“‘名称/值’对”集合。一个对象以“{”开始,以“}”结束。每个“名称”后跟一个“:”,“‘名称/值’对”之间使用“,”分隔。
2、数组是值(value)的有序集合。一个数组以“[”开始,“]”结束。值之间使用“,”分隔。
3、值(value)可以是双引号括起来的字符串(String)、数值(number)、true、false、null、对象(object)或者数组(array)。这些结构可以嵌套。
4、字符串(string)是由双引号包围的任意数量Unicode字符的集合,使用反斜体转义。一个字符(character)即一个单独的字符串(characeter string)。
常见的远程数据调用,大都基于XML。
使用XML作为传输格式的优势:
1. 格式统一, 符合标准
2. 容易与其他系统进行远程交互, 数据共享比较方便
缺点:
1. XML文件格式文件庞大, 格式复杂, 传输占用带宽
2. 服务器端和客户端都需要花费大量代码来解析XML, 不论服务器端和客户端代码变的异常复杂和不容易维护
3. 客户端不同浏览器之间解析XML的方式不一致, 需要重复编写很多代码
4. 服务器端和客户端解析XML花费资源和时间
JSON与XML比较
可读性
JSON和XML的可读性不相上下,一边是建议的语法,一边是规范的标签形式,很难分出胜负。
可扩展性
XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的。
解码难度
XML的解析得考虑子节点父节点,相对复杂,而JSON的解析难度几乎为0。
实例比较
XML和JSON都使用结构化方法来标记数据,下面来做一个简单的比较。
现假设有一个用户数据包括:用户名、密码、所在部门、性别、年龄。
用XML表示如下:
<?xml version="1.0" encoding="utf-8"?>
<user>
<name>张三 </name>
<password>123456</password>
<department>技术部</department>
<sex>男</sex>
<old>30</old>
</user>
用JSON表示如下:
{
name:"张三",
password:"123456",
department:"技术部",
sex:"男",
old:30
}
与XML一样,JSON也是基于文本的,且它们都使用Unicode编码,同样具有可读性。XML比较适合于标记文档,而JSON却更适合于时行数据交换处理。一个JSON文档的每一个实例都负责描述一个对象—具体的描述是通过使用嵌套的对象,数组,字符串,数字,布尔值或null值来实现的。相对而言,相同的数据量,JSON数据格式传输量比XML要小很多,以上述例子,XML有147个字符,而JSON只有61个字符。
JSON为JavaScript的一个子集,是一种轻量级的和高度灵活的处理数据交换的方式。与传统的XML处理技术相比,这个工具的分析速度更快且更为易用。从该工具的性能和使用现状来看,它有可能会成为下一代Web 2.0开发中XML数据操作的主要替代者。
正因为JSON是javascript的一个子集,它可以很方便的在web页面上使用,通过ajax技术,很容易实现数据与调用网站的集成。
JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,然后就可以在函数之间轻松地传递这个字符串,或者在异步应用程序中将字符串从 Web 客户机传递给服务器端程序将服务器数据转换成JSON数据格式,通过HTML页面的动态JS文件加载,即可使用JS文件的JSON数据。
汇通天下JSON酒店预订服务引擎是基于JSON开发的一套平台。
所有数据调用,均通过JSON对象传递。调用者无须进行繁琐的解析,通过javascript就可以直接通过“名称/值”来进行数据调用,对于调用服务的网站来说,无须考虑自身网站开发语言的问题,只需要使用javascript语言即可实现数据的调用。
Hubs1 对象
描述
属性
属性 | 类型 | 描述 | 说明 |
serverurl | string | 服务器地址 | 必须配置 |
localhost | string | 本地地址 | 必须配置 |
posthtm | string | 订单提交页面地址 | demo文件夹中post文件夹内对应post.htm必须配置,文件内容请勿修改,建议默认配置 |
orderbackhtm | string | 预订提交返回调用页面地址 | demo文件夹中post文件夹内对应orderback.htm必须配置,文件内容请勿修改,建议默认配置 |
updatehtm | string | 订单更新提交页面地址 | demo文件夹中post文件夹内对应update.htm必须配置,文件内容请勿修改,建议默认配置 |
calendarhtm | string | 日期控件页面地址 | 如不使用demo中日期控件,请设为空。demo文件夹中post文件夹内对应calendar.htm |
对象
对象 | 类型 | 描述 | 说明 |
object | 用户基本配置信息 | | |
object | API方法对象 | |
Hubs1.TA 对象
描述
API调用用户基本信息设置
属性
属性 | 类型 | 描述 | 说明 |
iata | string | iata号,汇通天下提供 | eg:900000 |
userid | number | 用户ID,汇通天下提供 | 订房宝用户ID,eg:3651 |
usertype | string | 用户类型,可以保留为空 | |
tatitle | string | 预订确认信 Title | |
emailalias | string | 预订确认信 发送人 显示名称 | |
emailfrom | string | 预订确认信 Email 显示 | |
fromurl | string | 预订来源网站 | eg:http://test.hubs1.net/ |
示例
var Hubs1={ TA:{ iata:"900000", userid:3651, usertype:"GroupUser", tatitle:"JSON4.0酒店预订中心", emailalias:"JSON4.0邮箱", emailfrom:"json@hubs1.net", fromurl:"http://test.hubs1.net/" }, }
Hubs1.Core 对象
描述
Hubs1.Core对象包含Json数据调用的方法以及属性
属性
属性 | 类型 | 描述 | 说明 |
sDate | string | 预订最早日期 | |
eDate | string | 预订最迟日期 | |
object | 服务器相关配置对象 | |
方法
方法 | 描述 | 参数说明 |
加载一家酒店房型列表信息 | | |
加载多家酒店房型列表信息结束后回调方法(需要调用端进行方法重写 ) | | |
加载酒店房型实时价格列表信息 | | |
加载酒店房型实时价格列表信息结束后回调方法 (需要调用端进行方法重写 ) | | |
加载酒店预订内容基本信息 | | |
加载酒店预订内容基本信息结束后回调方法 (需要调用端进行方法重写 ) | | |
获取验证码图片 | | |
发送手机确认码 | | |
发送手机确认码结束后回调方法 (需要调用端进行方法重写 ) | | |
校验手机确认码 | | |
校验手机确认码结束后回调方法 (需要调用端进行方法重写 ) | | |
酒店订单预订提交 | | |
预订提交结束后回调方法 (需要调用端进行方法重写) | | |
加载订单信息 | | |
加载订单信息结束后回调方法 (需要调用端进行方法重写 ) | | |
提交订单修改信息 | | |
提交订单修改结束信息后回调方法 (需要调用端进行方法重写 ) | | |
取消订单 | | |
取消订单结束后回调方法 (需要调用端进行方法重写 ) | | |
重发预订确认信 | | |
重发预订确认信结束后回调方法 (需要调用端进行方法重写) | | |
获取订单状态信息 | | |
获取订单状态信息结束后回调方法 (需要调用端进行方法重写) | |
示例
Hubs1.Core.WebData 对象
描述
属性
属性 | 类型 | 描述 | 说明 |
photourl | string | 酒店图片路径 | |
示例
Hubs1.Core.OrderStatus 对象
描述
属性
属性 | 类型 | 描述 | 说明 |
order | string | 新订单 | |
modify | string | 修改过的订单 | |
cancel | string | 取消的订单 | |
示例
Hubs1.Core.LoadRoomsListEnd 方法
描述
批量加载多个酒店房型列表结束后回调方法
参数
参数 | 类型 | 描述 | 说明 |
roomlists | object | 多个酒店房型列表 | [{ pids:, //酒店PID days:, //入住天数 RackPrice:{, //门市价信息 "房型代码",[报价,1人价,2人价,3人价,4人价,价格代码], ....... RateCode://门市价价格代码 }, Rooms:{ , //房型房价对象 "价格计划代码":{ priceinfo:{//计划价格信息 prices:[[报价,1人价,2人价,3人价,4人价],[报价,1人价,2人价,3人价,4人价],.....]//按天数排列,第一天价格,第二天价格........ }, roomname: //房型名称 roomdesc: //房型描述 planname: //计划名称 plandesc: //计划描述 plancode: //价格计划代码 }, ....... } subtitle://酒店简介 amenity://酒店设施标记图片 },....] |
示例
roomlists 示例: [{ pid:4013, days:3, Rackprice: { "DLX":[5044.00,5044,5044,5044,5044,"CNY"], "EXT":[5963.00,5963,5963,5963,5963,"CNY"], "SUT":[7234.00,7234,7234,7234,7234,"CNY"], RateCode:"RACK" }, Rooms:{ "DLX-BAR":{ priceinfo:{ prices:[[900.00,900.00,900.00,900.00,900.00],[1100.00,1100.00,1100.00,1100.00,1100.00],[1100.00,1100.00,1100.00,1100.00,1100.00] ] }, roomname:"豪华房(房价另加15%服务费)", roomdesc:"25平方米,每间都拥有另人难忘的索菲特MY BED(双床或大床),配有宽带上网(每天费用为RMB120).", planname:"现付价", plandesc:"豪华房(房价另加15%服务费) 豪华房 房价需加收15%服务费,不含早餐,需加早餐为RMB159/份(中西式自助).", plancode:"DLX-BAR" }, "DLX-BARB":{ priceinfo:{ prices:[ [1040.00,1040.00,1040.00,1040.00,1040.00], [1240.00,1240.00,1240.00,1240.00,1240.00], [1240.00,1240.00,1240.00,1240.00,1240.00] ] }, roomname:"豪华房(房价另加15%服务费)", roomdesc:"25平方米,每间都拥有另人难忘的索菲特MY BED(双床或大床),配有宽带上网(每天费用为RMB120).", planname:"现付价", plandesc:"", plancode:"DLX-BARB"}, "EXT-BARB":{ priceinfo:{ prices:[ [1440.00,1440.00,1440.00,1440.00,1440.00], [1640.00,1640.00,1640.00,1640.00,1640.00], [1640.00,1640.00,1640.00,1640.00,1640.00] ], currencycode:["CNY","CNY","CNY"],//货币代码[第1天货币.....第n天] breakfast:[[0,115],[0,115],[0,115]],//早餐数组[[第1天早餐数量,价格].....第n天] broadband:[false,false,false]//免费宽带数组[第1天是否有免费宽带.....第n天] }, roomname:"索菲特行政房(房价另加15%服务费)", roomdesc:"进入索菲特会所立即让你感受到家的感觉,189间索菲特会所楼层客房拥有另人难忘的索菲特MY BED , 30楼高贵的全景式行政酒廊,让您领略到真正的黄浦江景以及不断变化中的上海美景。索菲特会所楼层服务: 1 会所及会所客房提供免费的宽带及上网服务 2 每日可在索菲特会所享用舒适早餐 3 登记入住和结帐均在索菲特会所 4 入住时可享受一次免费的烫衣服务 5 索菲特会所全天候免费茶、咖啡及软饮料 6 每晚6点至8点提供免费鸡尾酒及小食 7 赠送2小时索菲特会所会议室(最多可容纳12人)的使用 8 索菲特会所提供各类中外报刊、杂志以及书籍以供阅读", planname:"现付价", plandesc:"索菲特行政房(房价另加15%服务费)含1-2份早餐(中西式自助)单人一份,双人两份,免费宽带上网。", plancode:"EXT-BARB" }, "SUT-BARB":{ priceinfo:{ prices:[ [2100.00,2100.00,2100.00,2100.00,2100.00], [2300.00,2300.00,2300.00,2300.00,2300.00], [2300.00,2300.00,2300.00,2300.00,2300.00] ], currencycode:["CNY","CNY","CNY"],//货币代码[第1天货币.....第n天] breakfast:[[0,115],[0,115],[0,115]],//早餐数组[[第1天早餐数量,价格].....第n天] broadband:[false,false,false]//免费宽带数组[第1天是否有免费宽带.....第n天] }, }, roomname:"索菲特行政套房(房价另加15%服务费)", roomdesc:"迷人的风景,宽敞的空间,同样享受索菲特会所楼层的一切服务。免费宽带上网", planname:"现付价", plandesc:"索菲特行政套房(房价另加15%服务费)含1-2份早餐(中西式自助)单人一份,双人两份,免费宽带上网。", plancode:"SUT-BARB" } } , subtitle:"宾馆地处上海市中心,座落在著名的“中华商业第一街”南京路步行街上。毗邻主要商业中心,步行可至人民广场、外滩、上海大剧院、上海博物馆,原法租界及地铁车站咫尺之遥。", amenity:"<img hspace=2 src=http://hbe.hubs1.net/json2/images/hotel/ABusiness.gif title=\"商务中心\" /> <img hspace=2 src=http://hbe.hubs1.net/json2/images/hotel/ARestaurant.gif title=\"餐厅\" /> <img hspace=2 src=http://hbe.hubs1.net/json2/images/hotel/AInternet.gif title=\"宽带上网\" />" },{....}] 调用代码示例: function LoadRoomsList() { var select={ pid:999, //酒店PID checkin:"2009-04-01", //入住日期 checkout:"2009-04-03"//离店日期 }; //加载酒店房型价格列表对象数组 Hubs1.Core.LoadRoomsListEnd=function(roomlists){LoadRoomsListEnd(roomlists);}; //调用酒店房型价格加载方法,加载数据 Hubs.Core.LoadRoomsList(select); } function LoadRoomsListEnd(roomlists) { for(var i=0;i<roomlists.length;i++) { var roomlist=roomlists[i]; if(typeof(roomlist["Rooms"])=="undefined"||roomlist["Rooms"]==null) { alert("暂无符合条件的房型" ); return; } //处理roomlists代码 alert(roomlist["subtitle"]);//酒店简介 } }
Hubs1.Core.LoadRoomsList 方法
描述
批量加载酒店房型列表
参数
参数 | 类型 | 描述 | 说明 |
select | object | | { pids:array, //酒店PID数组对象 checkin:string, //入住日期 checkout:string //离店日期 } |
示例
select 示例: { pids:[999,1054,...], //酒店PID数组对象 checkin:"2009-04-01", //入住日期 checkout:"2009-04-03" //离店日期 }
Hubs1.Core.LoadRateListEnd 方法
描述
参数
参数 | 类型 | 描述 | 说明 |
roomlist | object | 房型价格列表对象 |
|
示例
roomlist 示例: { checkin:"2009-05-06", checkout:"2009-05-09", adults:1, childs:0, rooms:1, error:"", pid:4013, days:3, Rackprice:{"DLX":5044.0,"EXT":5963.0,"SUT":7234.0,RateCode:"RACK"}, RackCurrencycode:{"DLX":"CNY","EXT":"CNY","SUT":"CNY",RateCode:"RACK"}, Rooms:{ "DLX-BAR":{ priceinfo:{prices:[1100.0,1100.0,1100.0]}, roomname:"豪华房(房价另加15%服务费)", roomdesc:"25平方米,每间都拥有另人难忘的索菲特MY BED(双床或大床),配有宽带上网(每天费用为RMB120).", planname:"现付价", plandesc:"豪华房(房价另加15%服务费) 豪华房 房价需加收15%服务费,不含早餐,需加早餐为RMB159/份(中西式自助).", plancode:"DLX-BAR", availdate:"2009-05-06", extraadult:0.0,allotment:5, avstat:"A",gua:"RH",cxl:"NP" }, "DLX-BARB":{ priceinfo:{prices:[1240.0,1240.0,1240.0]}, roomname:"豪华房(房价另加15%服务费)", roomdesc:"25平方米,每间都拥有另人难忘的索菲特MY BED(双床或大床),配有宽带上网(每天费用为RMB120).", planname:"现付价",plandesc:"", plancode:"DLX-BARB", availdate:"2009-05-06",extraadult:0.0,allotment:5,avstat:"A",gua:"RH",cxl:"NP" }, "EXT-BARB":{ priceinfo:{prices:[1640.0,1640.0,1640.0]},roomname:"索菲特行政房(房价另加15%服务费)", roomdesc:"进入索菲特会所立即让你感受到家的感觉,189间索菲特会所楼层客房拥有另人难忘的索菲特MY BED ,30楼高贵的全景式行政酒廊, 让您领略到真正的黄浦江景以及不断变化中的上海美景。索菲特会所楼层服务: 1 会所及会所客房提供免费的宽带及上网服务 2 每日可在索菲特会所享用舒适早餐 3 登记入住和结帐均在索菲特会所 4 入住时可享受一次免费的烫衣服务 5 索菲特会所全天候免费茶、咖啡及软饮料 6 每晚6点至8点提供免费鸡尾酒及小食 7 赠送2小时索菲特会所会议室(最多可容纳12人)的使用 8 索菲特会所提供各类中外报刊、杂志以及书籍以供阅读", planname:"现付价",plandesc:"索菲特行政房(房价另加15%服务费)含1-2份早餐(中西式自助)单人一份,双人两份,免费宽带上网。", plancode:"EXT-BARB",availdate:"2009-05-06",extraadult:0.0,allotment:5,avstat:"A",gua:"RH",cxl:"NP" }, "SUT-BARB":{ priceinfo:{prices:[2300.0,2300.0,2300.0]},roomname:"索菲特行政套房(房价另加15%服务费)", roomdesc:"迷人的风景,宽敞的空间,同样享受索菲特会所楼层的一切服务。免费宽带上网", planname:"现付价",plandesc:"索菲特行政套房(房价另加15%服务费)含1-2份早餐(中西式自助)单人一份,双人两份,免费宽带上网。", plancode:"SUT-BARB",availdate:"2009-05-06",extraadult:0.0,allotment:1,avstat:"A",gua:"RH",cxl:"NP" } } }
- function LoadRateList()
- {
- var select={pid:4013,checkin:"2009-05-06",checkout:"2009-05-09",adults:1,rooms:1,childs:0}
- //加载酒店列表价格后回调方法重写
- Hubs1.Core.LoadRateListEnd=function(roomlist){LoadRateListEnd(priceslist);};
- //加载酒店房型实时价格列表
- Hubs.Core.LoadRateList(select);
- }
- function LoadRateListEnd(roomlist)
- {
- if(!roomlist)
- {
- document.getElementById(Hubs1.Show.RateList).innerHTML="获取价格失败,请重试!";
- return;
- }
- else if(roomlist&&roomlist.error&&roomlist.error!="")
- {
- document.getElementById("RateList").innerHTML=roomlist.error;
- return;
- }
- var colspan=5;
- var str="";
- var days=roomlist.days;
- var strhead="";
- if(typeof(roomlist["Rooms"])=="undefined"||roomlist["Rooms"]==null)
- {
- alert("暂无符合条件的房型");
- }
- else
- {
- strhead+="<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" class=\"RoomList\" width=\"100%\">";
- strhead+="<tr>";
- strhead+="<th width=\"60%\">房型</th> ";
- strhead+="<th width=\"10%\">门市价</th> ";
- if(days>1)
- {
- strhead+="<th width=\"10%\">首日价</th>";
- strhead+="<th width=\"10%\">均价</th> ";
- colspan=5;
- }
- else
- {
- strhead+="<th width=\"10%\">价格</th>";
- colspan=4;
- }
- var temp="";
- var r=0;
- var person=roomlist.adults;
- for(var name in roomlist["Rooms"])
- {
- var roomobj=roomlist["Rooms"][name];
- var roomrates=name.split('-');
- str+="<tr> ";
- var tempname=roomobj.roomname;
- str+="<td>";
- str+=tempname;
- if(roomobj.planname!="")
- {
- str+="【<b>";
- str+=roomobj.planname;
- str+="</b>】";
- }
- else
- {
- str+=" ";
- }
- str+="</td> ";
- str+="<td>";
- if(roomlist.Rackprice[roomrates[0]])
- {
- str+=" CNY<del>"+roomlist.Rackprice[roomrates[0]]+"</del>";
- }
- else
- {
- str+="--";
- }
- str+="</td> ";
- if(days>1)
- {
- if(roomobj.priceinfo.prices[0])
- str+="<td>CNY "+roomobj.priceinfo.prices[0]+"</td> ";
- str+="<td><a href=\"javascript:void(0);\" οnclick=\"显示每日价function\">CNY "+获取平均价格function+"</a></td> ";
- }
- else
- {
- if(roomobj.priceinfo.prices[0])
- str+="<td>CNY "+roomobj.priceinfo.prices[0]+"</td> ";
- }
- str+="<td><input οnclick=\"预订function\" type=\"button\" value=\"预订\" /></td> ";
- str+="</tr> ";
- str+="<tr style=\"display:none;\"> ";
- str+="<td colspan=\""+colspan+"\"> ";
- str+=roomobj.roomdesc+"<br/>"+roomobj.plandesc;
- str+="</td> ";
- str+="</tr> ";
- r++;
- }
- str+="</table> ";
- strhead+="<th width=\"10%\" >预订</th> ";
- strhead+="</tr>";
- alert(strhead+str);
- if(r==0)alert("暂无符合要求的房型");
- }
- 房型显示Demo:
房型 | 门市价 | 首日价 | 均价 | 预订 |
现付价】 | CNY | CNY 1100 | CNY 1100 | |
25平方米,每间都拥有另人难忘的索菲特MY BED(双床或大床),配有宽带上网(每天费用为RMB120). 豪华房(房价另加15%服务费) 豪华房 房价需加收15%服务费,不含早餐,需加早餐为RMB159/份(中西式自助). | ||||
现付价】 | CNY | CNY 1240 | CNY 1240 | |
25平方米,每间都拥有另人难忘的索菲特MY BED(双床或大床),配有宽带上网(每天费用为RMB120). | ||||
现付价】 | CNY | CNY 1640 | CNY 1640 | |
进入索菲特会所立即让你感受到家的感觉,189间索菲特会所楼层客房拥有另人难忘的索菲特MY BED ,30楼高贵的全景式行政酒廊,让您领略到真正的黄浦江景以及不断变化中的上海美景。索菲特会所楼层服务:1 会所及会所客房提供免费的宽带及上网服务 2 每日可在索菲特会所享用舒适早餐 3 登记入住和结帐均在索菲特会所 4 入住时可享受一次免费的烫衣服务 5 索菲特会所全天候免费茶、咖啡及软饮料6 每晚6点至8点提供免费鸡尾酒及小食 7 赠送2小时索菲特会所会议室(最多可容纳12人)的使用 8 索菲特会所提供各类中外报刊、杂志以及书籍以供阅读 索菲特行政房(房价另加15%服务费)含1-2份早餐(中西式自助)单人一份,双人两份,免费宽带上网。 | ||||
现付价】 | CNY | CNY 2300 | CNY 2300 | |
迷人的风景,宽敞的空间,同样享受索菲特会所楼层的一切服务。免费宽带上网 索菲特行政套房(房价另加15%服务费)含1-2份早餐(中西式自助)单人一份,双人两份,免费宽带上网。 |
- }
Hubs1.Core.LoadRateList 方法
描述
参数
参数 | 类型 | 描述 | 说明 |
select | object | 酒店价格搜索条件对象 |
|
示例
select 示例 {pid:4013,checkin:"2009-05-06",checkout:"2009-05-09",adults:1,rooms:1,childs:0}
Hubs1.Core.LoadOrderInfoEnd 方法
描述
加载酒店预订内容基本信息回调方法
参数
参数 | 类型 | 描述 | 说明 |
hotelinfo | object | 酒店信息 |
|
orderinfo | object | 预订信息 |
|
ratelist | object | 价格信息 |
|
示例
- hotelinfo
- {
- checkin:"1400",
- checkout:"1200",
- holdtime:"1800",
- hotel_id:1913,
- title:"索菲特海仑宾馆",
- title_e:"Sofitel Shanghai Hyland",
- stars:4,
- diamond:0,
- photourl:"UploadPhotos/2008118152728241.jpg",
- lowprice:1100,
- highprice:7234,
- pid:4013,
- address1:"中国上海黄浦区南京东路505号",
- currency:"",
- phone:"021 63515888",
- locallongitude:"121.480872631073",
- locallatitude:"31.235674012547093",
- dateopened:"2007-12-18",
- daterenovated:"2007-12-18",
- property:"海仑宾馆地处上海市中心,座落在著名的“中华商业第一街”南京路步行街上。毗邻主要商业中心,步行可至人民广场、外滩、 上海大剧院、上海博物馆,原法租界及地铁车站咫尺之遥。##\n进入索菲特会所立即让你感受到家的感觉。经过改造后,401间客房包括19楼至 29楼的189间索菲特会所楼层客房拥有另人难忘的索菲特MYBED ,30楼高贵的全景式行政酒廊,让您领略到真正的黄浦江景以及不断变化中的上海美景。 ##\n索菲特服务完美娴熟,无论是礼宾部、特快洗衣服务或是能提供您专业商务活动支持的商务中心,都能满足您的各项需求。", facilities:"", meetings:"酒店拥有10间会议室,总计900平方米。凭借其齐全的现代化设施、器材以及专业的服务人 员使您的晚宴、会议、聚会等圆满成功,更提供无线上网及视频会议服务,海华厅至多可容纳400人。", dining:"莫赛克餐厅:俯瞰南京路的繁华美景,提供自助早餐、午餐、晚餐服务。早上6点至午夜更为您准备了零点菜单可供选择。 ##\n505酒吧:是您与好友小聚,放松心情的最佳地点。各式鸡尾酒、葡萄酒、自酿鲜啤以及柔美的现场音乐助兴将带给您无与伦比的醇香感受。##\n海茂厅:供应各种精致点心及中式佳肴。", recreation:"健身中心提供各类健身器材、蒸汽浴缸、桑拿按摩和美发美容服务。", location:"海仑宾馆位于上海商业、购物、历史中心\n•南京东路地铁车站:步行3分钟##\n•距上海火车站:15分钟车程## \n•距离虹桥机场:20分钟车程##\n•距浦东机场:50分钟车程",
- transportation:"",
- directions:"",
- attractions:"",
- policies:"入住时间:14:00 ##\n退房时间:12:00 ##\n保留时间:18:00##\n可接受的信用卡:万事达卡、维萨卡、运通卡、大莱卡、国内银联卡##\n加床:人民币332+百分之十五服务费(含一份自助早餐)/张##\n加床:人民币208+百分之十五服务费(不含早餐)/张##\n早餐:人民币138+百分之十五服务费/份(中西自助)##",corporate:"",amenities:"* 220伏交流电\n* 24小时前台服务\n* 24小时送餐服务\n* 24小时保安\n* 相连房\n* 空调\n* 航空服务台\n* 闹钟\n* 自动取款机\n* 视听设备\n* 婴儿看护\n* 酒吧\n* 浴缸\n* 自助早餐\n* 商务中心\n* 礼宾部\n* 会议设备\n* 连通房\n* 复印服务\n* 备有婴儿床\n* 货币兑换\n* 餐厅指南\n* 医生出诊服务\n* 门僮\n* 大床\n* 电子门锁\n* 电梯\n* 行政楼接待处\n* 行政楼层\n* 健身房\n* 特快入住登记服务\n* 特快退房服务\n* 传真\n* 宽带上网\n* 直拨国际长途\n* 熨斗\n* 熨板\n* 洗衣服务\n* 行李服务\n* 套房\n* 做夜床服务\n* 双床\n* 叫醒服务\n* 空调\n* 电子门锁\n* 行政楼层\n* 特快入住登记服务\n* 特快退房服务\n* 传真\n* 免费报纸\n* 房间配置电吹风\n* 残疾人设施\n* 蜜月套房\n* 直拨国际长途\n* 卫星电视",
- zip:"200001",
- totalrooms:401,
- fax:"021 63514088",
- groupid:18
- };
- orderinfo
- {
- propertyid:4013,//酒店pid
- roomtype:"DLX",//房型代码
- rateclass:"BAR",//价格代码
- starttime:"2009-05-07",//入住日期
- deptime:"2009-05-10",//离店日期
- nights:3,//过夜天数
- room:1,//房间数量
- totalmount:"3300.00 ",//总价
- adults:1,//每间房入住人数
- children:0,//儿童数量
- plandesc:"豪华房(房价另加15%服务费) 豪华房 房价需加收15%服务费,不含早餐,需加早餐为RMB159/份(中西式自助).",//计划描述
- roomname:"豪华房(房价另加15%服务费)",//房型名称
- roomdesc:"25平方米,每间都拥有另人难忘的索菲特MY BED(双床或大床),配有宽带上网(每天费用为RMB120).",//房型描述
- ratename:"现付价",//价格名称
- ratedesc:"房价需加收15%服务费,不含早餐,需加早餐为RMB159/份(中西式自助).",//价格描述
- canclerule:"请从入住当天18:00时之前取消,无罚金",//取消制度
- guaranteerule:"预计保留至18:00",//保证金制度
- taxrule:"服务费用: 每间/每晚服务费用: 每间/每晚",//税收政策
- incomingcall:"",
- verifycode:"47911bc3-6eee-4175-a3c4-922fd157e6bb",//订单唯一标示
- totalmountDesc:"总房价(3 房夜) : ¥3,300.00",//总价
- IsccGua:false,//是否需要信用卡担保
- IsppGua:false,//是否需要预付
- errormsg:"",//返回错误信息
- notice:"",//酒店预订规则
- currencycode:"CNY"//货币代码
- };
- ratelist
- {
- checkin:'2009-05-07',
- checkout:'2009-05-10',
- nights:3,
- Availdate:['2009-05-07','2009-05-08','2009-05-09'],
- Allotment:['5','5','5'],
- AvStat:['A','A','A'],
- Gua:['','',''],
- Cxl:['NP','NP','NP'],
- PriceNoTax:['1100.0','1100.0','1100.0'],
- currencycode:["CNY","CNY","CNY"],//货币代码[第1天货币.....第n天]
- breakfast:[[0,115],[0,115],[0,115]],//早餐数组[[第1天早餐数量,价格].....第n天]
- broadband:[false,false,false]//免费宽带数组[第1天是否有免费宽带.....第n天]
- }
调用代码示例:
- function LoadOrderInfo(){
- var select={
- pid:4013,//酒店pid
- checkin:"2009-05-04",//入住日期
- checkout:"2009-05-07",//离店日期
- rooms:1,//房间数量
- adults:1,//每间房入住人数
- childs:0,//儿童数量,系统预留暂未使用,默认为0
- roomcode:"DLX",//房型代码
- ratecode:"BAR"//价格代码
- };
- //加载内容后执行方法
- //加载酒店列表价格后(酒店价格列表)
- Hubs1.Core.LoadOrderInfoEnd=function(hotelinfo,orderinfo,ratelist){LoadOrderInfoEnd(hotelinfo,orderinfo,ratelist);};
- //调用酒店搜索方法,加载数据
- Hubs.Core.LoadOrderInfo(select);
- }
- function LoadOrderInfoEnd(hotelinfo,orderinfo,ratelist)
- {
- if(typeof(orderinfo.errormsg)=="undefined")
- {
- alert("加载数据失败!");
- return;
- }
- else if(orderinfo.errormsg.length>0)//判断是否有出错信息,如有,则显示错误信息。
- {
- alert(orderinfo.errormsg);
- return;
- }
- //参考Hubs1.Core.LoadHotelInfoEnd参考Hubs1.Core.LoadRateListEnd
- }
Hubs1.Core.LoadOrderInfo 方法
描述
参数
参数 | 类型 | 描述 | 说明 |
select | object | 预订信息对象 |
|
示例
- select 示例
- {
- pid:4013,
- checkin:"2009-05-07",
- checkout:"2009-05-10",
- rooms:1,
- adults:1,
- childs:0,
- roomcode:"DXL",
- ratecode:"BAR"
- }
Hubs1.Core.SendCodeEnd 方法
描述
发送手机确认码回调方法
参数
参数 | 类型 | 描述 | 说明 |
IsSucceed | | 是否发送成功 | |
errormsg | | 错误信息 | |
示例
- function SendCode(){
- //发送确认码后回调方法
- Hubs1.Core.SendCodeEnd=function(IsSucceed,errormsg){SendCodeEnd(IsSucceed,errormsg);};
- //调用发送确认码方法
- Hubs.Core.SendCode("13000000000","0123");
- }
- function SendCodeEnd(IsSucceed,errormsg)
- {
- if(IsSucceed)
- {
- //执行相关的预订步骤,显示校验码输入框,进行校验后预订
- }
- else
- {
- alert(errormsg);
- }
- }
Hubs1.Core.SendCode 方法
描述
发送手机确认码
参数
参数 | 类型 | 描述 | 说明 |
mobile | string | 手机号 | |
code | string | 校验码(通过Hubs1.Core.GetImgCode获取) | |
示例
Hubs1.Core.GetImgCode 方法
描述
获取验证码图片
参数
参数 | 类型 | 描述 | 说明 |
img 对象 | object | html图片控件 | |
示例
- function GetImgCode(){
- //调用获取验证码图片方法
- //<img id="imgcode" />
- Hubs.Core.GetImgCode(document.getElementById("imgcode"));
- }
Hubs1.Core.CheckCodeEnd 方法
描述
校验手机确认码回调方法
参数
参数 | 类型 | 描述 | 说明 |
IsTrue | | 是否正确校验码 | |
errormsg | | 错误信息 | |
示例
- function CheckCode(){
- //校验后执行的方法
- var checkcode="123456";//用户输入手机收到的校验码
- Hubs1.Core.CheckCodeEnd=function(IsTrue,errormsg){CheckCodeEnd(IsTrue,errormsg);};
- //调用校验码检测方法
- Hubs.Core.CheckCode(checkcode);
- }
- function CheckCodeEnd (IsTrue,errormsg)
- {
- if(IsSucceed)
- {
- //执行相关的预订步骤,显示入住客人填写信息,进行预订
- }
- else
- {
- alert(errormsg);
- }
- }
Hubs1.Core.CheckCode 方法
描述
校验手机确认码
参数
参数 | 类型 | 描述 | 说明 |
checkcode | string | 手机接收的确认码 | |
示例
Hubs1.Core.OrderPostEnd 方法
描述
酒店订单预订提交后回调方法
参数
参数 | 类型 | 描述 | 说明 |
confnum | string | 订单确认码 | |
msg | string | 返回信息 | |
guid | string | 订单唯一标示 | 等同订单信息的verifycode属性 |
semail | string | 是否发送email成功 | 成功:1,失败:0 |
sfax | string | 是否发送传真成功 | 成功:1,失败:0(备用,暂未开通此功能) |
smsg | string | 是否成功发送手机短信 | 成功:1,失败:0 |
示例
- function OrderPost(){
- order={
- guestfirstname:"三",
- guestlastname:"张",
- guestemail:"zhangsan@email.com",
- guestphone:"12345678",
- guestmobile:"13000000000",
- guestaddress:"北京西路1277号",
- airinfo:"航班信息",
- holdtime:"保留时间",
- remark:"备注",
- nosmooking:true
- };
- order.guestfirstname="";
- order.guestlastname="";
- order.guestemail="";
- order.guestphone="";
- order.guestmobile="";
- order.guestaddress="";
- order.airinfo="";
- order.holdtime="";
- order.remark="";
- order.nosmoking="";
- //预订结束后执行方法
- Hubs1.Core.OrderPostEnd=function(confnum,msg,guid,semail,sfax,smsg){OrderPostEnd(confnum,msg,guid,semail,sfax,smsg);};
- //调用提交预订方法
- Hubs.Core.OrderPost(order);
- }
- function OrderPostEnd(confnum,msg,guid,semail,sfax,smsg){
- if(confnum.length>0)
- {
- //ajax 写库,保存确认号
- var msgsend="";
- var temp="";
- msgsend+=msg;
- if(semail.length>0)
- {
- if(semail=="1")
- {
- msgsend+="<br/><span >发送确认信成功</span>";
- }
- else
- {
- msgsend+="<br/><span >发送确认信失败</span>";
- }
- }
- if(sfax.length>0)
- {
- if(sfax=="1")
- {
- msgsend+="<br/><span >发送传真成功</span>";
- }
- else
- {
- msgsend+="<br/><span >发送传真失败</span>";
- }
- }
- if(smsg.length>0)
- {
- if(smsg=="1")
- {
- msgsend+="<br/><span >发送手机短信成功</span>";
- }
- else
- {
- msgsend+="<br/><span >发送手机短信失败</span>";
- }
- }
- else
- {
- alert(msg);
- }
- }
Hubs1.Core.OrderPost 方法
描述
酒店订单预订提交
参数
参数 | 类型 | 描述 | 说明 |
order | object | 预订客人信息 | { guestfirstname:string, guestlastname:string, guestemail:string, guestphone:string, guestmobile:string, guestaddress:string, airinfo:string, holdtime:string, remark:string, nosmooking:Boolean }; |
order 对象参数
参数 | 类型 | 描述 | 说明 |
guestfirstname | string | 客人名 | |
guestlastname | string | 客人姓 | |
guestemail | string | 客人电子邮箱 | 填写后可接收成功预订邮件 |
guestphone | string | 客人电话 | |
guestmobile | string | 客人手机号 | 填写后可接收成功预订短信 |
guestaddress | string | 客人地址 | |
airinfo | string | 航班信息 | |
holdtime | string | 保留时间 | |
remark | string | 预订备注 | |
nosmooking | Boolean | 是否需要无烟房 | |
示例
Hubs1.Core.LoadResvInfoEnd 方法
描述
加载订单信息回调方法
参数
参数 | 类型 | 描述 | 说明 |
reservationinfo | object | 订单信息 |
|
ratelist | object | 价格列表 | [[string,number],...]//[日期,价格] |
示例
- reservationinfo
- {
- userid:788,
- usertype:"GroupUser",
- propertyid:999,
- roomtype:"DT",
- rateclass:"BAR",
- starttime:"2009-04-08",
- deptime:"2009-04-10",
- nights:2,
- room:1,
- guestfirstname:"test",
- guestlastname:"test",
- guestemail:"field.kang@hubs1.net",
- guestphone:"",
- guestMP:"13482038160",
- guestaddressline1:"",
- guestaddressline2:"",
- remarks:"test<br/>需要无烟房<br/>testewsea",
- confnum:"99903412",
- cxlnum:"211835",
- status:"cxl",
- totalmount:"244.00 ",
- adults:1,
- children:0,
- plandesc:"test 含服务费不含早餐1",
- roomname:"豪华双床房",
- roomdesc:"2大床,宽带上网收费,房内不可加床,有无烟房",
- canclerule:"请从入住当天17:00时之前取消,无罚金",
- guaranteerule:"不需要保证金",
- taxRule:"服务费用: 每间/每晚<br />服务费用: 每间/每晚<br />",
- getstatus:0,
- totalrevenue:244.00,
- verifycode:"e13a8db9-ce3c-433f-80cd-fad1290a4550",
- payment:"PP",
- currencycode:"CNY",
- outconfnum:"",
- title:"汇通天下大酒店--测试用",
- title_e:"Hubs1 Test Hotel",
- address1:"北京西路1277号16F",
- address1_e:"CITI Shanghai Building 1277 Beijing West Rd.",
- phone:"61226655",
- checkin:"12:00",
- checkout:"12:00",
- checkintime:"18:00",
- holdtime:"1800",
- hotelholdtime:"18:00",
- fop:"Cash;Visa"
- },
- ratelist
- [["2009-04-08",122.0],["2009-04-09",122.0]]
调用代码示例:
- function LoadResvInfo(){
- var select={confnum:99903412,lastname:"test"};
- //加载订单信息
- Hubs1.Core.LoadResvInfoEnd=function(reservationinfo,ratelist){LoadResvInfoEnd(reservationinfo,ratelist);};
- //调用订单查询方法,加载数据
- Hubs.Core.LoadResvInfo(select);
- }
- function LoadResvInfoEnd(reservationinfo,ratelist)
- {
- //调用请参考其它对象调用示例
- if(!reservationinfo.verifycode)return;
- }
Hubs1.Core.LoadResvInfo 方法
描述
加载订单信息
参数
参数 | 类型 | 描述 | 说明 |
select | object | 订单查询条件对象 | {confnum:string,//订单确认号lastname:string//预订客人姓} |
示例
Hubs1.Core.ModResvInfoEnd 方法
描述
订单修改信息提交回调方法
参数
参数 | 类型 | 描述 | 说明 |
emsg | string | 修改结果错误信息 | 如果为空,表示修改成功 |
semail | string | 发送Email状态 | 1:成功,0:失败 |
示例
- function ModResvInfo(){
- var update=
- {
- guestfirstname:"firstname",
- guestlastname:"lastname",
- guestemail:"GuestEmail@test.com",
- guestmobile:"13100000000",
- guestphone:"123456",
- holdtime:"14:00",
- remarks:"备注"
- };
- //修改订单后执行的方法
- Hubs1.Core.ModResvInfoEnd=function(emsg,semail){ModResvInfoEnd(emsg,semail);};
- //调用修改订单方法,加载数据
- Hubs.Core.ModResvInfo(update);
- }
- function ModResvInfoEnd(emsg,semail)
- {
- var temp="";
- if(msg.length>0)//无错误信息,修改成功
- {
- temp=msg;
- }
- else
- {
- temp="成功修改";
- }
- if(smail=="1")
- {
- temp+=",成功发送邮件";
- }
- else if(smail=="0")
- {
- temp+=",发送邮件失败!";
- }
- alert(temp);
- }
Hubs1.Core.ModResvInfo 方法
描述
提交订单修改信息
参数
参数 | 类型 | 描述 | 说明 |
update | object | 订单修改数据对象 |
|
示例
Hubs1.Core.CancelResvInfoEnd 方法
描述
参数
参数 | 类型 | 描述 | 说明 |
emsg | string | 取消订单信息 | 如果为空,表示取消成功 |
semail | string | 发送Email状态 | 1:成功,0:失败 |
示例
- function CancelResvInfo(){
- //取消订单后执行的方法
- Hubs1.Core.CancelResvInfoEnd =function(emsg,smail){CancelResvInfoEnd (emsg,smail);};
- //调用取消订单方法,加载数据
- Hubs.Core.CancelResvInfo();
- }
- function CancelResvInfoEnd(emsg,smail)
- {
- var temp="";
- if(emsg.length>0)
- {
- temp=emsg;
- }
- else
- {
- temp="成功取消";
- }
- if(smail=="1")
- {
- temp+=",成功发送邮件";
- }
- else if(smail=="0")
- {
- temp+=",发送邮件失败!";
- }
- alert(temp);
- }
Hubs1.Core.CancelResvInfo 方法
描述
参数
参数 | 类型 | 描述 | 说明 |
无参数 | | | |
示例
参见Hubs1.Core.CancelResvInfoEnd
Hubs1.Core.ReSendEmailEnd 方法
描述
重发预订确认信回调方法
参数
参数 | 类型 | 描述 | 说明 |
msg | string | 发送email反馈信息 | |
示例
- function ReSendEmail(){
- //发送后执行方法
- Hubs1.Core.ReSendEmailEnd=function(msg){alert(msg);};
- //调用确认信重发功能
- Hubs.Core.ReSendEmail();
- }
Hubs1.Core.GetReservationEnd 方法
描述
重发预订确认信
参数
参数 | 类型 | 描述 | 说明 |
无参数 | | | |
示例
Hubs1.Core.GetReservationEnd 方法
描述
获取订单状态信息回调方法
参数
参数 | 类型 | 描述 | 说明 |
resv | object | 订单信息 |
|
示例
- function GetReservation(){
- var guid="5f5b1b7e-03b7-46d8-8377-8c42fb999efb";
- //获取订单信息后执行的方法
- Hubs1.Core.GetReservationEnd=function(resv){GetReservationEnd(resv);};
- //调用获取订单状态方法,加载数据
- Hubs.Core.GetReservation(guid);
- }
- function GetReservationEnd(resv)
- {
- if(resv&&resv.guid)
- {
- var guid=resv.guid;//订单唯一标识
- var confnum=resv.confnum;//订单确认号
- var cxlnum=resv.cxlnum;//订单取消号
- var status=resv.status;//订单状态(New,Mod,cxl)
- var starture=resv.starture;//实际入住日期
- var departure=resv.departure;//实际离店日期
- var getstatus=resv.getstatus;//入住状态(0:"新单";1:"已处理";2: "手工单";3:"修改";4:"取消";5:"应到未到";6:"待定";7:"入住";8:"离店";)
- var totalrevenue=resv.totalrevenue;//消费金额
- }
- }
Hubs1.Core.GetReservation 方法
描述
获取订单状态信息
参数
参数 | 类型 | 描述 | 说明 |
guid | string | 订单唯一标示号 | 等同于订单信息中的verifycode |
示例
参见Hubs1.Core.GetReservationEnd
功能方法
酒店房型实时价格查看
方法 | 描述 | 说明 |
Hubs1.Core.LoadRateList(select) | 加载酒店房型实时价格列表信息 | |
Hubs1.Core.LoadRateListEnd(roomlist) | 加载酒店房型实时价格列表信息结束后回调方法 (需要调用端进行方法重写 ) | |
房型预订
方法 | 描述 | 说明 |
加载酒店预订内容基本信息 | | |
加载酒店预订内容基本信息结束后回调方法 (需要调用端进行方法重写 ) | | |
获取验证码图片 | | |
发送手机确认码 | | |
发送手机确认码结束后回调方法 (需要调用端进行方法重写 ) | | |
校验手机确认码 | | |
校验手机确认码结束后回调方法 (需要调用端进行方法重写 ) | | |
酒店订单预订提交 | | |
预订提交结束后回调方法 (需要调用端进行方法重写) | |
订单查询修改取消
方法 | 描述 | 说明 |
加载订单信息 | | |
加载订单信息结束后回调方法 (需要调用端进行方法重写 ) | | |
提交订单修改信息 | | |
提交订单修改结束信息后回调方法 (需要调用端进行方法重写 ) | | |
取消订单 | | |
取消订单结束后回调方法 (需要调用端进行方法重写 ) | | |
重发预订确认信 | | |
重发预订确认信结束后回调方法 (需要调用端进行方法重写) | |
订单状态获取
方法 | 描述 | 说明 |
获取订单状态信息 | | |
获取订单状态信息结束后回调方法 (需要调用端进行方法重写) | |