GH GambleHub

沙盒和測試環境

TL;DR

可靠的沙箱=完全絕緣、合成/非個性化數據、逼真的外部系統模擬器、可預測的蘋果酒和時間旅行、內置的等效性和網絡手冊、透明的極限和指標。Prod是遙不可及的,鑰匙-輪換,promotion-僅通過支票單。


1)環境圖及其作用

周圍環境目標訪問權限數據可靠性
Local/Dev快速開發工程師合成/最小化學低端
CI/TestUnit/整合/合同測試CI/CDAutoshids平均水平
Stage/Pre-prod最終組裝,恢復有限的匿名的snapshots高的
Public Sandbox外部合作夥伴/商人蓋特+限制僅合成平均水平
Prod戰鬥的SSO/嚴格訪問真實最大值

規則:sandbox ≠ prod。任何通信都是通過單向模擬器進行的,而無需訪問真實的工具/遊戲/個人數據。


2)數據: 合成,匿名,座位

默認合成。護照/卡數據生成器,有效但非財務的PAN(測試BIN),「實時」費率模式和資產負債表。
舞臺的匿名化:標識符標記,聚合的修飾私有,刪除稀有組合。
蘋果酒和決定論:一個命令-一個狀態。

bash make db-reset && make db-seed ENV=sandbox SEED=2025_11_03

時間旅行:用於截止線測試/exploration的全球「環境小時」。


3)模擬器和存根(stubs)

付款/銀行/PSP

Auth/Capture/Refund/Payout со сценариями: `approved`, `declined_insufficient`, `3ds_required`, `timeout`, `duplicate`.

PSP webhooks:簽名的HMAC,中繼,延遲和「骯臟的互聯網」。

KYC/AML/Sanctions

Ответы: `clear`, `pep_match`, `sanction_hit`, `doc_mismatch`, `manual_review`.

在prod中支持冪等性和等級限制。

遊戲提供商/目錄

大廳,fici,RTP/round是偽隨機生成,為UX案件管理「付款/失敗」。

選項:模擬器的「嚴格」開關(happy-path vs chaos)。


4)Webhuki在沙箱裏

HMAC標題(v1),標題「X-Ivent-Id」,「X-Timestamp」,窗口≤ 5分鐘。
帶有指數後端,DLQ和復制的後端。
控制臺「重新調整」和嘗試日誌。

偽造的:
pseudo
POST /psp/webhooks
Headers: X-Signature, X-Timestamp, X-Event-Id
Body: { event_id, type, data, attempt }

5)相似性和決定性

所有突變都采用「Idempotency-Key」。
模擬器通過鍵存儲結果(TTL 24-72小時)。
「種子決定論」:在相同的輸入下-相同的結果(對於可重復的測試)。


6)安全性和訪問

網絡/VPC隔離,單獨的秘密和域('sandbox。example.com`).

RBAC/ABAC:「合作夥伴」,「qa」,「dev」,令牌的角色很少。
限額和配額:「429」/「Retry-After」可以理解的per-tenant/key公平份額。
僅在KMS/Vault中提供秘密;定期輪換。
禁止在代碼/密碼級別進行實際支付(功能標誌硬塊)。


7) Gateway API和sandbox中的可觀察性

相同的策略是:OAuth2/OIDC/JWT,CORS,WAF,DDoS配置文件。
度量標準:p50/p95/p99,4xx/5xx,命中率限制,latency webhooks,等效命中。
Logi/Trays:沒有PII;「trace_id」。
Dashbord「沙盒健康」:aptime,webhook隊列,模擬器錯誤。


8) Ficha標誌、版本和兼容性

在sandbox → stage → prod中啟用拳頭。
用於API的SemVer;Swagger/Redoc沙箱中的Deprecation/Sunset橫幅。
用於GraphQL店面的Persisted queries(如果有)。


9) CI/CD и promotion

1.Build/Unit →

2.Contract/Mock tests (OpenAPI/Protobuf/GraphQL SDL) →

3.集成與模擬器→

4.舞臺倒退(anon。狙擊手)→

5.Canary в prod.

門支票清單:下文第12節。


10)合作夥伴的UAT腳本(沙盒)

