Live Games連接到平臺的API如何工作
1)通用架構和組件角色
運營商平臺(Casino Platform):帳戶,錢包,獎金引擎,限制,KYC/AML,交易日誌。
實時遊戲提供商(Studio/Provider):工作室,經銷商,視頻流(WebRTC/Low-Latency HLS),回合遊戲服務器。
聚合器(有時):單個API到數十個提供商,統一貨幣/限制/事件。
客戶端前端: Web/移動客戶端與 UI投註,視頻播放器,聊天,本地提示.
支持服務:Risk/Anti-fraud、拼寫、分析、消息隊列(Kafka/RabbitMQ)、監控。
類型拓撲:→客戶端(JWT)→ →平臺(服務器到服務器)→提供商,並行接收來自CDN/媒體服務器池的視頻流。
2)玩家的生命周期和會議
2.1.Login和「遊戲令牌」
1.玩家在平臺上授權。
2.該平臺從提供商(S2S)調用CreateGameSession,傳遞負責任的遊戲標誌「player_id」,「currency」,「country」,「bet_limits」。
3.提供商返回一次性game_token和launch_url。
4.客戶端在iframe/新選項卡中打開 「launch_url」,方法是添加「game_token」(或在遊戲的目的URL上接收302)。
S2S查詢示例:http
POST /api/v1/sessions
Content-Type: application/json
Authorization: Bearer <platform_api_key>
{
"player_id": "u-918273", "session_id": "sess-5f3b2", "currency": "EUR", "country": "DE", "lang": "de", "bet_limits": {"min": 0.5, "max": 2000}, "responsible_gaming": {"self_excluded": false, "deposit_limit_left": 150}, "callback_urls": {
"balance": "https://platform.example.com/wallet/balance", "debit": "https://platform.example.com/wallet/debit", "credit": "https://platform.example.com/wallet/credit", "rollback":"https://platform.example.com/wallet/rollback", "events": "https://platform.example.com/game/events"
}
}
提供商響應:
json
{
"game_token": "gtkn_7f0...e2a", "launch_url": "https://live.provider.com/launch/roulette", "expires_in": 900
}
2.2.前端身份驗證
遊戲通過它的培根加載,驗證「game_token」。
WebSocket安裝到博彩/事件遊戲服務器。
視頻流通過WebRTC(低延遲0。5-2 (c)或LL-HLS (2-5 c)。
3)金錢和賭註: 錢包API和平均水平
3.1.資產負債表和借記/貸款
提供商不存儲玩家的「金錢」-它調用Platform Wallet API:- `GET /wallet/balance?player_id' →當前可用。
- 「POST/wallet/debit」 →註銷費率。
- 「POST/wallet/credit」 →記入獎金/退款。
- 「POST/wallet/rollback」 →取消回合時回滾交易。
重要:所有貨幣交易都是通過「transaction_id」/「round_id」進行的。重復相同的請求不會改變結果。
借記示例(投註):http
POST /wallet/debit
Idempotency-Key: trx-7a2df-001
Content-Type: application/json
{
"player_id": "u-918273", "round_id": "r-2025-10-18-12:30:15Z-001", "transaction_id": "trx-7a2df-001", "amount": 25.00, "currency": "EUR", "bet_type": "roulette_straight", "meta": {"table_id":"ru-11", "selection":"17", "odds":35}
}
3.2.時機和投註狀態
WINDOW_OPEN → WINDOW_CLOSING → WINDOW_CLOSED.在「WINDOW_CLOSED」之後,提供商禁止進行新的借記。
後期投註以代碼「LATE_BET」拒絕。
當通信中斷時,客戶端可以再次發送出價-服務器必須能夠通過Idempotency-Key區分重復。
事務狀態:「PENDING」,「SETTLED」,「ROLLED_BACK」,「REJECTED」。
4)回合事件: 模型和優先級
4.1.WebSocket事件圖
`round.started '→來到'round_id',投註計時器。
`bet.收到/回收"→每個費率的確認。
`round.closed '→不再接受賭註。
`round.結果"→結果(輪盤賭部門/地圖/骨頭)。
`payout.created '→玩家獲勝的金額。
`round.定位"→最終狀態,校驗和。
結果事件的示例:json
{
"type": "round.result", "round_id": "r-2025-10-18-12:30:15Z-001", "table_id": "ru-11", "payload": {
"roulette": {"number":17, "color":"black"}, "hash": "sha256:8a7b...d1c", "video_ts": "2025-10-18T12:30:23.450Z"
}
}
4.2.一致性和基準金額
每個事件都提供「seq」和「signature」(mTLS+請求主體簽名)。
對於reconciliation,指定「payout_checksum」-「round_id」上所有積分的總和必須收斂。
5)視頻流和延遲
WebRTC的「活手投註」(二十一點/七葉樹/輪盤)是對客戶的嚴格延遲預算<2 c。
用於觀眾/比例的LL-HLS/DASH,允許2-5 c。
時間同步:NTP/chrony,在payload中-「video_ts」用於回放和爭議。
後退:當WebRTC降級時,→自動切換到LL-HLS,並鎖定後期投註。
6)錯誤,retrai,taymauts
一般規則:- 所有帶有800-1500毫秒時間的S2S呼叫,帶有指數暫停和Jitter的轉發,但沒有重新註銷(等效性)。
- `INSUFFICIENT_FUNDS`, `LIMIT_EXCEEDED`, `ACCOUNT_LOCKED`, `DUPLICATE_TRANSACTION`, `LATE_BET`, `CURRENCY_MISMATCH`.
json
{
"error": "INSUFFICIENT_FUNDS", "message": "Balance 18.00 < required 25.00", "transaction_id": "trx-7a2df-001"
}
7)獎金,frispins,保險
8)負責任的遊戲和限制
會話標誌為「self_excluded」、「cooldown_until」、「loss_limit_left」、「time_limit_left」。
提供商可以在每次借記之前查詢「validate_limits」。
平臺可以啟動force_close_session:玩家被排除/超過限制→提供商關閉下註窗口並以未下註的下註退款。
9)安全和合規性
mTLS用於S2S,HSTS,嚴格的IP allowlist。
JWT/JWS具有用於前端令牌的簡短TTL,可聽性/可聽性檢查。
提供商webhook的簽名(HMAC-SHA256在身體上)。
經銷商操作日誌,回合中繼,不變審核(WORM存儲)。
個人數據存儲-PII最小化,「player_id」標記化,司法管轄區保留時間(GDPR和類似物)。
根據CreateGameSession級別的司法管轄區進行地理鎖定和禁令。
10)重新安置和財務
10.1.每小時/每日報告
提供商提供有關「round_id → total_bets total_wins,fees」的報告。該平臺總結了:- 借方總額=賭註Σ,貸款總額=Σ獲勝+退款,Delta=GGR(包括獎金/頭獎/傭金)。
json
{
"date": "2025-10-18", "currency": "EUR", "tables": [{
"table_id": "ru-11", "rounds": 1260, "total_bets": "45230.00", "total_payouts": "43012.50", "jackpot_contrib": "302.00", "provider_fee": "2.5%"
}]
}
10.2.Rollback腳本
視頻/故事板故障→回合。cancelled:提供商在回合中對所有投註都打了「rollback」。
在「DUPLICATE_TRANSACTION」和200 OK平臺上捕獲的雙重借記處理,具有以前的結果。
11)聊天、節制和UI活動
聊天事件通過單獨的通道(WebSocket No. 2)進行,並帶有停止字過濾器。
系統公告(close bets, winner list)-僅來自提供商的受信任來源,已簽名/定時。
12)測試和認證
提供商的Sandbox: 固定結果,強迫回合的能力。result`.
QA輪廓:帶有精簡投註窗口(5-8 c)和加速流量的測試表。
負載: 模擬5-10,000個同時玩家,峰值每秒借記(TPS)≥計劃× 1。5.
集成認證:關於等效性、貨幣、四舍五入、停電處理、限額匹配和自我釋放的支票單。
13)度量標準和SLO
這些:median/95 p latency for 'debit/credit'、WebSocket round-trip、時間同步錯誤、drop-rate WebRTC。
Продукт: bet acceptance rate, late-bet rate, dispute rate, chargeback rate, session duration, retention, ARPU/LTV.
SLO示例:99.5% `debit` ≤ 1.2 c,99。9%送貨回程。result '≤ 300毫秒固定後,視頻支持≤ 2.5 s用於95p WebRTC。
14)多元貨幣、稅收、本地化
轉換-非提供商:遊戲嚴格以會話貨幣運行。
稅收/保留-在「信用」(「withholding」字段)的平臺側。
本地化:「lang」,數字/貨幣格式,計時器和報告的時區。
15)集成選項
1.Direct-to-Provider:最大控制和視野,但單獨的合同/認證。
2.通過聚合器:提供商快速覆蓋,統一電路,有時靈活性較小。
3.混合動力車:頂級桌子直接,其余通過聚合器。
16)迷你規格(總計)
16.1.WebSocket收件箱(從客戶端到提供商)
json
{ "type":"bet.place", "bet":{
"amount": 25, "selection":"17", "table_id":"ru-11"
}, "idempotency_key":"c3a2-...-001" }
16.2.WebSocket出站(從提供商到客戶端)
json
{ "type":"bet.accepted", "bet_id":"b-8821", "seq":12031 }
{ "type":"round.closed", "round_id":"r-...001", "seq":12050 }
{ "type":"round.result", "result":{"number":17,"color":"black"}, "seq":12070 }
{ "type":"payout.created", "amount":875, "currency":"EUR", "seq":12075 }
16.3.Wallet S2S(平臺↔提供商)
「POST/wallet/debit」(偶數)- 「POST/wallet/credit」(偶數)
- 「POST/wallet/rollback」(偶數)
HMAC標題「Timestamp」,「Nonce」,重復保護(TTL ≤ 60 c)。
17)邊緣案例以及如何關閉它們
玩家的連接斷裂:發出賭註,沒有確認→使用相同的「Idempotency-Key」重播;服務器將響應以前的狀態。
在回合中更換經銷商/甲板:自動取消和完整的「rollback」。
貨幣不匹配:「CURRENCY_MISMATCH」+事件日誌;遊戲被阻止直到會話過多。
遊戲時的自我釋放:即時「force_close_session」,返回未播放。
視頻質量的變化:僅限客戶,不影響計時器/投註。
Re-handshake WebSocket:在不失去訂單的情況下-一隊事件以「seq」、「追趕」錯過。
18)生產啟動支票清單
安全性
- mTLS+pinning證書,IP allowlist。
- 所有webhook的簽名和檢查「Timestamp」/「Nonce」。
- Mini-PII:只有「player_id」(標記)。
可靠性
- 所有現金交易的可持續性。
- 回合回合和不可改變的審計。
- WebRTC → LL-HLS自動後退。
產品
- 限制/負責任的遊戲實時應用。
- 投註時的本機提示。
- SLO+Alerta Dashbords 24/7。
Live Games Integration API是一捆低支撐流、事件總線和偶數錢包,對消息順序、時間和安全性有嚴格的要求。成功的實施依賴於以下因素:嚴格的投註和回合生命周期,可驗證的一致性(reconciliation),數據保護和負責任的遊戲限制-並將「美麗的廣播」轉變為可靠,可認證的金融產品。