GH GambleHub

تعديلات جزئية وكاملة

TL; د

Refand هي العملية العكسية للكمية التي تم التقاطها. تغلق Full المعاملة بأكملها، وتعود جزئيًا جزءًا (يمكن أن تكون سلسلة جزئية تصل إلى كامل). حرج: رد الأموال إلى المصدر، والتطرف الصارم، وتسجيل الأسباب، والتنسيق مع خطافات الويب/السحب. قياس معدل استرداد الأموال، TtR p95، خطأ استرداد الأموال والقضاء على التكرارات/التناقضات من خلال التسويات التلقائية.

1) المصطلحات والاختلافات الأساسية

استرداد كامل - يُعيد المبلغ الملتزم به بالكامل ('استرداد _ المبلغ = capture_amount').
استرداد جزئي - يعيد جزءًا ('0 <refund_amount <capture_amount')، يسمح للباقي بجزء من إجمالي «التقاط _ المبلغ».
رد الأموال إلى المصدر - العودة إلى طريقة الدفع الأصلية/السكك الحديدية (المفضلة/الإلزامية التنظيمية).
الفراغ - الإلغاء للالتقاط (إذا كانت مدعومة بالقضبان)، لا يعتبر رافعًا.
عكس/رد التكاليف - ميكانيكي البنوك/السكك الحديدية خارج مبادرتك (الخلافات، استرداد التكاليف) - لا ينبغي الخلط بينه وبين الرفض.

2) موعد الإصدار الكامل مقابل الجزئي

كامل:
  • إلغاء الطلب/الخدمة بالكامل، وشطب مكرر، وخطأ في النظام.
  • إلزامية إذا لم تقدم الخدمة (وفقا لقواعد المستهلك/المنظم).
جزئي:
  • الإلغاء الجزئي للخدمة، والتسويات التناسبية (الخصومات، والتعويض عن التأخيرات).
  • قضبان الحدود التقنية (الحد الأقصى لكل عملية) - سلسلة جزئية.
  • حجب لجنة ما بعد الوقائع (حيث يُسمح بالتنظيم) - أقل في كثير من الأحيان في iGaming.
الحل: خياطة مصفوفة «السبب _ طريقة × التعليمات البرمجية × الاختصاص القضائي» → السياسة = كاملةجزئيكلا الحدين، المستوى المطلوب من الموافقة.

3) السياسات والحدود

الاسترداد إلى المصدر = صحيح افتراضياً ؛ الاستثناءات - من خلال حالات الامتثال للمعايير المتعددة الأطراف (المسجلة).
القطع: يُسمح بالحكم بعد أيام من القبض عليه (بالطريقة/الولاية القضائية).
العد الجزئي الأقصى: لا يزيد عن K جزئيًا لكل دفعة (عادةً K ≤ 5).
الحد الأدنى للمبلغ الجزئي: ليس أقل من الحد الأدنى التقني للسكك الحديدية/PSP.

مصفوفة الموافقة:
  • وكيل الدعم: جزئي ≤ X، كامل ≤ Y.
  • المدير/المالية: فوق الحدود، الاستثناءات عبر الطرق.
  • تهدئة المحاولات المتكررة (ضد الارتداد).

4) الهندسة المعمارية وتدفق الأحداث

المكونات:
  • منظم الدفع هو مصدر حقيقة الوضع.
  • خدمة استرداد الأموال - واجهة برمجة التطبيقات، الخصوصية، تنسيق عمليات إعادة التدوير، قطع الأشجار.
  • محولات PSP - تكامل الطريقة.
  • التسوية - التسويات الذاتية، DLQ، التصويبات.
  • دفتر الأستاذ/المحاسبة - النشرات، المنشقون، المقاصة مع التخليص.
  • المخاطر/الامتثال - عمليات التحقق من العقوبات/SoF في سيناريوهات مثيرة للجدل.
التسلسل (جزئي/كامل):

