Ինչպես է API ինտեգրումը ստուդիաների և պլատֆորմների միջև
Ստուդիայի ինտեգրումը (խաղերի պրովայդեր) պլատֆորմի/ագրեգատորի հետ սինխրոն և ասինխրոն զանգերի շղթան է նստաշրջանի շուրջ, դրամապանակը, մեջքի և իրադարձական հեռուստացույցի արդյունքը։ Ներքևում կարճ է, բայց գործնական քարտեզը, ինչպես ամեն ինչ կապվում է առանց մշակողների և կոմպլենսների ցավի։
1) Լադոնի ճարտարապետությունը
Ակտորները
Studio RGS (Remote Game Server) - խաղի տրամաբանությունը, RNG, բոնուսներ, ջեկպոտներ։- Պլատֆորմ/Ագրեգատոր - միկրոօրգանիզացիա, բիլինգ, պրոմո, ընկերակցություն։
- Օպերատորը խաղացողի դրամապանակն է, KYC/RG, վիտրինը։
- Հաճախորդը խաղի/iframe/webview/native/native)։
Հիմնական անվադողերը
Delnc API 'նստարաններ, դրամապանակ, www.co.ru։- Async/Event Bus 'սպինների, բոնուսների, ջեքպոտների, RG-ի, տեխնոլոգիական սխալների իրադարձությունները։
- Մետատվյալներ/կատալոգներ 'խաղեր, market builds, RTP պրոֆիլներ, լոկալի։
2) Արձանագրություններ և հիմնական լուծումներ
Տրանսպորտը ՝ HTTPS/JSON (երբեմն gRPC Event Bus/դրամապանակի համար)։- Տարբերակումը '"Accept: Accept: application/vnd. rgs. v1 + json 'կամ '/v1/... "; պարամետրերի դեգրադացիան միայն նոր տարբերակների միջոցով է։
- Նույնականացում ՝ «game _ id», «build _ hash», «operium _ id», «session _ id», «round _ id», «spin _ id»։
- Ժամանակը 'խստորեն UTC, RF-8601 միլիոնավոր վայրկյաններով։
- Արժույթները ՝ RF-2417 + ճշգրտությունը (minor units)։ FX-ը օպերատորի/ագրեգատորի կողմում է։
3) Վավերացում և հեղինակային իրավունք
Server-to-server: OAuth2 Client Credentials или HMAC-подпись (`X-Signature: HMAC_SHA256(payload, shared_key)`).
Խաղացողի նստաշրջանը 'shast-lived JWT (ստորագրում է պլատֆորմը) c' sub ', «geo», «rg _ flags», «exp», «aud = studio»։
Հասանելիության ցուցակները ՝ IP allowlist + mTSA-ի պրոյդ-կոնտուրների համար։
4) Դրամապանակի մոդելները 'debit/credit vs transfer
A) Debit/Credit (on-the-fly):1. Պլատֆորմը առաջացնում է RGS: "SpinRequest (stake) 'ww.RGS-ը հաշվարկում է մրցույթի արդյունքը վերադարձնում է" win "։
2. Զուգահեռ պլատֆորմը դարձնում է «debit (stake)» և «credit (win)» իր/օպերատորի մոտ։
Պլյուսներ ՝ պարզ հաշվապահություն։ Մինուսներ 'ավելի շատ ցանցային զանգեր, խիստ պահանջներ գաղափարախոսության համար։
B) Transfer (session balance):1. Նստաշրջանի սկզբում պլատֆորմը դարձնում է «transferIN (amount)» RGS-ում։
2. RGS-ի մեջքի ժամանակ ինքնին պահում է նստաշրջանի հավասարակշռությունը։ վերջում '«transferOut (remaining)»։
Պլյուսներ ՝ ավելի քիչ դրամապանակ։ Մինուսներ 'սովորեցնում է «գումար RGS-ի կողմում», ավելացված ռիսկերը և reconciliae-ը։
Առաջարկություններ
Արցունքների համար ավելի հաճախ օգտագործում են debit/credit 'idempotent բեկորների հետ։
5) Գաղափարախոսություն և ներդաշնակություն
Յուրաքանչյուր դրամական քայլ պետք է ունենա յուրահատուկ «idempotency _ key» (օրինակ ՝ «round _ id» կամ «spin _ id»)։
Կրկնությունները («HTTP 409/425») վերադարձնում են նույն արդյունքը, ոչ թե «սխալ արդեն ավարտվել»։
Exactly-once-ը դժվար է հասնել, այնպես որ մենք կառուցում ենք at-least-once + idempotention։- «Debit», «credit», «jackpot _ medribution», «bonus _ award»։
6) Հիմնական հարցումների սխեմաները (կրճատված)
6. 1. Նստաշրջանի սկիզբը
json
POST /rgs/v1/sessions
{
"session_id": "s-…", "operator_id": "op-…", "player_id": "p-…", "game_id": "g-BookOf…", "build_hash": "sha256:…", "jwt": "eyJhbGci…", "geo": "DE", "currency": "EUR", "rg_flags": {"self_excluded": false, "time_limit_min": 60}
}
6. 2. Սպին (debit/credit)
json
POST /rgs/v1/spins
{
"spin_id": "spin-…", "round_id": "rnd-…", "session_id": "s-…", "stake": {"amount": 1. 00, "currency": "EUR"}, "spin_type": "cash", "idempotency_key": "spin-…"
}
Պատասխանը
json
{
"spin_id": "spin-…", "outcome": {
"win": {"amount": 3. 40, "currency": "EUR"}, "features": [{"type":"bonus_trigger","name":"FreeSpins","count":10}], "symbols": "opaque-or-omitted"
}, "rgs_txns": [
{"type":"jackpot_contribution","amount":0. 01}
], "telemetry_ref": "evt-…"
}
6. 3. Իրադարձական լոգ (Event Bus, մարտերի ձևաչափ)
json
POST /rgs/v1/events/batch
{
"events":[
{
"type":"spin_finished", "ts":"2025-10-20T11:22:33. 123Z", "spin_id":"spin-…", "round_id":"rnd-…", "stake":1. 00,"win":3. 40,"currency":"EUR", "game_id":"g-…","build_hash":"sha256:…", "player_id":"p-…","operator_id":"op-…", "spin_type":"cash"
}
]
}
7) Տոմսի և market builds տարբերակումը
«build _ hash» (SHA-256) - պարտադիր յուրաքանչյուր իրադարձության ժամանակ։
Global vs Market build: լեզուն, նախազգուշացումները, սահմանափակումները, RTP պրոֆիլը։
Պլատֆորմը առաջնորդում է. <<Արդյոք հիմա խաղում է տոմս, որը համապատասխանում է այս երկրի հավաստագրին>>։
Մատրիցա ՝ «game _ id country dementrth _ profile no build _ hash»։
8) RNG, մաթեմատիկա և ռեպլիա
RNG-ն ապրում է RGS-ում; բիզնես տրամաբանությունը չի փոխում «ամռանը» հնարավորությունները։- Ֆորուլֆիկայի համար '«seed/nonce» ռելսերի/սպին + մեխանիկայի տարբերակը։
- Repley: «spin _ id »/« seed» RGS-ը վերարտադրում է արդյունքը և տալիս աուդիտի հետք։
9) Responsible Gaming (RG) և Complaens Huki
Ժամանակի/limits '«session _ time», «հիշեցումներ», timeouts; «rg _ event» Event Bus-ում։- Ինքնաբուխ/բլոկը 'դրոշի դեպքում' 403 RG _ BLOCKED "։
- UI invariants: պլատֆորմը ստուգում է, որ հաճախորդը ցույց տա նախազգուշացումները/տարիքային պարամետրերը market build-ից։
10) Սխալներ, ակնարկներ և SLA
Շվեյցարիա ՝ «400» (վալիդացիա), «401/403» (վավերացում/RG), «409» (գաղափարախոսության հակամարտություն), «422» (բիզնես սխալ), «429» (rate limit), «5xx» (ժամանակավոր)։
Ռետրոյի քաղաքականությունը էքսպոնենցիալ է, իդեմպոենտային բանալին և դեդուպլիկացիա ընդունիչի վրա։- SLA 'API 3599 հասանելիությունը։ 9%, p95 latency 'spin' 24200-300 ms (ոչ պաշտոնական), Event Bus - near-real-time <60 C։
11) Դիտողությունն ու աուդիտը
Լոգները 'անսպառ սերվերային լույսեր, որոնք ունեն «trace _ id»։- Մետրիկները ՝ p95/p99 latency, error rate, RTP/բոնուսների հաճախականությունը, «eligible spins» մասնաբաժինը։
- Ալերտներ 'SLA-ով, մաթեմատիկայի անոմալիաներով, դրամապանակի ձախողումների աճով։
- Աուդիտ 'WORM պահեստ 2019/արդյունքների իրադարձությունների վրա։ արտահանումը խնդրանքով։
12) Անվտանգություն
mTLS + TLS 1. 2 +, HSTS-ը, խիստ MSS-ը հաճախորդի լադերի վրա։
Քեյ-ռոտացիա, կարճ TTL թոկեններ, JTI/nonce ստուգումներ։- Anti-tamper հաճախորդի համար 'ասետների ստորագրություններ, ամբողջականության ստուգում, պաշտպանություն դեբագերներից։
- Գաղտնիքները միայն գաղտնի մենեջերի մեջ են։ «Խաղի ճեպազրույցի բանալին չկա»։
13) Թեստային միջավայրերը և հավաստագրությունը
Sandbox: ֆիքսված դրամապանակներ, RNG (fixed seed), RG-2019-ի ձախողումը։
Staging: prod infra պատճենը առանց իրական փողի։
Լաբորատորիաների փաթեթը 'GDD/մաթեմատիկա, RNG-դոզեր, լոգարանների սխեմաներ, repeatable build և hashi։
14) Պրոմո և ջեկպոտներ API-ում
Free Spins: Փոխանցումը www.ru _ free _ spins (count, bet _ size, rtp _ profile?); իրադարձությունները ծախսում են RGS-ում և տրամաբանվում։
Տրամագծերը ՝ wwww.'spin _ type = tournament '+ առանձին միավորներ Event Bus-ում։- Ջեքպոտներ ՝ «jackpot _ medribution» և «jackpot _ win» որպես առանձին գործարքներ; կոնսենսենցիայի միջոցով և «ստորագրված» իրադարձությունների միջոցով։
15) Հաշվետվություն և բիլինգ
Блоки выгрузок: `spins_total`, `eligible_spins`, `turnover`, `ggr`, `netwin`, `jackpot_contrib`, `bonus_cost`, `royalty_due`.
Per-spin/turnover-fee: հաշիվը '«eligible _ spins» կամ «Disstake dementrate»։
Rev-2019 '«NetWin» -ից «ջրվեժից» հետո; FX/բացառությունների համար եռամսյակային 2019-up։
16) Տիպիկ հաջորդականություններ (բանավոր դիագրամներ)
Spin (debit/credit):- Client → Platform: StartRound → Platform → RGS: Spin → RGS → Platform: Outcome → Platform → Wallet: Debit → Platform → Wallet: Credit → Platform → Client: Result → Platform → EventBus: spin_finished.
- Platform → RGS: GrantFreeSpins → Client: Start → RGS: Consume/Log each → EventBus: spin_finished (spin_type=free).
17) Change-Express-ը և համատեղելիությունը
Պայմանագիրը նախ (www.ract-first): OpenAPI/Medobuf-ը սխեմայի միակ աղբյուրն է։
SemVer 'միայն ավելացրեք դաշտերը։ հեռացում/փոփոխություն - v/v2։
Feature flags: 112 (Bonus Buy/Ante) - միայն հավաստագրված պրոֆիլների միջոցով։
Deprecation: announce 24grace period-ը թույլ է տալիս անջատել ոչ ակտիվ տարածքներում։
18) Չեկ թերթերը
Ռուսական Պլատֆորմի ստուդիա
- OpenAPI/gRPC-speks և մոտավոր pailods։
- Idempotention 'spin/debit/credit/jackpot "։
- «build _ hash» և www.market builds.
- RNG-replay և adit-log.
- RG խունջներ և սխալներ '403 RG _ BLOCKED "։
- Sandbox-ը ֆիքսված-seed, թեստային դրամապանակով և ավտոմեքենաների արժեքներով։
Ռուսական ստուդիայի պլատֆորմը
- JWT ստորագրությունը կարճ TTL, allowlist IP, mTLS-ի հետ։
- Market builds և հավաստագրեր։
- Event Bus և dashbords (latency/error/RTP drift)։
- Քվոտաները և rate-limits-ը ազնիվ հետադարձ կապի հետ '«429-Retry-After»։
- SLA/միջադեպեր/հեռահաղորդակցության ալիքներ 24 247։
19) 30-60-90 գործարկման պլանը
0-30 օր
Համաձայնեցնել API պայմանագրերը և իրադարձությունների սխեմաները, ընտրել դրամապանակի մոդել։- Բարձրացրեք sandbox: fixed-seed RNG, թեստային դրամապանակ, կուռքերի ավտոտեստեր։
- System 'build _ hash "և market builds առաջնային մատրիցը։
31-60 օր
Դրամապանակի և մեջքի ինտեգրումը; Միացրեք event Bus-ը և dashbords-ը։- Բեռի թեստերը (p95/p99), retrai/idempotention, ցանցի քաոս սցենարները։
- Կոմպլենսը ՝ RG-huki, lokali, age-labels; փաթեթը լաբորատորիայում։
61-90 օր
Օդաչուն 1-2 օպերատորների մոտ, A/B պրոմո (free spins/records)։
Power-up/հաշվետվության, RTP-dreefa/bonus-freq ալտերտերը։- V2 բարելավման պատրաստումը 'բատչ իրադարձություններ, gRPC դրամապանակի համար, geo-routing։
20) Կարճ FAQ
Որտե՞ ղ է ստուգվում RTP/տարբերակը։ Պլատֆոմի վրա '«build _ hash» ռուսական վկայագիր ռուսական երկիրը։- Կարո՞ ղ եք փոխել RTP դինամիկ։ Ոչ։ Միայն նախապես հավաստագրված պրոֆիլները և միայն market build փոխակերպումը։
- Ինչպե՞ ս լուծել «կրկնակի debit»։ Idempotent բանալին + գործարքի կարգավիճակի պահպանումը։ խոհարարը վերադարձնում է արդյունքը։
- Արդյո՞ ք gRPC-ն անհրաժեշտ է։ Օգտակար է դրամապանակի/ivents բարձր ծավալի համար։ REST-ը մնում է մետատվյալների/adminks համար։
Կայուն ինտեգրումը պայմանագրեր է + idempotention + դիտարկումը։ Իրադարձությունների թափանցիկ սխեմաները, տոմսերի/շուկաների վերահսկումը, RG-huki և տարբերակների կարգապահությունը հեռացնում են ռիսկերի 90 տոկոսը սկզբում։ Հաջորդը 'արդյունաբերական և հաշվետվության ավտոմատիզացիան, կոշտ SLA-ը և API-ի խնամքի զարգացումը առանց «կոտրող» փոփոխությունների։