Дастури ҳамгироии Gamble
1) Модели шарҳ ва ҳамкорӣ
Gamble-Hub як платформаи маҷмӯӣ барои хидматҳои IGaming (провайдерҳои бозӣ, дарвозаҳои пардохт, KYC/AML, муҳаррики бонус, ҳисобот) мебошад. Интегратсияи шарик дар ду шакл имконпазир аст:- Провайдери API: шумо Gamble-Hub API-ро даъват мекунед (ҳамён, мукофотпулӣ, гузоришҳо).
- Провайдери беруна: мо webhooks/нуқтаҳои ниҳоӣ (тавозун, муомилот, KYC) меномем.
1. Edge/API (REST/GRPC, Webhooks)
2. Ҳодисаҳо (автобуси ҳодиса: гарав/пардохт/ҳамён/ICC)
3. Ҳисобот (содироти API + S3/SFTP)
4. Амалиётҳо (ҳодисаҳо, SLO, қарзҳои SLA)
2) Муҳитҳо, доменҳо ва IP
Шартномаи SLA дар шартнома муқаррар карда шудааст. Навсозиҳои IP пешакӣ нашр карда мешаванд. Иҷозат ба рӯйхати Аллоуин.
3) Аутентификатсия ва авторизатсия
Мо се механизмро дастгирӣ мекунем (механизмеро, ки тибқи шартнома талаб карда мешавад, интихоб кунед):- OAuth2 Маълумоти муштарӣ: сервер-ба-сервер ('миқёс' s: 'ҳамён: хондан', 'ҳамён: навиштан', 'бет: навиштан', 'гузориш: хондан').
- JWT (эмитент = GambLE Hub): RS256 имзо, калидҳо дар нуқтаи охири JWKS.
- MTLS: аутентификатсияи мутақобилаи TLS дар сатҳи воридшавӣ (бо дархости мувофиқат).
POST /oauth2/token grant_type=client_credentials&scope=wallet:write bet:write
→ { "access_token": "...", "token_type": "Bearer", "expires_in": 3600 }
Соҳаҳо дар ҳар як занг тафтиш карда мешаванд. Барои амалиётҳои дорои хавфи баланд (пардохтҳо), қадам ба қадам истифода мешавад: миқёси алоҳида ва ихтиёрӣ, барои IP/ASN ҳатмӣ.
4) Версия ва мутобиқат
Роҳ: '/v1/... ', '/v2/...' (нусхаи асосӣ бозгашт номувофиқ аст).
Тағироти хурд ва васеъшаванда - тавассути тавсеаи схема (майдонҳои нави ихтиёрӣ).
Коҳишҳо - 90 рӯз бо огоҳӣ.
Webhooks бо сарлавҳаи 'X-GH-Event-Version: 1' санҷида мешаванд.
5) Маҳдудиятҳо, квотаҳо ва аблаҳӣ
Маҳдудиятҳои нархҳо аз ҷониби сарлавҳаҳо дода мешаванд:- 'X-Rate-Limit-Limit', 'X-Rate' Limit-Remain ',' X-Rate 'Limit-Reset'.
- 429 бо 'Retry-After' (сонияҳо) бармегардад.
- Ҳама усулҳои хатарнок 'Idempotency-Key' (TTL 24-72 h) -ро талаб мекунанд. Такрори дархости якхела натиҷаи авваларо бармегардонад ('409 IDEMP_REPLAY' дар бораи низоъ).
6) Стандартҳои хатогӣ
Формати ягонаи RFC 7807 ('барнома/мушкилот + json'):json
{
"type": "https://docs. gamblehub. io/errors/validation_failed",
"title": "Validation failed",
"status": 422,
"error_code": "VAL_001",
"trace_id": "a1b2c3...",
"retriable": false,
"errors": [{"field":"amount","code":"min","message":"Must be >= 1"}]
}
Retriable: 5xx/ 503/504/429 (s 'Retry-After'). Интиқолнашаванда: 400/401/403/404/409/ 422/410/415/412.
7) Схемаҳои маълумот (аслӣ)
7. 1 Бозингар
json
{
"player_id": "p_123",
"country": "CA",
"currency": "CAD",
"rg_flags": {"self_excluded": false, "limits": {"daily_loss": 100}},
"kyc_status": "verified pending failed"
}
7. Ҷаласаи 2
json
{
"session_id": "s_789",
"player_id": "p_123",
"started_at": "2025-11-03T17:55:00Z",
"ip": "203. 0. 113. 5",
"device": {"ua":"...", "os":"Android", "model":"..."}
}
7. 3 Ҳамён/Амалиётҳо
json
{
"txn_id": "t_001",
"player_id": "p_123",
"type": "deposit withdrawal bet win bonus adjustment",
"amount": "12. 34",
"currency": "EUR",
"balance_after": "123. 45",
"metadata": {"provider":"psp_x","request_id":"r_456"}
}
7. 4 Меъёри/пардохт
json
{
"bet_id": "b_456",
"player_id": "p_123",
"game_id": "g_777",
"stake": "1. 50",
"currency": "EUR",
"placed_at": "2025-11-03T17:58:10Z",
"round_id": "rnd_aa1",
"provider": "StudioX"
}
json
{
"settlement_id": "st_456",
"bet_id": "b_456",
"win_amount": "3. 75",
"settled_at": "2025-11-03T17:59:02Z",
"outcome": "win lose void"
}
7. 5 Бонус
json
{
"bonus_id": "bo_900",
"player_id": "p_123",
"type": "freespin cash wagered",
"state": "issued active expired consumed",
"wagering": {"target": "100. 00","progress":"45. 20","currency":"EUR"}
}
8) REST API (порчаҳои Open
yaml paths:
/v1/wallet/balance/{player_id}:
get:
summary: Get wallet balance security: [{ oauth2: [wallet:read] }]
responses:
'200': { description: OK }
'401': { $ref: '#/components/responses/Problem' }
'404': { $ref: '#/components/responses/Problem' }
/v1/wallet/transactions:
post:
summary: Create wallet transaction security: [{ oauth2: [wallet:write] }]
parameters:
- name: Idempotency-Key in: header required: true schema: { type: string }
responses:
'201': { description: Created }
'409': { $ref: '#/components/responses/Problem' }
'422': { $ref: '#/components/responses/Problem' }
/v1/bets:
post:
summary: Register bet security: [{ oauth2: [bet:write] }]
responses:
'201': { description: Created }
'422': { $ref: '#/components/responses/Problem' }
9) Webhooks (GambLE Hub ба Шарик)
Чорабиниҳо бо тартиби 'Намуди мундариҷа: барнома/json', сарлавҳаҳо фиристода мешаванд:- 'X-GH-Event': 'бозингар. офаридааст. оғоз 'бет. ҷойгир карда шудааст. ҳал 'wallet. иваз карда шуд 'kyc. навсозии 'rg. парчам '
- 'X-GH-Event-Id': UUID беназир
- 'X-GH-имзо': 'sha256 =
' - 'X-GH-Retry': Кӯшиши Не
- 'X-GH-Event-Version': '1'
json
{
"event": "bet. settled",
"occurred_at": "2025-11-03T18:00:12Z",
"data": {
"settlement_id": "st_456",
"bet_id": "b_456",
"player_id": "p_123",
"win_amount": "3. 75",
"currency": "EUR",
"outcome": "win"
}
}
Ҷавоби мизбон - танҳо 2xx муваффақ ҳисобида мешавад. Дар акси ҳол - ретрай: бозгашти экспоненсиалӣ (1s, 3s, 10s, 30, 2m, 10m, 30m; максимум 24 соат). Барои такрорӣ 'X-GH-Event-Id' -ро истифода баред.
Санҷиши имзо (псевдо):text expected = base64(hmac_sha256(request_body, SHARED_SECRET))
header = split(X-GH-Signature, '=')[1]
assert header == expected
10) Тартиби гардиши пули нақд (ҷараёни ҳамён)
1. амонат (PSP → ҳамён. қарз)
2. Бет (нигоҳ доштан/иҷозат додани дебети мустақим)
3. ҳисоббаробаркунӣ (нигоҳдории озод; 'win '/' гум '/' беэътибор')
4. бозхонд (ҳамён. дебет → PSP)
Тавозуни нигоҳдорӣ ва ҳамёнҳои бисёр (воқеӣ/бонус) дастгирӣ карда мешаванд.
11) Сенарияҳои сандбокс ва санҷиш
Бозингарони санҷишӣ: 'p _ sbx _', асъорҳои' EUR 'USD' CAD '.
Провайдерҳои бозӣ тақлид мекунанд: ғолиб/гум/беэътибор, тахфифҳо, таъхирҳо.
Қуттии қуттии KYC: ҷавобҳои 'баррасии' ноком '-ро дар қолабҳои шиноснома тасдиқ карданд.
Қуттии регии PSP: статусы 'ваколатдори' captured 'declined' reversed '.
- Тавозуни тавозун Stavka → vyplata → sverka
- Даври Pullback/холӣ
- Idempotency ҳангоми пешниҳоди дубора
- Нокомии webhook бо такрорӣ ва такрори минбаъда
- 429 ва дуруст 'Retry-After'
- 5xx бо пуштибонии экспоненсиалии муштарӣ
12) Мусолиҳа ва ҳисобот
Оштӣ API
yaml
GET /v1/reports/reconciliation? from=...&to=...&scope=wallet bets
→ CSV/JSON: { player_id, bet_id, stake, win, currency, balance_delta, provider }
Хулосаҳои ҳаррӯза: гардишҳо, GGR/NGP, провайдерҳо, тақсимоти гео/асъор.
Содирот: S3/SFTP бо манифестҳои имзошуда ва файлҳои файлӣ (SHA256).
Минтақаи вақти ҳисоботӣ: UTC (агар дар шартнома тартиби дигаре пешбинӣ нашуда бошад).
13) Мушоҳида ва SLO
SLI: муваффақияти API ≥ 99. 95% (28d), таъхири p95 барои усулҳои интиқодӣ, муваффақияти таҳвили webhook.
Огоҳӣ дар бораи буҷаи хато (зуд/суст).
Таносуби пайгирӣ: 'пайгирӣ _ id' дар посухҳо/гузоришҳо, пармакунӣ ба пайгирӣ.
Саҳифаи вазъ: Edge, Wallet, Bets, Webhooks, PSP, KYC.
14) Бехатарӣ ва риояи
Кам кардани PII; PAN/сирри дар гузоришҳо/вебҳукҳо манъ аст.
Идоракунии махфӣ ва гардиши калидӣ.
RG (Қиморбозии масъул): худидоракунӣ/парчамҳои маҳдуд бояд ба таври автоматикӣ рад кардани гаравҳо/пардохтҳо оварда расонанд.
AML/KYC: рӯйдодҳои 'kyc'. навсозӣ ',' aml. ҳушдор 'тавассути обуна дастрас аст; дар системаи худ ё тавассути модули мо қарор қабул кунед.
GDPR/DSAR: нуқтаҳои ниҳоӣ барои боргузорӣ/нест кардани маълумоти шахсии бозингар барои дархостҳои ҳуқуқӣ.
MTLS ва HSTS бо нобаёнӣ дар муҳити истеҳсолӣ фаъол карда мешаванд.
15) Иҷро ва квотаҳо
Буҷаи тавсияшуда барои як шарик (пешфарз):- RPS: 50 (таркиш 100)
- Вебхукҳои ҳамзамон: 10
- Андозаи бадан: ≤ 256 КБ (рӯйдодҳои бозӣ), ≤ 64 КБ (ҳамён)
Такмилдиҳии нақшаро тавассути менеҷери ҳисоб дархост кунед, ки дурнамо/ҳаҷми RPS-ро нишон медиҳад.
16) Идоракунии тағирот ва озодкунӣ
Тағйир додани тирезаҳо: кори ба нақша гирифташуда - аз рӯи ҷадвал, огоҳӣ ≥ 5 рӯзи корӣ.
Муҳоҷирати версия: дутарафа/дутарафа дар давраи гузариш.
Санҷишҳои CI: схемаи JSON, майдонҳои зарурӣ, 'error _ code'.
Канария: тадриҷан дохил кардани трафик барои хусусиятҳои нав.
17) Сертификатсияи ҳамгироӣ (Рӯйхати санҷиш)
Функсия:- Дархост/Бақайдгирии пардохт/беэътибор
- Номутобиқатӣ дар ҳама нуқтаҳои навиштан
- Коркарди 429/5xx + backoff дуруст
- Санҷиши имзои Webhook, X-GH-Event-Id Deduplication
- Мусолиҳаи мувозинат пас аз як қатор ҳодисаҳо (бурд/гум кардан)
- Гузоришҳои оштӣ бо маълумоти шумо розӣ ҳастанд
- Рафъи Webhook амалӣ карда мешавад
- Танаффуси муштариён ≤ 10c, кӯшиши умумӣ ≤ 30c
- Қатъи гардиш аз вобастагӣ
- Нигоҳ доштани асрори мудири махфӣ
- Нашри PII дар гузоришҳо
- Парчамҳои RG/AML дар вақти воқеӣ баррасӣ карда мешаванд
18) Сенарияҳои зуд-зуд истифодашаванда
18. 1 Бақайдгирии меъёрҳо бо idempotency
POST /v1/bets
Idempotency-Key: bet-p_123-rnd_aa1-1
{ "player_id":"p_123","game_id":"g_777","stake":"1. 50","currency":"EUR","round_id":"rnd_aa1" }
→ 201 Created { "bet_id":"b_456" }
18. 2 Webhook ноком пас аз муваффақият
1. Сервери шумо дастнорас аст → 5xx → retro retro.
2. Пас аз барқароршавӣ - ҳамон 'X-GH-Event-Id' -ро гиред → вазифадоранд, ки нусхаҳоро нодида гиранд.
18. 3 Қисман таназзули провайдер
Мо 503-ро бармегардонем; такрор бо бозгашт.
Бо таназзули тӯлонӣ - тамғагузории провайдер ва inc. масири интеллектуалӣ (агар дар шартнома бошад).
19) Dev
Портал: калидҳо, истифода, вебхукҳо, гузоришҳои таҳвил, панелҳои SLO, гузоришҳои содиротӣ.
Такрори Webhooks: азнавсозӣ аз рӯи диапазони сана/ID.
Ҳодисаҳо: худкори сохтани чипта, ҳуҷраи ҷанг, постмортем ≤ 48 соат дар SEV-1.
Алоқа: # partners-status channel/mail on-call 24 × 7 (Enterprise).
20) Нақшаи борбардорӣ (2-4 ҳафта)
1. Ҳафтаи 1: барориши калидӣ, пайвасти қуттии қуттӣ, сенарияҳои асосӣ (Бет/пардохт/ҳамён).
2. Ҳафтаи 2: Вебҳукҳо ва оштӣ, Парчамҳои RG/KYC, Санҷишҳои сарборӣ, рафтори 429/5xx.
3. Ҳафтаи 3: ҳисобот (мусолиҳа, боргузорӣ), амният (имзоҳо, асрори), санҷишҳои шартнома.
4. Ҳафтаи 4: сертификатсия, фарогирии канарӣ ба фурӯш, мониторинг, матритсаи тамос.
21) Мини-FAQ
Метавонам GRPC дошта бошам?
Бале, бо дархост; Харитаи рамзи хатои HTTP дар мушаххасот оварда шудааст.
Чӣ гуна маълумоти ретро гирифтан мумкин аст?
Тавассути гузоришҳои "оштӣ" (аз/то сана) ё бор кардани S3/SFTP.
Чӣ тавр ман маҳдудиятҳои худро боло мебардорам?
Тавассути менеҷери портал/ҳисоб, ки пешгӯии RPS/рақобатпазириро нишон медиҳад.
Сарчашмаи ҳақиқати тавозун чист?
Сабти транзаксияи ҳамёни Gamble-Hub + мусолиҳаи ҳаррӯза.
Ҷамъ
Интегратсия бо Gamble Hub бар асоси як шартномаи возеҳ сохта шудааст: API-ҳои устувор ва схемаҳо, веб-китобҳои имзошуда, idempotency ва retrays, маҳдудиятҳои шаффоф ва гузоришдиҳӣ, инчунин талаботи амният ва мувофиқат. Бо риояи ин дастур ва рӯйхати санҷишҳои сертификатсия, шумо зуд ба бозор мерасед, ҷараёни боэътимоди пули нақд ва гузоришҳои пайдарпайро бидуни ихтилоф таъмин мекунед.