1. استرداد. إنشاء '(API) → التحقق (الحدود، التوازن، السياسة، KYC/SoF إذا لزم الأمر).

2. Генерация idempotency_key ('hash (payment_id + refund_amount + reason + nonce)').

3. مكالمة PSP → «معلقة».

4. → «النجاح »/« الفشل» ؛ عند المهلة - يعيد الدبر بنفس المفتاح.

5. نشر الحدث في Kafka → Ledger، BI، تنبيهات.

6. التسوية التلقائية: رسم خرائط «مزود - استرداد - معرف» للتسجيل.

5) الخصوصية ومكافحة الأخذ

لا يمكن حساب نفس الرجوع مرتين: كل المنطق من خلال التخزين الخفي (KV/Redis + TTL).
المفاتيح على payment_id × الكمية × السبب (وإذا لزم الأمر، «الفهرس الجزئي»).
المعاودات تستخدم نفس المفتاح.
يتم حماية الجزء الموازي بواسطة أقفال مستوى الصف/نسخة متفائلة على الكميات الإجمالية.

Cseudocode:
python def refund(payment_id, amount, reason, idem_key):
if idem_store. exists(idem_key): return idem_store. get(idem_key)
with tx():
p = db. get_payment(payment_id, for_update=True)
assert p. captured_amount - p. refunded_amount >= amount > 0 r = p. create_refund(amount, reason, status='PENDING', idem_key=idem_key)
resp = psp. refund(p. provider_txid, amount, idem_key)
return finalize(r, resp. status, resp. ext_id)

6) نموذج البيانات (الحد الأدنى الكافي)

json
{
"payment_id": "pay_123",
"captured_amount": 150. 00,
"currency": "EUR",
"refunded_amount": 40. 00,
"refunds": [
{
"refund_id": "rf_001",
"type": "partial    full",
"amount": 20. 00,
"reason_code": "PARTIAL_SERVICE",
"idempotency_key": "idem_a1",
"status": "PENDING    SUCCESS    FAILED",
"provider_refund_id": "psp_rf_9xz",
"created_at": "2025-11-03T12:00:00Z",
"credited_at": "2025-11-03T15:05:00Z",
"notes": "ticket #456"
}
],
"flags": {
"refund_to_source": true,
"jurisdiction": "EEA",
"kyc_tier_required": "tier2"
}
}

7) ميزات في قضبان الدفع

بطاقات (فيزا/ماستركارد)

الدعم الكامل/الجزئي ؛ وكثيرا ما تكون جزئية إلى حد ما ؛ تعتمد TtR على بنك العميل (T + 1... T + 5 bp).
تأتي خطابات الويب حول النجاح بسرعة، لكن التسجيل عند الخروج قد يتأخر → نشرح في نماذج الدعم.

A2A/Open المصرفية/RTP

غالبًا ما يكون العائد الفوري (عكس/دفع الائتمان) ؛ بعض مقدمي الخدمات يدعمون فقط كليا أو جزئيا 1.
إلزام صارم بالحساب الأصلي ؛ ويلزم رد الأموال إلى المصدر.

محافظ إلكترونية

عادي كلي/جزئي ؛ دقائق TtR ؛ الحدود الجزئية والحد الأدنى للمبلغ.

قسائم/مدفوعة مسبقًا

عادة، لا تكون سياسة → متاحة للاسترداد إلى المصدر: العودة إلى المحفظة الداخلية أو إعادة إصدار القسيمة (إذا كان المزود يعرف كيف). يتطلب بنود الامتثال.

التشفير

القضبان - متقلبة ؛ ويفضل ألا يستخدم هذا الأسلوب كطريقة للتجديد. إذا سمح بذلك: العودة إلى نفس العنوان/الصرف بأسعار وعمولات موثقة ؛ فحص AML.

8) المحاسبة والتسوية والمالية

