Skip to content

快速開始 ​

照著這一頁做,大約 30 分鐘就能用沙箱完成第一個簽章呼叫、讓測試玩家進入遊戲、轉入測試幣並讀回注單。沙箱使用測試幣與模擬器桌,不會產生任何費用。

你需要

  • 一台能發出 HTTPS 請求的伺服器(或本機電腦)。API 只能由伺服器呼叫,Secret 絕不可以放在瀏覽器或 App。
  • 一個收得到信的 Email(Console 密碼會寄到這裡)。

1. 註冊 ​

開啟 /signup,填寫:

欄位說明
公司名稱顯示在 Console 與帳單上
公司代碼3–16 個英數字,自動轉成大寫,例如 ACME;註冊後不能更改
EmailConsole 的登入帳號,也是帳單聯絡人
時區報表與每日彙總(GET /bets/summary)的日期依這個時區計算
幣別玩家的預設幣別:USD、TWD、CNY、HKD、THB、VND、PHP、MYR、JPY、KRW

送出後系統會自動開通,並把 Console 密碼寄到你的 Email(72 小時內有效)。第一次登入 /Console/ 就完成 Email 驗證;72 小時內都沒有登入的註冊會自動停用。

開通時會一併建立:

  • 正式租戶(公司代碼 ACME):免費展示方案,附註冊贈送的預付額度。
  • 沙箱租戶(公司代碼 ACME-SBX):測試幣、已啟用所有模擬器桌(S01、S02 百家樂,S03 龍虎,N01 牛牛),模擬器桌 24 小時自動開局。可建立 500 個測試玩家,API 每秒 20 次(見限流與配額)。
  • 兩把 API 金鑰:沙箱金鑰(ek_s_…)與正式金鑰(ek_l_…)。

2. 取得沙箱金鑰 ​

  1. 登入 Console,開啟 上線與串接 → API 金鑰。
  2. 找到「環境:沙箱」的那一列,金鑰 ID 形如 ek_s_1a_XXXXXXXXXXXXXXXX。
  3. 按「顯示」或「複製」取得 Secret(形如 es_ 加 40 個英數字)。顯示金鑰前需要先驗證雙因子(TOTP):在 我的帳號 → 雙因子驗證(TOTP) 綁定一次,之後 30 分鐘內可以連續顯示與複製。
    • 也可以按「新增金鑰 → 沙箱」建立一把新的沙箱金鑰,建立當下會直接顯示 Secret。
  4. 把金鑰 ID 與 Secret 設成伺服器的環境變數,例如 ELITE_KEY_ID、ELITE_SECRET。

保管 Secret

Secret 只能放在伺服器端(環境變數或祕密管理服務),不要寫進程式碼庫、前端或 App。外洩時請在 Console「輪替」(舊金鑰 24 小時後失效)或「停用」(立即失效)。

3. 第一個簽章呼叫 ​

所有 API 都在 https://elite.ewin888.com/api/tenant/v1。沙箱金鑰與正式金鑰使用同一個主機,系統依金鑰 ID 判斷是哪個租戶。

每個請求都帶四個標頭,簽章規則是:

text
X-Signature = hex( HMAC-SHA256( secret,
    METHOD + "\n" + PATH_AND_QUERY + "\n" + X-Timestamp + "\n" + X-Nonce + "\n" + hex(SHA-256(body)) ) )

先用 GET /tables 試一次(GET 沒有本文,本文雜湊固定是空字串的 SHA-256)。

bash
KEY_ID="$ELITE_KEY_ID"; SECRET="$ELITE_SECRET"
BASE='https://elite.ewin888.com'
PATH_AND_QUERY='/api/tenant/v1/tables'
TS=$(date +%s)
NONCE=$(openssl rand -hex 16)
BODY_HASH=$(printf '' | openssl dgst -sha256 -hex | sed 's/^.* //')
SIG=$(printf 'GET\n%s\n%s\n%s\n%s' "$PATH_AND_QUERY" "$TS" "$NONCE" "$BODY_HASH" \
  | openssl dgst -sha256 -hmac "$SECRET" -hex | sed 's/^.* //')
