2. 未经携程计算机技术(上海) 有限公司 的书面同意,所有权属于携程计算机技术(上海) 有限公司,任何接触此件的人必须遵守以下规定:1. 本文件及包含的内容均属于携程计算机技术(上海) 有限公司 资产,携携程程网 网 站站联联盟盟 A AP PI I 平平台 台 集集成成开开发发指指南南 文档编号: 项 目 名 :网站联盟 II 期-API 平台 作 者:刘磊 文 件 名 :携程旅行网网站联盟 API 接入文档.doc 保密等级: 审 核 人: 批 准 人: 文件状态: [ ] 草稿 [ ] 正在修改 [√] 正式发布 最后更新时间: 版权申明: 本文件属于机密文件,任何人不得对本文件的全部和/或部分内容进行任何形式的复制或传播扩散。
版本历史 版本状态 作者 审核人 发布日 期 备注 V1.0 刘磊 V1.1 刘磊 更新 API 使用手册 规范错误编号 V1.2 刘磊 增加国内机票 API 使用手册 增加支付 API 使用手册 V1.3 刘磊 修改时间戳为 1970 年起 增加支付 API 使用手册。
需与相关干系人进一步明确信息时使用的字体 1 .4. 术语与缩写 术语缩写 解释 API Application Programming Interface 应用程序接口 本文中指携程旅行网提供给联盟伙伴的业务数据接口 AllianceID 联盟 ID 指联盟伙伴通过网站联盟平台()自 行注册或通过携程客户经理注册后得到的唯一联盟标识 类型为 Int32 SID 站点 ID 指联盟伙伴通过网站联盟平台()开通联盟并登录后自 行添加或通过携程客户经理注册后得到的联盟下站点的唯一标识 类型为 Int32,1 . 引 言 1 .1 . 目 的 本文描述了 网站联盟 API 平台对联盟伙伴提供的接口化预订解决方案,1 .2. 读者对象 本文档的预期读者为业务需求人员、 开发经理、 项目 经理、 架构设计师、 开发人员、 测试人员、 设计评审人员、 用户文档编写者,一个联盟可拥有多个站点 SecretKey 密钥 指联盟伙伴通过携程客户经理完成 API 平台权限开通后获得的针对每个 SI D 的唯一身份认证标识,1 .3. 文档内部约定 1 .3.1 . 文档字体约定 ▲ 着重说明字体: 对于本文中 重要,文档分别从交互模式、 签名 、 接口、 注意事项等方面详细介绍了 API 平台的工作方式和开发过程,易疏忽的关键内 容进行标记时使用的字体 ▲ 补充说明字体: 为便于读者理解,这是一种对于前文进行补充说明时使用的字体 ▲ 待定信息字体: 对于本文在编写时未确定,帮助联盟伙伴轻松实现酒店、 机票、 度假等在线旅游业务查询、 预订、 API 功能,可以帮助开发人员快速入门并掌握开发技能,可通过登录联盟平台,同时也可以作为日 后接口参数及参数类型的速查手册,易混淆,文本在某些描述之后会使用现有系统的实际情况举例。
至当前时间为止的总秒数 TimeStamp Signature 签名 以 TimeStamp、 SID、 MD5(SecretKey)按照顺序字符串拼接后 MD5加密所得的字符串,MD5 相关请见 MD5 签名 章节 2. 方案概述 2.1 . 业务说明 API 平台提供联盟伙伴自 行通过携程旅行网提供的在线旅游业务 API 实现业务相关流程,请妥善保存此密钥并不得泄露给第三方 时间戳 本文中指以 1 970-1 -1 00:00:00.000 为基准,(http:)后通过站点列表中的站点详情页查看,避免了 只能导流量而不能自 主定义预订流程的问题。
签名 的字段包括请求中有所的 get 或 post 字段,客户端未传入参数或者参数值不正确 InvalidAlliance 无效联盟站点,签名 时字段名 和字段值都采用原始值,还应包括请求中出现的其它字段,MD5 签名 计算公式: Signature = Md5(TimeStamp+ SI D+ MD5(密钥) .toUpperCase).toUpperCase 如签名原始串是: AllianceID =1& SID =50& TimeStamp =1234567890 站点密钥是: abcdefg123456 MD5 后站点密钥是: 5393E07F94A25AAA373DBD3FA257BD3A 签名 的结果为: Signature= Md5(TimeStamp+ SI D+ MD5(密钥) .toUpperCase).toUpperCase =MD5(1 234567890505393E07F94A25AAA373DBD3FA257BD3A) =2E356E4C20AF7C943D65A6E5B0498277,参数名 、 空值不传递,形成的摘要字符串即为签名 结果,联盟站点已被列入黑名 单 I nvalidI P 无效 I P 地址,客户端 I P 地址未注册,4.4. 字符串格式 直接以简单字符串作为数据内容,SID 或者 AllianceID 未注册 RequestRejected 请求被拒绝,待签名 参数按照 字 段名 的 TimeSpan、 SID、 MD5(SecretKey).toUpperCase 排 序 后 使用QueryString 的格式(即 TimeSpan+ SID+MD5(SecretKey).toUpperCase) 拼接而成,除了 接口中描述的字段外,暂时未控制 PermissionDenied 无权限访问 RateLimit 超出调用频率限制 InvalidSignature 无效签名 InvalidResponse 无效响应 4.5. 签名 原始串 无论是用 get、 post 还是 xml,签名 原始串组串方式都一致,返回结果 结果说明 InvalidRequest 无效请求 InvalidSIdOrAllianceId 无效 SID 或者 AllianceID,通过在签名 原始串后加上联盟通信密钥的内容,除 Signature 字段外,4.6. 签名 算法 目 前为 MD5 签名 4.6.1 . MD5 签名 MD5 是一种摘要生成算法,不参与签名,签名结果统一转换为大写字符,不进行 URL Encode,表示请求验证处理是否通过,进行 MD5运算,一般用于后台通知模式的接口反馈,为了 方便比较。
对 API 平台通过 POST 方式发送 API 结果信息到联盟站点进行相同的处理方式,4.6.2. MD5 签名 原理 联盟站点以 POST 方式发送 API 请求到 API 平台的安全考虑,API 平台使用联盟密钥按相同算法生成 MD5 签名,所以其他联盟无法伪造 MD5 签名,简述如下: 联盟站点生成 POSTAPI 请求表单时对表单参数附加上联盟密钥一起进行 MD5 签名,然后验证联盟发送过来的 MD5 签名 是否与 API 平台生成的一致,然后再检查参数字段有没有特殊的字符,答: 如果一直报 I nvalidSignature(签名错误),5. 附录 5.1 . FAQ 5.1 .1 . 问: 我运行程序后怎么一直报错误代码: 签名 错误,5.1 .2. 问: 我怎么得到联盟身份(Alliance) 和站点密钥(Secretkey),请首先检查程序中请求 URL 中传给API 平台的参数有没有存在空值,或者签名 算法是否正确,当 API 请求到达 API 平台后,答: 您可以联系 API 平台业务主管部门,从而可以保证 API 请求不可篡改及伪造,开通接入 API 平台的联盟账户和密钥,联盟密钥由 API 平台和联盟各执一份,并且 API 平台保证联盟密钥与其它联盟不相同。
北京市卫健委 提醒,今日是国庆节假期最后一天,面临进返京高峰,出京旅行
“秋天的日子是半透明的 涂在金色的土地和田野上” 如果有一个季节,能让整
最美的风景在路上,最美的路上有风景。一条条公路串联湖北的名山大川、多彩
从靠山水到卖场景 从卖特产到拼创意 乡村旅游越来越好玩 “采摘”“收割”“
老君山两日自由行攻略,不抱团,自己做大巴或开车去攻略。有爬山和做索道两
旅游出行方式的简单比较 出游 方式 项目 比较 特点 优点 局限性 适合人群 适合
一年四季,寒来暑往,春夏秋冬,风景各有各的美。而自驾旅游的魅力,就在于
从北京海淀出发,自驾140公里左右,就可以看到另外一番天地。 这里是高山草
我们都是时间的旅行者, 为了寻找生命中的光。 终其一生,行走在漫长的旅途
原标题:三月赏花游 户外踏青走起 文、图/广州日报全媒体记者罗磊 通讯员柳