دفتر الأستاذ: وظائف «DR Revenue/CR Cash» عند الالتقاط ؛ على رد الأموال - إعادة الشطب. ينعكس جزئي بشكل متناسب.
الاعتراف: في iGaming، يقلل refand من GGR للفترة المقابلة (السياسة المحاسبية).
التسوية: تاجر التسويات اليومية - رد - معرف ↔ provider_refund_id'، الأوضاع، المبالغ، أسعار العملات الأجنبية.
FX: تثبيت منطق الدورات (وقت الاستيلاء أو وقت استرداد الأموال)، عند الاقتضاء ؛ تمسك شبكة الانتشار.

9) مؤشرات الأداء الرئيسية والأهداف والتنبيهات (صحة الاسترداد)

معدل الاسترداد = 'مردود _ Tx/ Captured_Tx'.
نسبة المبلغ المسترد = 'المبلغ المسترد _ المبلغ/ Captured_Amount'.
TtR p95 = p95 ('credited _ at - created_at') حسب الطريقة.
معدل خطأ الاسترداد = «فشل/محاولة» (<0. 3%).
النسبة المئوية للرد إلى المصدر ≥ 95 في المائة (حيثما كان ذلك متاحا).
حوادث الاسترداد المزدوج = 0.

تنبيهات:
  • «TtR p95» أعلى من SLO بطريقة → P2.
  • الارتفاعات بواسطة «معدل الاسترداد» في مزود واحد/BIN → P1 (التحقق من الإمساك/الزوجي).
  • أي «استرداد مزدوج> 0» → P0 (التجميد الفوري للتجديدات التلقائية).

10) شرائح SQL

10. 1 تنقيح الملف الشخصي

sql
SELECT
DATE_TRUNC('day', r. created_at) AS d,
method_code, provider,
COUNT() FILTER (WHERE r. status='SUCCESS')  AS refunds_ok,
COUNT() FILTER (WHERE r. status='FAILED')  AS refunds_fail,
SUM(r. amount) AS refunded_amount,
PERCENTILE_CONT(0. 95) WITHIN GROUP (ORDER BY EXTRACT(EPOCH FROM (r. credited_at - r. created_at))) AS ttr_p95_sec
FROM refunds r
JOIN payments p ON p. payment_id = r. payment_id
GROUP BY 1,2,3;

10. 2 التحكم في الرصيد الجزئي

sql
SELECT p. payment_id,
p. captured_amount,
SUM(r. amount) AS refunded_sum,
(p. captured_amount - SUM(r. amount)) AS refundable_left
FROM payments p
LEFT JOIN refunds r ON r. payment_id = p. payment_id AND r. status IN ('SUCCESS','PENDING')
GROUP BY 1,2
HAVING (p. captured_amount - SUM(r. amount)) < 0;

11) UX والدعم

نماذج الرسائل بالطرق: نشرح التأخير المحتمل في تفريغ البطاقات، A2A - على الفور تقريبًا.
الأوضاع في المكتب: 'إصدار → في طور الإعداد → العودة' ؛ أظهر تاريخ التجنيد المتوقع.
الأسباب (reason_code) - مقروءة بشرية: «شطب مكرر»، «إلغاء الخدمة»، «تعويض جزئي».
الخدمة الذاتية جزئية - آمنة فقط مع حدود وقواعد واضحة.

12) المخاطر والامتثال

مكافحة الغسيل: ينبغي ألا تتحول إعادة التدوين إلى ناتج إلى قناة بديلة ؛ الاستثناءات بموافقة المنظمة.
الجزاءات/REP: للعودة إلى الحسابات/التفاصيل «الحمراء» - التحقق الإلزامي.
DSAR/الاحتفاظ - تخزين آثار التجديدات ضمن سياسة الاحتفاظ.
القواعد المحلية: شروط وإجراءات العائدات (مثل أنظمة المستهلك) - الواردة في السياسة العامة.

13) الأخطاء المتكررة وكيفية تجنبها

