Jak podłączyć dostawców za pośrednictwem API: uścisk dłoni, certyfikacja, piaskownica
Pełny artykuł
1) Mapa integracji: od zastosowania do produkcji
Etapy:1. Presale i Due Diligence: kontrole prawne, geo/licencje, kompatybilność treści i polityki RG.
2. Uścisk dłoni i bezpieczeństwo: wydanie dostępu do piaskownicy, wymiana kluczy (mTLS/HMAC), rejestracja w rejestrze schematu.
3. Projekt techniczny: potwierdzamy model domeny (sesje/zakłady/rozliczenia/zdarzenia), idempotencję, kody błędów.
4. Integracja piaskownicy: portfel/emulatory PSP/RG, gracze testowi, deszcz i wziąć scenariusze.
5. Certyfikacja: obowiązkowe uruchomienie testu, podpisywanie protokołu, obciążenia i przypadki chaosu.
6. Posting/UAT: konfiguracje walki bez prawdziwych pieniędzy, ruch kanaryjski.
7. Go-Live: kluczowa firma, włączająca flagi funkcji, monitorowanie SLO, gotowość po incydencie.
2) Uścisk dłoni: uwierzytelnianie, autoryzacja, odwzorowanie
2. 1 Dzielenie się tajemnicami i zakresami
mTLS (na certyfikaty marki/regionu) i/lub OAuth2 poświadczenia klienta.
HMAC/EdDSA żąda podpisu organu (dodaje brak repudiacji).
Скоса: „sesje: pisać”, „zakłady: pisać”, „osiedla: pisać”, „wydarzenia: publikować”.
2. 2 Pozycje obowiązkowe
"X-Trace-Id' - śledzenie od końca do końca.
„X-Brand-Id',” X-Region „,” X-Provider-Id'.
'X-Idempotency-Key' - dla wszystkich operacji zapisu.
2. 3 Kontrola funkcjonowania (przed kodem)
GET/Zdrowie
→ 200 {"status ": "ok"," wersja":" 1. 7. 2 ", "czas":" 2025-10-23T10: 00: 00Z"}3) Piaskownica: co jest i jak go używać
Skład środowiska: Harmonii z rzeczywistością:- Podobne wersje programów i limity stawek jak w sprzedaży.
- Czas-niebo, dostawa podwójne, out-of-order - wbudowane przyciski emulacji.
p_demo_1 (EUR), p_demo_2 (USD), p_blocked_rg (odrzucone), p_low_balance4) Model zasobów i minimalna umowa
4. 1 Tworzenie sesji
POST/v1/sesje
{
„player_id":"p_demo_1,” „game_id":"studio:slot_forge_02,” „waluta”:” EUR”, „locale”:” de-DE”
}
→ 201 {"session _ id':" s _ 456 "," expires _ at ":" 2025-10-23T19: 10: 00Z "}4. 2 Autoryzacja stawki (wstrzymanie)
POST/v1/zakłady/autoryzacja
Nagłówki: X-Idempotency-Key: bet_r_8c12_1
{
„session_id":"s_456,” „bet_id":"b_001,” „round_id":"r_8c12,” „kwota „: {” kwota”: 2. 00, „waluta”:” EUR”}
}
→ 200 {"status": "autoryzowany", "hold _ id':" h _ zz1 "}4. 3 Rozliczenie (wynik rundy)
POST/v1/zakłady/rozrachunek
Nagłówki: X-Idempotency-Key: settle_r_8c12_1
{
"bet_id":"b_001," "round_id":"r_8c12," "wygraj': {" kwota ": 14. 60, "waluta":" EUR"}, "bonus_state":{"in_bonus":true,"freespins_left":7}
}
→ 200 {"status": "credited", "settlement _ id':" st _ 77 "}4. 4 Błędy (pojedynczy schemat)
409
{"kod": "DUPLICATE", "message": "Bet already authorized", "retryyyable": false, "trace _ id':" tr _ a1b2 "}5) Wydarzenia i schematy: bez tego nie przejdziesz certyfikacji
Podstawowe tematy: Przykład Avro/JSON Schema (fragment 'bet. osiadły "):json
{
"event_type":"bet. osiadły” „, schema_version":"1. 2. 0", "event_id":"uuid," "occurred_at":"2025-10-23T16:21:05Z," "tenant_id":"brand-7," "region":" UE", "player_id":"p_demo_1," "trace_id":"tr_a1b2," "ładunek użytkowy": {
„round_id":"r_8c12,” „zakład „: {„kwota”: 1. 00, „waluta”:” EUR”}, „win „: {„kwota”: 14. 60, "waluta":" EUR"} ", in_bonus":true
}, „idempotency_key":"bet_r_8c12_1”
}Zasady: ewolucja kompatybilna z wstecznym, test na „duplikaty i późne zdarzenia”, udział 'lokator _ id/player _ id'.
6) Certyfikat integracji: co dokładnie jest sprawdzane
6. 1 Scenariusze funkcjonalne (minimum)
Ponowne spróbowanie żądania 'authorize/settle' przy użyciu tego samego 'X-Idempotence-Key' → tej samej odpowiedzi.
Out-of-order: 'settle' przyszedł bez 'authorize' → poprawne niepowodzenie.
Łańcuchy rolkowe po upadku portfela/sieci.
Przystanki RG: limit samodzielnego wykluczenia/straty/czas → zakaz zakładu.
Bonus/vager: wkład według typu gry, maksymalny zakład, terminy.
6. 2 Obciążenie
p95 „zakład/rozliczanie” w budżetach (np. '<200-300 ms'), brak „burz” retras.
Strumienie zdarzeń osiągają wartość BI ≤ 5 min.
6. 3 Przypadki chaosu
Podwójne dostawy, opóźnienia w dostawie/CDC, „zrzut” regionu, częściowe rozliczenie.
6. 4 Wyniki
Protokół testowy z kodami czasowymi/identyfikatorem śladu.
Raport SLO (opóźnienie/błąd/opóźnienie).
Podsumowanie zabezpieczeń (klucze, obroty, dostęp, skarbiec/HSM).
7) Wersja i migracje
HTTP: '/v1/... "w tranzycie, zdarzenia:" schema _ version "w ciele.
SemVer: minor - dodawanie pól opcjonalnych; major - tylko przez nowy przedrostek '/v2/'.
Nagłówki deprecacji: 'Deprecation', 'Sunset', deska rozdzielcza używają lustra.
Flagi funkcji: „podwójna litera” zdarzeń ('v1' i 'v2') w okresie przejściowym.
8) Bezpieczeństwo i zgodność
mTLS + podpisy S2S, krótkotrwałe żetony, ograniczone zakresy.
Zero-trust: zasady sieci, klucze na markę/region.
Rezydencja & PII: przechowywanie i logowanie w regionie; RLS/maskowanie.
Audyt WORM: zmiany limitów, profile RTP, konfiguracje jackpota.
RG/AML: synchroniczne światła stop na zakład/płatność; sprawozdawczość SAR/STR.
9) Wyjście do produkcji: lista kontrolna startu
Przed włączeniem ruchu
Obrót tajemnic piaskownicy → klucze prod.
Dołączone deski rozdzielcze p95/p99, błąd, kolejka-lag, settle-lag.
Alert SLO: naruszenie przez opóźnienie/błąd/lag, przepięcie „DUPLIKAT/IDEMPOTENCY _ MISMATCH”.
DR-plan: RPO ≤ 5 min, RTO ≤ 30 min; „czerwony przycisk” - zatrzymać nowe sesje.
Kanaryjski
1-5% publiczności/gry/geo; automatyczny zwrot w przypadku naruszenia SLO.
Po monitorowaniu 24-72 godziny, księga/uzgodnienie raportu.
10) Anty-wzory (czerwone flagi)
Publikacja wydarzeń omijających skrzynkę kontaktową/CDC.
Brak 'X-Idempotence-Key' w operacjach zapisu.
Ręczne edycje sald/rozliczeń w bazie danych.
Pojedyncze klucze dla wielu marek/regionów.
BI i raporty regulacyjne na szczycie bazy danych OLTP.
Zero degradacji: upadek dostawcy obniża portfel/platformę.
11) Listy kontrolne
Dla dostawcy
- Zawsze wysyłam 'X-Trace-Id' i' X-Idempotency-Key '.
- Popieram powtarzanie z tym samym kluczem bez skutków ubocznych.
- Publikacja schematu wydarzeń z rejestru; store 'schema _ version'.
- Wsteczne przekwalifikowanie i deduplikacja są realizowane.
- Przystanki i limity bonusowe są egzekwowane w czasie rzeczywistym.
- Dostęp i tajemnice - dla każdej marki/regionu, obrót skonfigurowany.
Dla platformy
- Outbox/CDC na wszystkich ścieżkach pieniężnych; śledzenie typu end-to-end.
- Deski rozdzielcze SLO: p95/99, szybkość błędów, kolejka-lag, settle-lag.
- Proces deprecacji/zachodu słońca, podwójna litera wydarzeń dotyczących migracji.
- Ćwiczenia DR/xaoc, zarządzanie incydentami i pośmiertne.
- Tryby degradacji: „brak nowych sesji”, wyłączyć promo/jackpot.
12) Przykład „minimalnego” odtwarzania integracyjnego (TL; DR)
1. Podpisz NDA/kontrakt → wydanie piaskownicy dostęp i schematy.
2. certyfikaty mTLS/HMAC; start 'provider _ id'.
3. Uzgodnić minimalne punkty końcowe: „sesje”, „zakłady/autoryzacja”, „zakłady/rozliczenie”, „rollback”.
4. Podłącz do magistrali i rejestru Sandbox; wyrzucić sprawy funkcjonalne/chaosu.
5. Podaj protokół certyfikacji: dzienniki, identyfikator śladu, raport SLO.
6. Przełączyć klucze do jedzenia, włączyć kanarka, obserwować SLO.
7. Zapisz mierniki po wydaniu i „lekcje” w changelogu.
Udane połączenie dostawcy to nie tylko interfejs API, ale także kontrolowany proces: bezpieczny uścisk dłoni, realistyczna piaskownica, ścisła certyfikacja, obserwowalność i przejrzyste zasady kompatybilności. Stosując się do opisanych niezmienników (idempotencja, outbox/CDC, przystanki RG/AML, SLO i DR), przyspieszasz integrację, unikasz incydentów monetarnych i uzyskujesz przewidywalne wydania - bez niespodzianek dla graczy, regulatorów i przedsiębiorstw.
