桌台与局
桌台清单、以 API 激活或禁用桌台(受方案配额限制),以及查询单局结果。
相关指南:阅读这部分的对接指南
TIP
示例使用〈认证与签名〉的示例密钥与时间戳计算签名,可直接用〈签名调试器〉验算。
查询局结果
GET /api/tenant/v1/rounds/{roundId}
已结算(或作废、争议)的一局:结果码、牌面、点数与修正版次。尚未结算的局回 ROUND_NOT_FOUND。
roundId是 26 个字符的大写 ULID(注单的roundId);格式不符时回NOT_FOUND(找不到端点)。
参数
| 参数 | 位置 | 类型 | 必填 | 说明 |
|---|---|---|---|---|
roundId | path | string | 是 | 局 ID(26 字符大写 ULID)。 格式: ^[0-9A-Z]{26}$ |
请求示例
GET /api/tenant/v1/rounds/01K5Y0B8Z6R2M4N7P9Q3S5T8VW HTTP/1.1
Host: elite.ewin888.com
X-Api-Key: ek_s_1a_XXXXXXXXXXXXXXXX
X-Timestamp: 1790218800
X-Nonce: ex0f611c801aa08d65821fe5
X-Signature: b2e8e4652361cb5569e2db5ce643a7a7f9068baa376bfe7fd41166795049d633响应的 data
| 字段 | 类型 | 说明 |
|---|---|---|
roundId | string | 局 ID(26 字符大写 ULID)。 格式: ^[0-9A-Z]{26}$ |
tableId | string | 桌号,例如 S01(见 GET /tables)。长度:1–… |
shoe | string | 靴号;牛牛为场次。 |
round | integer | 本靴第几局;牛牛为本场次第几局。 |
status | string | settled 已结算;void 作废;disputed 争议局(结算后收到超出护栏的修正或作废,维持原结果、不动金额)。可能的值: settled、void、disputed |
code | string | null | 结果码(百家乐、龙虎为一个十六进制字符;牛牛为 5 个字符,例如 5893A)。 |
cardInfo | string | null | 牌面字符串(牛牛为 头牌|庄|闲一|闲二|闲三)。 |
result | BaccaratResult | DragonTigerResult | NiuniuResult | null | 结构化结果(百家乐、龙虎或牛牛);没有结果时为 null。 |
complete | boolean | null | true 表示有完整牌面;false 表示数据源只提供了输赢与点数(牛牛为各家输赢,可能附牌型)。 |
rev | integer | 结果版次(第一次结果为 1,每次修正 +1;作废也会 +1)。 |
openedAt | string (date-time) | null | 开放下注时间。 |
settledAt | string (date-time) | null | 首次结算时间。 |
响应示例
百家乐:庄 6 点胜
{
"ok": true,
"data": {
"roundId": "01K5Y0B8Z6R2M4N7P9Q3S5T8VW",
"tableId": "S01",
"shoe": "260924-03",
"round": 12,
"status": "settled",
"code": "1",
"cardInfo": "122334424000",
"result": {
"cards": {
"P1": "2C",
"B1": "4H",
"P2": "3D",
"B2": "2S",
"P3": "10S"
},
"player": 5,
"banker": 6,
"winner": "B",
"playerPair": false,
"bankerPair": false
},
"complete": true,
"rev": 1,
"openedAt": "2026-09-24T03:00:30.012Z",
"settledAt": "2026-09-24T03:01:20.480Z"
}
}牛牛:庄牛8,闲一、闲三赢
{
"ok": true,
"data": {
"roundId": "01K65N7Q2W4E6R8T0Y1V3J5K7P",
"tableId": "N01",
"shoe": "260928-01",
"round": 7,
"status": "settled",
"code": "5893A",
"cardInfo": "7H|KS QD 10C 3S 5H|4C 6D JS 9C KH|2D 8S QC AH 2C|7D 3H KD 5C 5D",
"result": {
"cards": {
"F": "7H",
"B-1": "KS",
"B-2": "QD",
"B-3": "10C",
"B-4": "3S",
"B-5": "5H",
"P1-1": "4C",
"P1-2": "6D",
"P1-3": "JS",
"P1-4": "9C",
"P1-5": "KH",
"P2-1": "2D",
"P2-2": "8S",
"P2-3": "QC",
"P2-4": "AH",
"P2-5": "2C",
"P3-1": "7D",
"P3-2": "3H",
"P3-3": "KD",
"P3-4": "5C",
"P3-5": "5D"
},
"hands": {
"B": 8,
"P1": 9,
"P2": 3,
"P3": 10
},
"winners": {
"P1": "P",
"P2": "B",
"P3": "P"
}
},
"complete": true,
"rev": 1,
"openedAt": "2026-09-28T06:30:05.010Z",
"settledAt": "2026-09-28T06:30:51.640Z"
}
}错误码
| 错误码 | HTTP | 意义 |
|---|---|---|
ROUND_NOT_FOUND | 404 | 这一局不存在,或尚未结算。 |
NOT_FOUND | 404 | unknown endpoint:方法与路径不存在(例如用 GET 调用 POST 端点,或局 ID 不是 26 字符大写 ULID)。table not found:激活或禁用的桌号不存在。 |
所有端点另外都可能返回共通错误(UNAUTHORIZED、IP_NOT_ALLOWED、TENANT_SUSPENDED、RATE_LIMITED、INTERNAL_ERROR…)。
桌台清单
GET /api/tenant/v1/tables
你可以选的桌台:平台桌、你自己建的桌,以及其他商户提供给你的桌(有 provider;平台开放跨商户提供、提供者核准并把你列为对象时才会出现),以及你是否已激活(enabled)。玩家只看得到你已激活的桌。
请求示例
GET /api/tenant/v1/tables HTTP/1.1
Host: elite.ewin888.com
X-Api-Key: ek_s_1a_XXXXXXXXXXXXXXXX
X-Timestamp: 1790218800
X-Nonce: exfe6fa2bddbdf8319ac6b88
X-Signature: 8f3157bbe143fb81ed69dd409de7b32bdb5a3cc30b42f18b58e1c880a39b09a3响应的 data
| 字段 | 类型 | 说明 |
|---|---|---|
tables | Table[] | |
tables[].tableId | string | 桌号,例如 S01(见 GET /tables)。长度:1–… |
tables[].game | string | 游戏:baccarat 百家乐、dragontiger 龙虎、holdem 德州扑克、niuniu 牛牛。可能的值: baccarat、dragontiger、holdem、niuniu |
tables[].variants | string[] | 这张桌提供的玩法。 |
tables[].name | 对应表<string, string> | 各语言的桌名,键为语言代码(CHT、CHS、ENG…)。 |
tables[].status | string | open 开放;maintenance 维护中(数据源中断等)。可能的值: open、maintenance |
tables[].betSeconds | integer | 默认下注秒数。 |
tables[].enabled | boolean | 你是否已激活这张桌。 |
tables[].provider | object | 只有其他商户提供给你的桌(跨商户提供)才有:提供者。玩家用你的限红、钱照旧由你结算,使用这张桌也算进你的桌数。 |
tables[].provider.name | string | 提供者名称。 |
响应示例
{
"ok": true,
"data": {
"tables": [
{
"tableId": "S01",
"game": "baccarat",
"variants": [
"classic",
"nocomm"
],
"name": {
"CHT": "模擬百家樂 1",
"CHS": "模拟百家乐 1",
"ENG": "Sim Baccarat 1"
},
"status": "open",
"betSeconds": 20,
"enabled": true
},
{
"tableId": "S03",
"game": "dragontiger",
"variants": [
"classic"
],
"name": {
"CHT": "模擬龍虎",
"CHS": "模拟龙虎",
"ENG": "Sim Dragon Tiger"
},
"status": "open",
"betSeconds": 20,
"enabled": false
},
{
"tableId": "N01",
"game": "niuniu",
"variants": [
"standard"
],
"name": {
"CHT": "模擬牛牛 N01",
"CHS": "模拟牛牛 N01",
"ENG": "Sim Niu Niu N01"
},
"status": "open",
"betSeconds": 15,
"enabled": true
},
{
"tableId": "STUDIO-B1",
"game": "baccarat",
"variants": [
"classic",
"nocomm"
],
"name": {
"CHT": "旗艦攝影棚 B1",
"ENG": "Studio B1"
},
"status": "open",
"betSeconds": 20,
"enabled": true,
"provider": {
"name": "旗艦娛樂"
}
}
]
}
}错误码
没有端点专属的错误码。
所有端点另外都可能返回共通错误(UNAUTHORIZED、IP_NOT_ALLOWED、TENANT_SUSPENDED、RATE_LIMITED、INTERNAL_ERROR…)。
激活桌台
POST /api/tenant/v1/tables/enable
让玩家看得到并可以进入这张桌,规则与 Console「桌台选择」相同。
- 免费方案最多激活配额内的桌数(默认 2),超过回
QUOTA_EXCEEDED。 - 付费方案没有配额,激活当天起开始计费(每桌每月 100 USD,依日按比例从预付额度扣)。
- 账户停权时回
ACCOUNT_LOCKED。已激活的桌再次激活不会出错。
请求体(application/json)
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
tableId | string | 是 | 桌号,例如 S01(见 GET /tables)。长度:1–… |
请求示例
POST /api/tenant/v1/tables/enable HTTP/1.1
Host: elite.ewin888.com
X-Api-Key: ek_s_1a_XXXXXXXXXXXXXXXX
X-Timestamp: 1790218800
X-Nonce: exe402a4d70d5b26f9ff7ecb
X-Signature: 4fe5abf3732be5a21a02bc5e38589ee2fec4761489dfcefd4080cc5985be9d6d
Content-Type: application/json
{"tableId":"S01"}响应的 data
| 字段 | 类型 | 说明 |
|---|---|---|
tableId | string | 桌号,例如 S01(见 GET /tables)。长度:1–… |
enabled | boolean | 操作后是否激活。 |
used | integer | 目前已激活的桌数。 |
quota | integer | null | 方案可激活的桌数;付费方案为 null(不限)。 |
响应示例
{
"ok": true,
"data": {
"tableId": "S01",
"enabled": true,
"used": 2,
"quota": 2
}
}错误码
| 错误码 | HTTP | 意义 |
|---|---|---|
INVALID_PARAMETER | 400 | 缺少必要字段,或字段格式、值不正确;message 会指出是哪个字段。 |
NOT_FOUND | 404 | unknown endpoint:方法与路径不存在(例如用 GET 调用 POST 端点,或局 ID 不是 26 字符大写 ULID)。table not found:激活或禁用的桌号不存在。 |
QUOTA_EXCEEDED | 409 | 已激活的桌数达到免费方案配额(默认 2 桌)。 |
ACCOUNT_LOCKED | 409 | 账户已停权或关闭,不能激活桌台。 |
所有端点另外都可能返回共通错误(UNAUTHORIZED、IP_NOT_ALLOWED、TENANT_SUSPENDED、RATE_LIMITED、INTERNAL_ERROR…)。
禁用桌台
POST /api/tenant/v1/tables/disable
玩家立即看不到、也进不去这张桌;付费方案从次日起不再计这张桌的桌费(禁用当天仍计一天)。
请求体(application/json)
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
tableId | string | 是 | 桌号,例如 S01(见 GET /tables)。长度:1–… |
请求示例
POST /api/tenant/v1/tables/disable HTTP/1.1
Host: elite.ewin888.com
X-Api-Key: ek_s_1a_XXXXXXXXXXXXXXXX
X-Timestamp: 1790218800
X-Nonce: ex6856b510b474ee6e5809b2
X-Signature: 4cf44c20f65e287a06f5d8a0a73a4e4144fef2ff5358c344a9cd921899043ffc
Content-Type: application/json
{"tableId":"S01"}响应的 data
| 字段 | 类型 | 说明 |
|---|---|---|
tableId | string | 桌号,例如 S01(见 GET /tables)。长度:1–… |
enabled | boolean | 操作后是否激活。 |
used | integer | 目前已激活的桌数。 |
quota | integer | null | 方案可激活的桌数;付费方案为 null(不限)。 |
响应示例
{
"ok": true,
"data": {
"tableId": "S01",
"enabled": false,
"used": 1,
"quota": 2
}
}错误码
| 错误码 | HTTP | 意义 |
|---|---|---|
INVALID_PARAMETER | 400 | 缺少必要字段,或字段格式、值不正确;message 会指出是哪个字段。 |
NOT_FOUND | 404 | unknown endpoint:方法与路径不存在(例如用 GET 调用 POST 端点,或局 ID 不是 26 字符大写 ULID)。table not found:激活或禁用的桌号不存在。 |
所有端点另外都可能返回共通错误(UNAUTHORIZED、IP_NOT_ALLOWED、TENANT_SUSPENDED、RATE_LIMITED、INTERNAL_ERROR…)。