GH GambleHub

Töleglerde gaýtalanmalar we backoff

Töleglerde gaýtalanmalar we backoff

1) Näme üçin gaýtalanmalar gerek?

Öwrülişik: ýumşak şowsuzlyklar (timeouts, 3DS-ýalňyşlyklar, tor şowsuzlyklary) köplenç gaýtalananda dikeldilýär: "Auth Rate" -e + 2-7 p.p.
Durnuklylyk: PSP/ACS/bankyň lokal şowsuzlyklary alternatiw ýollar bilen tekizlenýär.
Oýunçynyň tejribesi: dogry gurlan gaýtalanmalar infrastrukturanyň "sesini" goşa hasapdan çykarmazdan gizleýär.


2) Esasy ýörelgeler

1. "payment intent" (PI) derejesindäki idempotentlik: bir amal = bir 'idempotency _ key'; islendik gaýtadan ýüz tutmak pul ýagdaýyny üýtgetmeýär.

2. Hatalary bölmek:
  • Hard decline (mysal üçin 'Do not honor' emitentiň berk syýasaty, 'Insufficient funds') → adatça birbada retraim däl.
  • Soft decline/tehniki (timeout, 'Issuer unavailable', 'Try again') → rugsat edilen retrai.
  • 3. Backoff + synanyşyk çäklendirmesi: gijikdirmegi eksponensial ýokarlandyrýarys, jitleri goşýarys we çäklerden geçmeýäris (adatça 2-3 synanyşyk).
  • 4. Baglanyşykda marşrut: retrai diňe bir "şol bir PSP-den gaýtalamak" däl, eýsem PSP/MID/3DS-re modeimi/usulyny üýtgetmekdir.
  • 5. Syn edilişi: her hop Route Journal-da ýazylýar (PSP, reason, latency, 3DS-re modeim, fee, netije).

3) Retra hakyndaky çözgüt üçin ýalňyşlyklaryň klassifikasiýasy

SynpMysallarMaslahat
Tor/Tehnikitimeout, 5xx, `Issuer/ACS unavailable`, webhook delayBackoff bilen retrai; üýtgetmek PSP/MID/3DS
Soft decline (tersine)'Pickup card (soft)', 'Do not honor' (wakalaryň bir bölegi), 'Processing error'Retraý 1-2 gezek, belki 3DS/marşruty üýtgetmek bilen
Hard decline (soňky)`Insufficient funds`, `Invalid card`, `Expired card`, `Restricted card`, `Do not honor` (жесткий)Retraim däl (ýa-da alternatiw usuly hödürleýäris)
3DS ýalňyşlyklary`Authentication unavailable`, timeout ACS, `Soft decline` после frictionlessChallenge bilen ýa-da alternatiw usul arkaly retray (açyk banking)
Töwekgelçilik/gabat gelmeksanksiýalar/RER, RG-blok, velocity çäkleriRetraýim däl; ret etmegiň işewürlik logikasy
💡 Bellik: takyk matrisa/PSP shemalaryna baglydyr. Whitelist/blacklist reason kodlaryny orkestratoryň konfigasynda saklaň.

4) Backoff-strategiýalar (tejribe)

4. 1 Jitter bilen eksponensial backoff (maslahat berilýär)

База: `delay_n = min(base 2^n, max_delay)`

Jitler: 'delay = rand (0, delay_n)' - köp haýyş bir wagtyň özünde gaýtalananda "stampedalary" peseldýär.
Adaty parametrler: 'base = 200-500 ms', 'max _ delay = 5-10 s', 'n ≤ 2-3'.

4. 2 Çyzykly backoff

Internetdäki "tolgunyşyklarda" ýönekeý, ýöne has erbet. Eksponensial jitterden pes.

4. 3 Wagt taşlaýyş syýasaty

Client timeout (siziňki) ≤ PSP SLA (mysal üçin 3-5 s), ýogsam dublikat/doňdurma töwekgelçiligi ýokarlanýar.
Webhook/confirm üçin aýratyn wagt beriň: eger tassyklama gelmedik bolsa → öwezini dolmak barlagy (ledger/PSP).


5) Dampotentlik we dubllardan goramak