curl -sS "$BASE$PATH_AND_QUERY" \
  -H "X-Api-Key: $KEY_ID" -H "X-Timestamp: $TS" -H "X-Nonce: $NONCE" -H "X-Signature: $SIG"
js
// 使用〈認證與簽章〉的 sign.js(call 會自動簽章)
import { call } from './sign.js';

const auth = { keyId: process.env.ELITE_KEY_ID, secret: process.env.ELITE_SECRET };
const { tables } = await call('GET', '/api/tenant/v1/tables', undefined, auth);
console.log(tables.map((t) => `${t.tableId} ${t.game} enabled=${t.enabled}`));

成功時回應 {"ok": true, "data": {"tables": [...]}},沙箱的 S01、S02、S03、N01 都是 "enabled": true。收到 UNAUTHORIZED 時,把同樣的輸入貼到簽章除錯器逐行比對;常見原因見認證與簽章。

4. 讓測試玩家進入遊戲 ​

呼叫 POST /player/launch。玩家不存在時會自動建立,不需要另外註冊:

json
{ "username": "test001", "lang": "CHT", "device": "pc" }

回應:

json
{ "ok": true, "data": { "url": "https://elite.ewin888.com/Launch?t=…", "expiresIn": 60 } }

在 60 秒內用瀏覽器開啟 url(只能使用一次),就會進入遊戲大廳,看得到模擬器桌。正式串接時,由你的網站在玩家按下「進入遊戲」時呼叫 launch,再把玩家導向(或以 iframe 開啟)這個網址,詳見遊戲啟動。

5. 轉入測試幣、下注 ​

新玩家餘額是 0。用 POST /wallet/deposit 轉入測試幣,currency 填你註冊時選的幣別:

json
{ "username": "test001", "txnId": "qs-0001", "amount": "1000", "currency": "TWD" }

txnId 是你的轉帳單號,也是冪等鍵:同一個 txnId 重送不會重複入帳(回應的 duplicate 為 true)。回到遊戲(需要時重新 launch)就能在模擬器桌下注。轉帳的完整規則見錢包(轉帳)。

6. 讀回注單 ​

每局結算後,注單可以用 GET /bets 讀回:

text
GET /api/tenant/v1/bets?limit=100

把回應的 nextCursor 存起來,下一次呼叫帶 ?cursor=<nextCursor> 就會從上次的位置繼續。完整的同步迴圈、版次(rev)與作廢處理見注單同步。

7. 上線檢核清單 ​

Console 的 上線與串接 → 上線檢核清單 會以你的沙箱金鑰實際呼叫五個端點,確認沙箱租戶、金鑰與權限都正常:

項目端點
簽章呼叫GET /tables
啟動遊戲POST /player/launch
轉入POST /wallet/deposit
轉出POST /wallet/withdraw
注單同步GET /bets

按「立即重新檢查」,全部通過會顯示「可上線」。

8. 切換到正式環境 ​

  • 你的系統已完成:launch、轉入與轉出(含逾時重送同一個 txnId)、注單游標同步(以 (slipId, rev) 去重)。
  • 把金鑰換成正式金鑰(ek_l_…),主機不變。
  • 在 上線與串接 → IP 白名單與 Webhook 設定伺服器的對外 IP(建議)。
  • 在 桌檯 → 桌檯選擇 選好要開放給玩家的桌(免費方案最多 2 桌)。
  • 在 品牌與登入 設定語系與「返回大廳網址」。
  • 正式營運前到 方案與帳單 儲值並升級付費方案,免費展示方案的限制見限流與配額與計費說明。
  • (付費方案)需要即時通知時設定 Webhook。

elite 租戶整合 API v1