身份验证
Hotspot API 通过单个 HTTP 请求头 ApiKey 进行身份验证。没有单独的登录步骤,也没有 token;每个请求都要发送该密钥。
请求头#
POST /public/json/customer/inhotel HTTP/1.1
Host: test.hms.gen.tr
ApiKey: 017f1daf2d139
HotelCode: 1000
Content-Length: 0| 请求头 | 说明 |
|---|---|
ApiKey | 必填。在 HMS 管理后台生成的自定义 API 密钥(13 位字符)。首尾空白会被忽略;请求头名称不区分大小写。 |
HotelCode | 建议发送。酒店在 HMS 中的 ID。服务器根据密钥确定酒店,不使用该请求头进行验证;发送它便于记录日志并保持向后兼容。 |
密钥从哪里获取#
密钥在酒店 HMS 管理后台 API 页面的自定义 API(Custom API)选项卡中生成。描述字段用于注明密钥的用途;可以生成多个密钥。在同一页面删除的密钥会立即失效。
身份验证失败#
如果缺少该请求头、值为空,或在 HMS 中找不到该密钥,将返回 HTTP 401,响应体如下:
{
"success": 0
}响应不提供错误详情。请按以下顺序检查:请求头名称是否为 ApiKey,值是否与从后台复制的密钥完全一致,该密钥是否仍在后台列表中。收到 401 时不要重试;在密钥修正之前,结果不会改变。
酒店上下文#
一个密钥只绑定一家酒店,响应中只包含该酒店的客人。如果一套部署服务多家酒店,请从每家酒店自己的后台获取密钥,并按酒店分别保存。发送不同的 HotelCode 并不会返回其他酒店的数据;酒店始终由密钥决定。
保护密钥#
- 将密钥保存在热点服务器的配置或环境变量中;切勿写入认证门户的 HTML 或客户端 JavaScript。
- 负责获取名单的组件必须运行在服务端。客人设备不得直接调用 HMS,因为响应中包含每位客人的身份信息。
- 如果怀疑密钥已泄露,请在后台删除并重新生成。旧密钥一经删除,立即返回
401。