Payment Intent (PI) statusyny, mukdaryny, usulyny, 'idempotency _ key', marşrutlaryň taryhyny saklaýar.
Her hop we retry birmeňzeş açary ulanýarlar.
Öwezini dolmak amallary: bölünen ýagdaýynda (PSP-de approve, sizde bolsa timeout) - "reconcile-pull" + ledjeri düzetmek.
Webhook gaýtadan iberilende gaýtadan ygtyýarnamany aýyryň: 'transaction _ id '/' PSP reference' -iň özboluşlylygyny barlaň.


6) 3DS/SCA we gaýtalanmalar

Soft decline frictionless → retrai s challenge.
ACS timeout/unavailable → eksponensial backoff, soňra alternatiw kanal (açyk banking/APM) ýa-da beýleki PSP.
ACS köpçülikleýin pese gaçanda - circuit-breaker, 'challenge rate' ösüşi, mukdarlar boýunça wagtlaýyn çäkler.


7) APM/açyk banking üçin gaýtalanmalar

Open banking/instant rails (SEPA Instant/FPS/Pix/UPI):
  • Retraýlar çäklidir: üpjün edijiniň tarapynda idempotentligi we gijikdirilen webhook 'ax-daky statuslary barlaň.
  • Näbelli statusda - backoff bilen polling we berk deňeşdirmeler.
  • Talonlar/nagt pul: retraýlar "onlaýn-amallar" hökmünde ulanylmaýar, ýöne töleg möhletine gözegçilik we "status refresh" hereket edýär.

8) Tölegler (netijeler): gaýtalanmalar we nobatlar

Bankyň tehniki şowsuzlygy/PSP → backoff-dren bilen queued payouts.
KYT/velocity fail → retraim däl, el bilen barlamak üçin terjime.
Nobatyň ileri tutulmagy: VIP/ownuk pul/haýyşnamanyň möhleti; SLA möhletleri we awto-eskalasiýa.
Retraýyň ikinji ädiminde alternatiw relsler (RTP/FPS/SEPA Instant/Pix).


9) Circuit-breaker we retralar

Lokal (PSP/MID/BIN-de): ýalňyşlyklar ýüze çykanda → bu ugurda retraýalary saklaýarys, alternatiwa geçýäris.
Global (usul/sebit): ulgamlaýyn pese gaçmak → usuly öçürýäris, APM/açyk banking hödürleýäris.
Half-open: Doly yzyna gaýtarylmazdan ozal dikeldişi barlamak üçin traffigiň bir bölegini (1-5%) yzyna gaýtarýarys.


10) Retraýlar strategiýasynyň pseudo-resminamasy

python def pay_with_retries(pi):
ensure_idempotency(pi.key)
if not compliance_pass(pi): return REJECT

routes = rank_candidates(pi) # по вероятности approve, fee, health attempts = 0 for route in routes:
policy3ds = select_3ds(pi, route)
res = call_psp(route, pi, policy3ds, pi.key, timeout=3.0)
log_attempt(pi, route, res)

if res.approved: return APPROVED

if is_soft_decline(res) or is_transient_error(res):
while attempts < MAX_ATTEMPTS and not breaker_open(route):
delay = backoff_with_jitter(base=0.3, attempt=attempts, cap=8.0)
sleep(delay)
policy3ds = maybe_toggle_3ds(policy3ds, res)
res = call_psp(route, pi, policy3ds, pi.key, timeout=3.0)
log_attempt(pi, route, res)
attempts += 1 if res.approved: return APPROVED if is_hard_decline(res): break перейти к следующему маршруту (PSP-B/APM/open banking)
return DECLINED

11) KPI we maksatlaýyn görkezmeler

Incremental Approvals from Retries: + 2-7 p.p. esasy konwersiýa.
Avg Retry Attempts per Approved Tx: 1. 2–1. 5 (aşakda saklaň 1. 7).
Retry Success Rate (soft/tech): ≥ 25–40%.
Duplicate Rate: 0 dogry idempotentlik ýagdaýynda.
P95 Latency (retraýlary göz öňünde tutup): <7 s gutarnykly jogaba çenli.
Töleg SLA (instant share): ≥ 70% ýeňil çekler, möhleti geçen <maksat çäkleri.


12) Wakalaryň pleýbuklary

A. PSP-A-da köpçülikleýin timeouts