付款:auth/capture/refund/payout with webhooks and PSP錯誤。
KYC/AML:所有狀態+手動升級。
相同性:重復的「Idempotency-Key」 →相同的結果。
利率限制:正確處理「429」。
時間窗口:代幣訪問,「Retry-After」,時間旅行案例。
Webhooks: 簽名/轉發/DLQ,手動重播和dedup。


11)數據政策和隱私

從不將real PAN/KYC碼頭存儲在sandbox/stage中。

匿名化: 掩蔽,刪除直接標識符,合成相關性.

TTL存儲日誌和屍體webhook ≤規範的。


12)支票單

12.1推出新沙箱

  • 隔離網絡/基地/kesh/對象存儲
  • 在KMS/Vault中創建的秘密,按角色訪問
  • PSP/KYC/遊戲模擬器是後鎖定和轉換的
  • Swagger/Redoc+Postman系列(sandbox endpoints)
  • Webhooks: HMAC, retry, DLQ, replay控制臺
  • Rate/Quota配置文件,Deprecation/Sunset橫幅(如果有)
  • Dashbords和Alertes (latency, 5xx, 429, DLQ)

12.2 Promotion release (stage→prod)

  • 合同diff檢查(無中斷)
  • 舞臺上的負載p95/p99正常
  • Webhooks通過UAT,等效性ok
  • Ficha標誌已經準備就緒,回滾計劃已經到位
  • Changelog,移民指南和發送給合作夥伴

13)反模式

沙箱,「秘密」觸及道具服務/基地。
stage/sandbox中的真實卡/護照數據。
沒有vebhook/retrais的模擬器僅是「快樂之路」。
缺乏相同能力→重復的付款/費率。
所有合作夥伴共享一個HMAC密碼。
沒有限制,也沒有透明的429/Retry-After。


14)迷你嗅探

.env.sandbox(示例)

dotenv
API_BASE=https://sandbox.api.example.com
OAUTH_ISS=https://sandbox.idp.example.com
PSP_SIM_URL=https://sandbox.psp-sim.example.com
KYC_SIM_URL=https://sandbox.kyc-sim.example.com
WEBHOOK_SECRET_ROTATION_DAYS=90
FEATURE_FORCE_SANDBOX_PAYMENTS=1

OpenAPI片段(sandbox服務器)

yaml servers:
- url: https://sandbox.api.example.com/v1 description: Public Sandbox

冪等偽碼

pseudo if store.exists(idem_key): return store.get(idem_key)
res = do_business()
store.set(idem_key, res, ttl=72h)
return res

PSP模擬器觸發器

json
{ "scenario": "payout", "case": "declined_insufficient", "payout_id": "p_123" }

15)沙箱的可觀察性和SLO

Uptime sandbox API ≥ 99.5%(集成展示不應下降)。
Webhooks p95 ≤ 3在正常負載下最多可容納2xx。

網關錯誤預算為5xx ≤ 0。1%.

塢站門戶可用,並與合同同步。


16) Governance

環境所有者(SRE/Platform)和steward API(合同)。
用於斷開更改的RFC過程,Deprecation/Sunset日歷。
公共沙箱的單獨限制/配額和「公平使用」價格。


二.總結

沙盒是開發人員的產品,不是「基礎副本」。給出:嚴格的絕緣,合成數據,帶有網絡包和回放的完整模擬器,通過座椅和時間旅行的確定性,幻燈片和透明限制。將所有合同、可觀察性和可管理性捆綁在一起-您的集成將變得快速、安全和可預測,並且版本無痛。

Contact

與我們聯繫

如有任何問題或支援需求,歡迎隨時聯絡我們。我們隨時樂意提供協助!

開始整合

Email 為 必填。Telegram 或 WhatsApp 為 選填

您的姓名 選填
Email 選填
主旨 選填
訊息內容 選填
Telegram 選填
@
若您填寫 Telegram,我們將在 Email 之外,同步於 Telegram 回覆您。
WhatsApp 選填
格式:國碼 + 電話號碼(例如:+886XXXXXXXXX)。

按下此按鈕即表示您同意我們處理您的資料。