GH GambleHub

تکرار و عقب نشینی در پرداخت

تکرار و عقب نشینی در پرداخت

1) چرا تکرار مورد نیاز است

تبدیل: شکست نرم (زمان، خطاهای 3DS، شکست شبکه) اغلب در تکرار بهبود: + 2-7 pp به نرخ Auth.
استحکام: شکست PSP/ACS/بانک محلی توسط retras با مسیرهای جایگزین صاف.
تجربه پخش: تکرار به درستی ساخته شده پنهان «سر و صدا» از زیرساخت بدون اتهام دو برابر است.


2) اصول اساسی

1. Idempotency در سطح «قصد پرداخت» (PI): یک عملیات = یک «idempotency _ key» ؛ هر گونه توسل شرایط پولی را تغییر نمی دهد.

2. تفکیک خطا:
  • کاهش شدید (به عنوان مثال 'افتخار نیست' با یک سیاست صادر کننده سخت, 'بودجه کافی') → معمولا حق دور زدن نیست.
  • افت نرم/فنی (اتمام وقت، «صادرکننده در دسترس نیست»، «دوباره امتحان کنید») → مجاز به بازپرداخت.
  • 3. Backoff + تلاش محدود: به صورت نمایی افزایش تاخیر، اضافه کردن jitter و محدودیت تجاوز نمی کند (معمولا 2-3 تلاش).
  • 4. مسیریابی بسته نرم افزاری: retray نه تنها «تکرار همان PSP» است، بلکه تغییر در حالت/روش PSP/MID/3DS است.
  • 5. قابلیت مشاهده: هر هاپ در مجله مسیر (PSP، دلیل، تاخیر، حالت 3DS، هزینه، نتیجه) ثبت شده است.

3) طبقه بندی خطا برای تصمیم عقب نشینی

کلاس هانمونه هاتوصیه نامه ها
شبکه/فنیمدت زمان, 5xx, «صادرکننده/ACS در دسترس نیست», تاخیر webhookRetray با عقب نشینی ؛ می تواند تغییر کند PSP/MID/3DS
کاهش نرم«کارت وانت (نرم)»، «افتخار نیست» (بخشی از موارد)، «پردازش خطا»Retray 1-2 بار، احتمالا با تغییر در 3DS/route
کاهش شدید (نهایی)«بودجه کافی»، «کارت نامعتبر»، «کارت منقضی شده»، «کارت محدود»، «افتخار نکنید» (жесткий)نه retrayim (یا پیشنهاد روش جایگزین)
3DS-mistakes«احراز هویت در دسترس نیست»، زمان ACS، «کاهش نرم» بدون اصطکاک послеRetray with challenge or through an alternative method (بانکداری باز)
ریسک/انطباقتحریم ها/PEP، بلوک RG، محدودیت سرعتنه پس گرفتن ؛ منطق کسب و کار از شکست
💡 توجه: ماتریس دقیق بستگی به مدار/PSP. کدهای دلیل لیست سفید/لیست سیاه را در پیکربندی ارکستر ذخیره کنید.

4) استراتژی های عقب نشینی (تمرین)

4. 1 عقب نشینی نمایشی با لرزش (توصیه می شود)

База: 'delay _ n = min (پایه 2 ^ n, max_delay)'

Jitter: 'delay = rand (0, delay_n)' - در صورت تکرار چندین درخواست به طور همزمان، ازدحام را کاهش می دهد.
پارامترهای نمونه عبارتند از: «base = 200-500 ms»، «max _ delay = 5-10 s»، «n≤2 -3».

4. 2 عقب نشینی خطی

ساده، اما بدتر با «ناآرامی» در شبکه. پایین تر از نمایش + jitter.

4. 3 سیاست اتمام وقت

اتمام وقت مشتری (مال شما) ≤ PSP SLA (به عنوان مثال، 3-5 ثانیه)، در غیر این صورت خطر تکراری/یخ افزایش می یابد.
جداگانه تنظیم زمان انتظار برای webhook/تایید: اگر تایید → آشتی جبران (دفتر کل/PSP) آمده است.


5) idempotence و حفاظت در برابر طول می کشد

قصد پرداخت (PI) وضعیت، مبلغ، روش، «idempotency _ key»، تاریخچه مسیر را ذخیره می کند.
هر هاپ و تلاش مجدد از همان کلید استفاده می کنند.
جبران معاملات: زمانی که از همگام سازی (تایید در PSP، و شما یک وقفه) - «آشتی کشش» + تنظیم دفتر.
حذف مجدد مجوز هنگام تحویل وب سایت: بررسی 'transaction _ id '/' مرجع PSP' برای منحصر به فرد بودن.


6) 3DS/SCA و تکرارها

کاهش نرم پس از اصطکاک → retray با چالش.
ACS timeout/unavailable → exponential backoff، سپس یک کانال جایگزین (بانکداری باز/APM) یا یک PSP دیگر.
با تخریب جرم ACS - قطع کننده مدار، «نرخ چالش» رشد، محدودیت زمانی در مقادیر.


7) نمایندگان APM/بانکداری باز

بانکداری باز/ریل فوری (SEPA از طریق مسنجر/FPS/PIX/UPI):
  • Retrays محدود هستند: بررسی idempotence در طرف ارائه دهنده و وضعیت در تاخیر webhook 'ax.
  • با وضعیت نامحدود - رای گیری با عقب نشینی و آشتی سخت.
  • کوپن/پول نقد: بازپرداخت به عنوان «معامله آنلاین» اعمال نمی شود، اما کنترل تاریخ و «تازه کردن وضعیت» اعمال می شود.

8) پرداخت: تکرار و صف

