Cum să conectați furnizorii prin API: strângere de mână, certificare, cutie de nisip
Articol complet
1) Harta integrării: de la aplicare la producție
Etape:1. Presale și Due Diligence: controale legale, geo/licențe, compatibilitatea conținutului și politici RG.
2. Strângere de mână și securitate: emiterea acceselor sandbox, schimbul de chei (mTLS/HMAC), înregistrarea la Schema Registry.
3. Design tehnic: confirmam modelul de domeniu (sesiuni/pariuri/asezari/evenimente), idempotenta, coduri de eroare.
4. Integrarea Sandbox: emulatoare portofel/PSP/RG, playere de testare, ploaie și să ia scenarii.
5. Certificare: testare obligatorie, semnarea protocolului, încărcături și cazuri de haos.
6. Staging/UAT: configurații de luptă fără bani reali, trafic canar.
7. Go-Live: companie cheie, care permite steaguri caracteristică, monitorizare SLO, post-incident de pregătire.
2) Strângere de mână: autentificare, autorizare, urmărire
2. 1 Împărtășirea secretelor și scopurilor
mTLS (per brand/region certificate) și/sau Client Acreditări OAuth2.
Semnătura organismului de solicitare HMAC/EdDSA (adaugă non-repudiere).
Скоупы: 'sessions: write', 'bets: write', 'settlements: write', 'events: publish'.
2. 2 Rubrici obligatorii
"X-Trace-Id' - urmărire end-to-end.
„X-Brand-Id',” X-Region „,” X-Provider-Id'.
„X-Idempotency-Key” - pentru toate operațiunile de scriere.
2. 3 Verificarea stării de sănătate (înainte de cod)
GET/sănătate
→ 200 {"stare ": "ok"," versiune":" 1. 7. 2 ", "timp":" 2025-10-23T10: 00: 00Z"}3) Sandbox: ce este acolo și cum să-l folosească
Compoziția mediului: Armonie cu realitatea:- Versiuni similare ale schemelor și limitelor de rată ca în vânzare.
- Time-sky, livrare dublează, out-of-order - built-in butoane de emulare.
p_demo_1 (EUR), p_demo_2 (USD), p_blocked_rg (negat), p_low_balance4) Modelul resurselor și contractul minim
4. 1 Crearea sesiunii
POST/v1/sesiuni
{
"player_id":"p_demo_1," "game_id":"studio:slot_forge_02," monedă ":" EUR "," locale ":" de-DE "
}
→ 201 {„session _ id':” s _ 456 „,” expiră _ at': „2025-10-23T19: 10: 00Z”}4. 2 Autorizarea ratei (cala)
POST/v1/pariuri/autorizare
Anteturi: X-Idempotency-Key: bet_r_8c12_1
{
"session_id":"s_456," "bet_id":"b_001," "round_id":"r_8c12," sumă ": {" sumă ": 2. 00, „monedă”:” EUR”}
}
→ 200 {"status": "autorizat", "hold _ id':" h _ zz1 "}4. 3 Decontare (rezultat rotund)
POST/v1/pariuri/soluționare
Anteturi: X-Idempotency-Key: settle_r_8c12_1
{
"bet_id":"b_001," "round_id":"r_8c12," câștig ": {" sumă ": 14. 60, "monedă":" EUR"} ", bonus_state":{"in_bonus":true,"freespins_left":7}
}
→ 200 {"status": "credited", "settlement _ id':" st _ 77 "}4. 4 Erori (diagramă unică)
409
{"cod": "DUPLICATE", "mesaj": "Bet deja autorizat", "retryable": false, "trace _ id':" tr _ a1b2 "}5) Evenimente și scheme: fără aceasta nu veți trece certificarea
Subiecte de bază: Exemplu Avro/JSON Schema (fragment 'bet. decontate "):json
{
"event_type":"bet. "," schema_version":"1 ". 2. 0 "," event_id":"uuid, "occurred_at":"2025-10-23T16:21:05Z," "tenant_id":"brand-7," "regiune": "EU", "player_id":"p_demo_1," "trace_id":"tr_a1b2," sarcină utilă ": {
„round_id":"r_8c12,” „pariu „: {„sumă”: 1. 00, „valută”:” EUR”}, „câștig „: {„sumă”: 14. 60, "monedă":" EUR"} ", in_bonus":true
}, „idempotency_key":"bet_r_8c12_1”
}Reguli: evoluție compatibilă înapoi, test pentru „duplicate și evenimente târzii”, participare prin 'chiriaș _ id/player _ id'.
6) Certificarea integrării: ce anume este verificat
6. 1 Scenarii funcționale (minim)
Încercați din nou cererea 'authorize/settle' cu aceeași 'X-Idempotency-Key' → același răspuns.
Out-of-order: „soluționare” a venit fără „autoriza” → eșec corect.
Lanțuri Rollback atunci când portofelul/rețeaua cade.
RG se oprește: auto-excludere/limită de pierdere/timp → interzice pariul.
Bonus/vager: contribuție după tipul de joc, pariu maxim, termene limită.
6. 2 Încărcare
p95 'bet/settle' în bugete (ex. "<200-300 ms'), fără" furtuni "de retraverse.
Fluxurile de evenimente ajung la BI ≤ 5 min.
6. 3 Cazuri de haos
Livrarea se dublează, outbox/CDC întârzieri, regiune „dump”, decontare parțială.
6. 4 Livrabile
Protocol de testare cu timecodes/trace-id.
Raport SLO (latență/eroare/lag).
Rezumat de securitate (chei, rotații, accesări, Vault/HSM).
7) Versiune și migrații
HTTP: '/v1/... 'în tranzit, evenimente:' schema _ version 'în corp.
SemVer: minor - adăugarea de câmpuri opționale; major - numai prin noul prefix '/v2/'.
Antete de depreciere: „Depreciere”, „Apus de soare”, oglindă de utilizare tablou de bord.
Steaguri caracteristice: „litera dublă” a evenimentelor („v1” și „v2”) în tranziție.
8) Siguranță și conformitate
mTLS + semnături S2S, jetoane de scurtă durată, scopuri delimitate.
Zero-trust: politici de rețea, chei per brand/regiune.
Rezidență de date și PII: stocare și jurnale în regiune; RLS/mascare.
Audit WORM: modificări ale limitelor, profiluri RTP, configurații jackpot.
RG/AML: lumini de oprire sincrone pe pariu/plată; Raportare SAR/STR.
9) Ieșirea la producție: lista de verificare a lansării
Înainte de activarea traficului
Rotirea secretelor sandbox → chei prod.
Tablouri de bord incluse p95/p99, eroare-rate, coadă-lag, settle-lag.
Alert SLO: încălcare prin latență/eroare/lag, supratensiune 'DUPLICATE/IDEMPOTENCY _ MISMATCH'.
DR-plan: RPO ≤ 5 min, RTO ≤ 30 min; „butonul roșu” - opriți sesiunile noi.
Canare
1-5% audiență/jocuri/geo; rollback automat în caz de încălcare SLO.
Post-monitorizare 24-72 ore, registru/raport reconciliere.
10) Anti-modele (steaguri roșii)
Publicarea evenimentelor ocolind outbox/CDC.
Absența „X-Idempotency-Key” în operațiunile de scriere.
Modificări manuale ale soldurilor/așezărilor în baza de date.
Chei unice pentru mai multe mărci/regiuni.
BI și rapoarte de reglementare pe partea de sus a bazei de date de luptă OLTP.
Zero degradare: căderea furnizorului aduce în jos portofelul/platforma.
11) Liste de verificare
Pentru furnizor
- Trimit întotdeauna "X-Trace-Id' și" X-Idempotency-Key ".
- Susțin repetarea cu aceeași cheie fără efecte secundare.
- Publicarea evenimentelor schemei din Registru; store 'schema _ version'.
- Retrotrains Backoff și eliminarea duplicatelor sunt implementate.
- Opririle RG și limitele bonusului sunt aplicate în timp real.
- Acces și secrete - per brand/regiune, rotație configurată.
Pentru platformă
- Outbox/CDC pe toate căile de bani; urmărire end-to-end.
- Tablouri de bord SLO: p95/99, eroare-rate, coadă-lag, settle-lag.
- Procesul de depreciere/apus de soare, o scrisoare dublă de evenimente privind migrațiile.
- Exerciții DR/xaoc, gestionarea incidentelor și post-mortem.
- Moduri de degradare: „fără sesiuni noi”, dezactivați promo/jackpot.
12) Exemplu de playbook „minim” de integrare (TL; DR)
1. Semnați un NDA/contract → emiteți accesele și schemele sandbox.
2. Certificate Exchange mTLS/HMAC; start 'provider _ id'.
3. Conveniți asupra punctelor finale minime: 'sesiuni', 'pariuri/autorizare', 'pariuri/soluționare', 'rollback'.
4. Conectați-vă la magistrala și registrul Sandbox; conduce afară cazuri funcționale/haos.
5. Treceți protocolul de certificare: jurnale, trace-id, raport SLO.
6. Schimbați cheile la alimente, porniți canarul, observați SLO.
7. Înregistrați măsurătorile post-lansare și „lecțiile” în changelog.
Conexiunea cu succes a furnizorului nu este doar un API, ci un proces controlat: o strângere de mână sigură, o cutie de nisip realistă, certificare strictă, observabilitate și reguli clare de compatibilitate. Urmând invarianții descriși (idempotență, outbox/CDC, opriri RG/AML, SLO și DR), accelerați integrările, evitați incidentele monetare și obțineți versiuni previzibile - fără surprize pentru jucători, autorități de reglementare și întreprinderi.