1. PSP-A üçin lokal döwüjini aç

2. Retraidleri PSP-B/APM-e paýla.
3. Jitter bilen eksponensial backoff, 2-3 synanyşyk çägi.
4. Half-open kanareýasy 10-15 minutdan soň.

B. zaýalanma ACS/3DS

1. Ösüş detekti 'soft decline', timeouts.
2. & Çallenge rate; traffigiň bir bölegi → açyk banking.
3. Agyr çekleri goýuň, velocity çäklerini goşuň.

C. Payouts boýunça gijikdirmeler

1. Nobata geçirmek, VIP/kiçi möçberleri ileri tutmak.
2. Alternatiw rails üçin reraut (RTP/FPS/SEPA Instant/Pix).
3. Oýunçylara aragatnaşyk + awto-eskalasiýa.


13) Gözegçilik etmek we maglumatlar

Route Journal: PSP/MID, BIN/issuer, reason, latency, 3DS-режим, retry chain, итог, fee.
Daşbordlar: Auth Rate (banklar boýunça), Retry Success, Avg Attempts, Decline Mix, p95 latency, Payout Queue Depth.
Alertler: reason-kodlar boýunça spikes, synanyşyklaryň/latency köpelmegi, netijeleriň nobatlarynyň aşa köp bolmagy.


14) Girizmegiň çek-listleri

Arhitektura/maglumatlar

  • Payment Intent + `idempotency_key` на все hops.
  • Reason-kod matrisi: retryable vs non-retryable.
  • Gol çekilen webhooks, PSP reference.

Backoff/Düzgünler

  • Jitter bilen eksponensial backoff; synanyşyklaryň çäkleri we penjiräniň wagty.
  • Smart retry: 3DS/MID/PSP/usulyny üýtgetmek; kartoçkalar üçin tapawut vs APM/açyk banking.
  • Circuit-breakers (lokal/global), half-open-kanareýkalar.

Dolandyryjy/Barlyşyk

  • "Asylan" statuslarda öwezini dolmak amallary.
  • T + 0/T + 1 barlyşyk: PSP, bank, pul dolandyryjysy.
  • Confirm/webhook-da wagt we SLA syýasaty.

Amallar/utgaşmalar

  • RG/sanksiýalar/PEP/ýaş - retraýlara çenli.
  • KYT/velocity на payouts; el bilen gygyrmagyň düzgünleri.
  • Wakalar/güýçlenmeler üçin Runbooks we RACI.

15) Ykdysadyýet we töwekgelçilik

3DS-fiýa, FX, çarjbek-gymmaty, retrai-overhead-i göz öňünde tutup, effective rate hasaplaň.
Çargeback exposure we ätiýaçlyklary ýaýratmazlyk üçin ýokary töwekgelçilikli segmentler boýunça retralary berk çäklendiriň.


16) Jemleýji

Gaýtalamalar dolandyrylanda işleýär: idempotentlik, reason-kodlaryň aç-açan matrisi, jitter bilen eksponensial backoff, synanyşyklaryň çäklendirilmegi we marşrut bilen baglanyşyk (PSP/3DS/usulyň üýtgemegi). Circuit-breaker, payouts üçin nobatlar we güýçli barlyşyklar goşuň - goşa we kassa "deşikleri" döretmezden konwersiýany yzygiderli ýokarlandyrarsyňyz.

Contact

Biziň bilen habarlaşyň

Islendik sorag ýa-da goldaw boýunça bize ýazyp bilersiňiz.Biz hemişe kömek etmäge taýýar.

Integrasiýany başlamak

Email — hökmany. Telegram ýa-da WhatsApp — islege görä.

Adyňyz obýýektiw däl / islege görä
Email obýýektiw däl / islege görä
Tema obýýektiw däl / islege görä
Habar obýýektiw däl / islege görä
Telegram obýýektiw däl / islege görä
@
Eger Telegram görkezen bolsaňyz — Email-den daşary şol ýerden hem jogap bereris.
WhatsApp obýýektiw däl / islege görä
Format: ýurduň kody we belgi (meselem, +993XXXXXXXX).

Düwmäni basmak bilen siz maglumatlaryňyzyň işlenmegine razylyk berýärsiňiz.