الرجوع المزدوج بسبب الافتقار إلى الخصوصية وكتب الويب المتكررة → مفتاح/حالة تخزين نفس الجرم، تحقق من الرصيد.
جزئي> توازن → إصدار قفل صف/متفائل وفحوصات صارمة.
استرداد الأموال عبر الطرق دون إذن الامتثال → ينتهك استرداد الأموال إلى المصدر.
خلط الفراغ واسترداد الأموال في التقارير → تشويه مؤشرات الأداء الرئيسية.
لا توجد فحوصات تلقائية → الثقوب السوداء بين PSP ودفتر الأستاذ الخاص بك.

14) كتب اللعب

زيادة في إرجاع المزود → التحقق من حالات فشل التفويض/نسخ الالتقاط، وتشغيل الفشل، والاتصال بـ PSP.
التعويض الجزئي الشامل (الحملة) → رفع الحد الجزئي، وتمكين عمليات المجموعة، وتعزيز التسويات.
خطأ خطافات الويب → التحول إلى الاقتراع، وزيادة خصوصية TTL، وتأجيل عمليات التجديد التلقائي.
الاستثناء من رد الأموال إلى المصدر (نادر) → تصعيد MLRO، والدفع الموثق، و «comp _ corporated = true».

15) حالات الاختبار (UAT/Prod)

1. الاسترداد الكامل بعد التقاط واحد → إعادة ضبط الرصيد بشكل صحيح.
2. دفعة جزئية (3 ×) → مجموع ≤ التقاط ؛ ثم ممتلئة للباقي.
3. الخصوصية - كرر نفس الاستفسار → 1 النتيجة.
4. ارتداد الويب: 3 إخطارات متطابقة → شطب/رصيد واحد.
5. التسويات: عدم التطابق الاصطناعي → التنبيه والتصحيح التلقائي.
6. تقييد الحقوق: لا يمكن للوكيل أن يتجاوز الحد الجزئي.
7. قطع: محاولة إعادة التأهيل المتأخرة → تصحيح الفشل وقطع الأشجار.

16) قائمة التنفيذ المرجعية

  • السياسات الكاملة/الجزئية + المبالغ المستردة إلى المصدر حسب الولاية القضائية/الطريقة.
  • الخصوصية، التراجعات، الخطابات الشبكية والاقتراع، DLQ.
  • نموذج البيانات مع ما تبقى للعودة reason_code.
  • دفتر الأستاذ والتسويات التلقائية اليومية.
  • KPI/لوحة القيادة: معدل الاسترداد، TtR، الخطأ، الاسترداد المزدوج = 0.
  • الحقوق ومصفوفة التطبيق، نماذج الدعم.
  • حالات اختبار UAT وتنبيهات مستوى الإنتاج.

موجز

وتمثل إدارة إعادة التشغيل ضبطاً صارماً للعمليات: استرداد الأموال من مصدر إلى آخر، والخصوصية، ونموذج البيانات الشفاف، والتوفيق التلقائي، والسياسات الجزئية/الكاملة المفهومة. مع مثل هذه الأساسيات، فإنك تحافظ على انخفاض TtR، والأخطاء بالقرب من الصفر، وتكرار المستحيل، والامتثال والتمويل متزامنان مع أهداف الأعمال.

Contact

اتصل بنا

تواصل معنا لأي أسئلة أو دعم.نحن دائمًا جاهزون لمساعدتكم!

Telegram
@Gamble_GC
بدء التكامل

البريد الإلكتروني — إلزامي. تيليغرام أو واتساب — اختياري.

اسمك اختياري
البريد الإلكتروني اختياري
الموضوع اختياري
الرسالة اختياري
Telegram اختياري
@
إذا ذكرت تيليغرام — سنرد عليك هناك أيضًا بالإضافة إلى البريد الإلكتروني.
WhatsApp اختياري
الصيغة: رمز الدولة + الرقم (مثال: +971XXXXXXXXX).

بالنقر على الزر، فإنك توافق على معالجة بياناتك.