خرابی فنی بانک/PSP → پرداخت های صف با تخلیه برگشتی.
شکست KYT/سرعت → نه retrayem، انتقال به بررسی دستی.
اولویت بندی صف: VIP/مقادیر کوچک/سن برنامه ؛ SLA و مهلت افزایش خودکار.
ریل های جایگزین (RTP/FPS/SEPA Instant/Pix) در مرحله دوم عقب نشینی.


9) قطع کننده مدار و retrai

محلی (در PSP/MID/BIN): هنگامی که اشتباهات سنبله، → توقف retrays در این مسیر، تغییر به یک جایگزین.
جهانی (در هر روش/منطقه): تخریب سیستمیک → روش را غیرفعال کنید، ما APM/بانکداری باز را ارائه می دهیم.
نیمه باز: بازگشت بخشی از ترافیک (1-5٪) برای بررسی بازیابی قبل از بازگشت کامل.


10) شبه کد استراتژی retray

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 ها و اهداف

مصوبات افزایشی از Reries: + 2-7 pp به تبدیل پایه.
میانگین تلاش مجدد در هر تایید Tx: 1. 2–1. 5 (نگه داشتن زیر 1. 7).
میزان موفقیت مجدد (نرم/فناوری): ≥ 25-40٪.
نرخ تکراری: 0 با idemotency صحیح.
P95 تاخیر (از جمله retrays): <7 ثانیه تا پاسخ نهایی.
SLA پرداخت (سهم فوری): ≥ 70٪ از چک های آسان، آستانه هدف عقب افتاده.


12) کتاب های حادثه

A. مدت زمان جرم در PSP-A

1. باز کردن قطع کننده محلی برای PSP-A.
2. دوباره به PSP-B/APM منتقل می شود.
3. عقب نشینی نمایشی با لرزش، محدود کردن 2-3 تلاش.
4. قناری نیمه باز پس از 10-15 دقیقه.

ب) تخریب ACS/3DS

1. تشخیص توسط رشد «کاهش نرم»، وقفه.
2. افزایش میزان چالش ؛ بخشی از ترافیک → بانکداری باز.
3. چک های سنگین را کنار بگذارید، محدودیت های سرعت را روشن کنید.

C. تاخیر در پرداخت

1. انتقال به صف، اولویت بندی VIP/مقادیر کوچک.
2. تغییر به ریل های جایگزین (RTP/FPS/SEPA Instant/Pix).
3. ارتباط با بازیکنان + افزایش خودکار.


13) قابلیت مشاهده و داده ها

مجله مسیر: PSP/MID، BIN/صادر کننده، دلیل، تاخیر، 3DS-режим، زنجیره مجدد، итог، هزینه.
داشبورد: نرخ Auth (توسط بانک)، موفقیت مجدد، تلاش Avg، مخلوط کاهش، تاخیر p95، عمق صف پرداخت.
هشدارها: spikes by reason codes, افزایش در تلاش/تاخیر, سرریز از صف های خروجی.


14) چک لیست پیاده سازی

معماری/داده ها

  • قصد پرداخت + 'idempotency _ key' на все هاپ.
  • ماتریس پیکربندی کد دلیل: قابل جمع شدن در مقابل غیر قابل جمع شدن.
  • امضا webhooks، deduplication توسط PSP مرجع.

عقب نشینی/قوانین

  • عقب نشینی نمایشی با لرزش ؛ محدودیت تلاش و زمان پنجره.
  • تلاش مجدد هوشمند: تغییر 3DS/MID/PSP/method ؛ تمایز در مقابل APM/کارت های بانکی باز.
  • قطع کننده مدار (محلی/جهانی)، نیمه باز قناری.

دفتر کل/آشتی

  • جبران معاملات با وضعیت «معلق».
  • T + 0/T + 1 آشتی: PSP ↔ بانک ↔ دفتر کل پول.
  • اتمام وقت و سیاست SLA در تایید/webhook.

عملیات/انطباق

  • RG/تحریم/PEP/سن - قبل از retrays.
  • KYT/سرعت پرداخت на ؛ قوانین بررسی دستی.
  • Runbooks و RACI برای حوادث/تشدید.

15) اقتصاد و ریسک

در نظر گرفتن نرخ موثر با توجه به 3DS-phia، FX، chargeback-value، retray-overhead.
محدودیت سخت به بخش های با خطر بالا باز می گردد تا از قرار گرفتن در معرض بازپرداخت و ذخایر جلوگیری شود.


16) خط پایین

تکرارها زمانی کار می کنند که قابل کنترل باشند: idempotency، یک ماتریس روشن از کدهای منطقی، عقب نشینی نمایشی با jitter، محدودیت تلاش و یک بسته نرم افزاری با مسیریابی (تغییر PSP/3DS/method). اضافه کردن مدار شکن، پرداخت صف و آشتی قوی - و شما به طور مداوم افزایش تبدیل بدون ایجاد طول می کشد و سوراخ پول نقد.

Contact

با ما در تماس باشید

برای هرگونه سؤال یا نیاز به پشتیبانی با ما ارتباط بگیرید.ما همیشه آماده کمک هستیم!

شروع یکپارچه‌سازی

ایمیل — اجباری است. تلگرام یا واتساپ — اختیاری.

نام شما اختیاری
ایمیل اختیاری
موضوع اختیاری
پیام اختیاری
Telegram اختیاری
@
اگر تلگرام را وارد کنید — علاوه بر ایمیل، در تلگرام هم پاسخ می‌دهیم.
WhatsApp اختیاری
فرمت: کد کشور و شماره (برای مثال، +98XXXXXXXXXX).

با فشردن این دکمه، با پردازش داده‌های خود موافقت می‌کنید.