Skip to content

上線檢查清單

在服務第一個真實資金玩家 session 之前,過一遍這份簡短的檢查清單。每一項都連結回它在文件裡被完整解釋的地方。

憑證與密鑰

  • [ ] 你的運營商租戶 ID 和 HMAC 金鑰只存放在伺服端——絕不出現在瀏覽器打包產物、行動應用程式,或任何客戶端可見的設定裡。見簽名與身份驗證
  • [ ] 金鑰是從密鑰管理服務或環境變數讀取的,沒有提交進原始碼版本控制。

時鐘與網路

  • [ ] 簽名你發出的呼叫(並驗證收到的錢包回調)的那台伺服器,時鐘已透過 NTP 同步。時鐘偏差是造成莫名其妙的 401 最常見的原因——見環境與基礎網址:時鐘同步
  • [ ] 你連的是你真正打算上線的那個環境對應的平台 baseUrl,而不是預備環境——見環境與基礎網址

已在平台完成註冊

  • [ ] 你的錢包回調基礎網址已經透過租戶的自助入口網站註冊,而且在你儲存它之前,該網址已經對應到一個實際在運行的實作——見註冊你的錢包回調 URL
  • [ ] 如果你的錢包回應時間通常接近或超過 5000ms,你已經向平台管理團隊提出調高回調逾時時間的請求,而不是等到正式環境裡出現 TIMED_OUT 才發現問題。

錢包回調實作

  • [ ] POST /v1/wallet/transactionGET /v1/wallet/balance 在信任請求之前都會驗證平台的簽名(完整 URI,不只是路徑)——見簽名與身份驗證:校驗平台的簽名(錢包回調)
  • [ ] 用同一個 transactionId 重複呼叫時,會回傳一模一樣的快取回應,而不是重新套用一次餘額變動——見冪等性。這是整個整合裡最舉足輕重的一項屬性。
  • [ ] DECLINED 只會在 BET 上出現——WINROLLBACKADJUSTMENT 要嘛以 OK 成功,要嘛讓這次 HTTP 呼叫直接失敗。
  • [ ] GET /v1/wallet/balance 夠快、夠可靠——它會被遊戲廠商透過平台即時呼叫,而不只是一個背景檢查。
  • [ ] 你已經至少跑過一次 ROLLBACK,而不只是 BET/WIN——這是最容易被一次順利的 demo 忽略掉的路徑。

啟動整合

  • [ ] 在呼叫啟動之前,currency(以及如果有用到的 language)已經對照目標遊戲的 GameSummary 做過驗證,這樣不匹配時會在你自己這一側就快速失敗,而不是以一個含糊的 400 冒出來。
  • [ ] 你已經處理了 403 風控回應——見POST /v1/operator/games/launch——並顯示給玩家看的訊息,而不只是一個通用錯誤。
  • [ ] 你對 429 的處理遵循 Retry-After 標頭,而不是立即重試——見錯誤與重試

Shell 端橋接

  • [ ] 你的 postMessage 監聽器在信任一則訊息之前,會驗證 event.originevent.source 和 envelope 標記——見 Shell 端橋接
  • [ ] SESSION_REVOKEDEXIT_GAME 的處理方式不同——玩家在遊戲進行中被踢出(無論是你踢的,還是風控踢的)時,會看到明確的提示,而不是被悄悄地送回你的大廳。

在你的第一個真實 session 之前

  • [ ] 你已經針對平台的預備環境(如果有的話)完整跑過一次端到端的 REAL 模式 session——簽名一次啟動、嵌入、下注、確認你的錢包結算了它、確認 BET_END 裡的餘額和你的帳本一致。見測試:上線前先跑一次真實的端到端流程