واجهة API للمنتجات المحفظة الموحدة مقابل محفظة التحويل
المحفظة الموحدة مقابل محفظة التحويل
مقارنة تقنية بين نموذجَي المحفظة المستخدمين لربط رصيد اللاعب لدى المشغّل بواجهة API لألعاب الكازينو: من يحتفظ بالأموال، وأي طلبات تعبر الشبكة أثناء الرهان، وكيف تُستعاد الأعطال، وما عليك بناؤه من جهتك.
نظرة سريعة
| الجانب | المحفظة الموحدة | محفظة التحويل |
|---|---|---|
| حفظ الرصيد | قاعدة بياناتك تحفظ الرصيد الوحيد. لا يحتفظ المزوّد أبدًا بأموال اللاعبين. | يحتفظ المزوّد برصيد لعب منفصل. تنتقل الأموال دخولًا وخروجًا بطلبات التحويل. |
| الطلبات أثناء الرهان | كل رهان وربح يُطلق استدعاءً من خادم إلى خادم نحوك (الرصيد، الخصم، الإضافة، التراجع). | لا شيء. تعمل اللعبة على الرصيد لدى المزوّد. تحدث الطلبات فقط عند التحويل دخولًا وخروجًا. |
| التوفّر المطلوب | يجب أن تجيب نقاط نهاية محفظتك عن كل استدعاء، عادةً خلال بضع مئات من الملّي ثانية. إذا توقّفت، يتوقّف اللعب. | مطلوب فقط للتحويلات. تستمر الجولات إذا انقطع نظامك لفترة قصيرة. |
| نموذج الاتساق | دفتر حساباتك هو المصدر الموثوق الفوري. تحتاج جولات اللعب فقط إلى مطابقة، لا الأرصدة. | دفترا حسابات يتطابقان فقط عند حدود التحويل. يحتاج إلى مطابقة على مستوى التحويلات. |
| استعادة الأعطال | تُحل حالات انتهاء المهلة بإعادة محاولات متكرّرة النتيجة وطلبات تراجع مرتبطة بمعرّف المعاملة. | التحويلات على مرحلتين: معلّق، ثم نجاح أو فشل. يحسم استعلام الحالة النتائج غير المعروفة. |
| جهد التكامل | أعلى. تبني وتشغّل خدمة استدعاء منخفضة التأخير مع تكرار آمن ودفتر حسابات. | أقل. تستدعي ثلاث أو أربع نقاط نهاية REST، دون حركة واردة تحتاج إلى تأمين أو توسعة. |
| تجربة اللاعب | رصيد واحد بلا خطوة تحويل. يناسب المكافآت واللعب عبر المنتجات وعرض الرصيد المباشر. | تُنقل الأموال قبل اللعب وتُعاد بعده. يضيف تأخيرًا قصيرًا وخطر بقاء رصيد عالق إذا غادر اللاعب في منتصف الجلسة. |
| الملاءمة المعتادة | المشغّلون الذين يملكون محفظتهم أو منصتهم ويريدون تحكّمًا صارمًا في الأموال والعروض. | المشغّلون الذين يريدون إطلاقًا سريعًا أو لا يملكون خدمة محفظة فورية. |
المحفظة الموحدة (Seamless)
في نموذج المحفظة الموحدة (Seamless) يكون نظامك هو المحفظة. عندما يضع اللاعب رهانًا تستدعي SSG API نقطة الاستدعاء لديك، فتغيّر الرصيد في دفترك وتجيب بالرصيد الجديد. لا تغادر الأموال قاعدة بياناتك أبدًا.
مسار الطلبات
- الإطلاق: تطلب الخلفية لديك من SSG رابط لعبة مع معرّف اللاعب ورمز الجلسة.
- الرهان: لكل جولة تستدعي SSG طلب debit بمعرّف txId فريد. تتحقّق من الرصيد، وتكتب سجل الدفتر، وتعيد الرصيد الجديد.
- الربح: تستدعي SSG طلب credit بمبلغ الدفع (قد يكون صفرًا) للجولة نفسها.
- الفشل: إذا انتهت مهلة طلب تعيد SSG المحاولة بمعرّف txId نفسه، وبعد حد إعادة المحاولة ترسل rollback.
طرق الاستدعاء (توضيحية)
| الطريقة | الغرض | الحقول الأساسية | متكرّر النتيجة |
|---|---|---|---|
balance | أعد رصيد اللاعب الحالي. | playerId, currency | نعم (قراءة فقط) |
debit | وضع رهان: اطرح المبلغ. | playerId, txId, roundId, gameId, amount, currency | حسب txId |
credit | تسوية ربح: أضف المبلغ. | playerId, txId, roundId, amount, currency | حسب txId |
rollback | ألغِ خصمًا أو إضافة سابقة بعد خطأ. | txId, refTxId | حسب txId |
مثال على طلب debit
{
"method": "debit",
"playerId": "p_839201",
"txId": "tx_20261007_000184",
"roundId": "r_77f3a1",
"gameId": "slots_fruit_01",
"currency": "MYR",
"amount": "2.50",
"ts": 1791338577,
"sign": "hex(HMAC-SHA256(secret, canonical))"
}مثال على الاستجابة
{
"status": "OK",
"txId": "tx_20261007_000184",
"balance": "97.50",
"currency": "MYR"
}
// errors: INSUFFICIENT_FUNDS, PLAYER_NOT_FOUND,
// DUPLICATE_TX (return original result), INTERNAL_ERRORقواعد يجب أن تتبعها خدمة المحفظة
- تكرار الطلبات الآمن
- طلب debit أو credit مكرّر بمعرّف txId نفسه يجب أن يعيد النتيجة الأصلية دون تحريك المال مجددًا. افرض ذلك بفهرس فريد على txId.
- كتابة ذرّية في الدفتر
- تحقّق من الرصيد، وأدرج سجل الدفتر، وحدّث الرصيد في معاملة قاعدة بيانات واحدة، فلا يمكن لرهانين متزامنين أن يتجاوزا الرصيد.
- تراجع قبل الخصم
- قد يصل rollback لمعرّف txId لم تره قط لأن طلب الخصم الأصلي انتهت مهلته. خزّن علامة حذف ليُرفض أي debit متأخر بذلك المعرّف.
- ميزانية زمن الاستجابة
- استهدف p99 أقل من 500 ملّي ثانية شاملًا الشبكة. اجعل مسار الاستدعاء قراءة مفهرسة واحدة وكتابة واحدة، وأبعد استعلامات التقارير عنه.
- صيغة المبالغ
- تعامل مع المبالغ كنصوص عشرية أو وحدات صغرى صحيحة. لا تستخدم الفاصلة العائمة أبدًا، وتحقّق من العملة مقابل حساب اللاعب.
- المكافآت واللفات المجانية
- اللفة المجانية خصم بقيمة 0 يتبعه إضافة بقيمة الربح. افصل أرصدة العروض الترويجية عن الرصيد النقدي في دفترك.
- الأمان
- تحقّق من توقيع HMAC-SHA256 على الطلب القانوني، وارفض الطوابع الزمنية القديمة، واسمح فقط بعناوين IP المصدر الخاصة بـ SSG، واشترط TLS 1.2 أو أعلى.
- المطابقة
- قارن تقارير الجولات اليومية من SSG بدفترك حسب roundId. تشير الفروق إلى استدعاءات أو تراجعات فائتة.
محفظة التحويل
في نموذج محفظة التحويل يحتفظ المزوّد برصيد لعب لكل لاعب. تنقل الخلفية لديك الأموال إلى الداخل قبل اللعب وإلى الخارج بعده. لا توجد استدعاءات إلى نظامك أثناء اللعب، فتحتاج فقط إلى طلبات REST صادرة.
مسار الطلبات
- التحويل للداخل: تستدعي الخلفية لديك transferIn بمعرّف txId فريد والمبلغ. النتيجة PENDING أو SUCCESS.
- اللعب: أطلق اللعبة. كل الرهانات والأرباح تغيّر الرصيد لدى المزوّد دون استدعاءات إليك.
- التحويل للخارج: عندما يغادر اللاعب، استدعِ transferOut لكامل الرصيد وأضفه إلى دفترك عند SUCCESS.
- نتيجة غير معروفة: إذا انتهت مهلة طلب تحويل، استعلم عبر getTransferStatus بمعرّف txId نفسه قبل أي إجراء آخر.
طرق API (توضيحية)
| الطريقة | الغرض | الحقول الأساسية | متكرّر النتيجة |
|---|---|---|---|
transferIn | انقل الأموال من محفظتك إلى رصيد اللعب لدى اللاعب. | playerId, txId, amount, currency | حسب txId |
transferOut | أعد الأموال من رصيد اللعب إلى محفظتك. | playerId, txId, amount | all | حسب txId |
getBalance | اقرأ رصيد اللعب لدى اللاعب. | playerId | نعم (قراءة فقط) |
getTransferStatus | أعد PENDING أو SUCCESS أو FAILED لمعرّف txId. | txId | نعم (قراءة فقط) |
قواعد يجب أن تتبعها الخلفية لديك
- معرّف txId واحد لكل عملية
- أنشئ معرّف txId قبل الطلب الأول وأعد استخدامه في كل إعادة محاولة. لا تُنشئ معرّفًا جديدًا حتى تُعرف حالة السابق.
- اخصم من دفترك أولًا
- عند التحويل للداخل، احجز المبلغ في دفترك قبل استدعاء SSG، ثم أكّده أو حرّره عندما تصبح الحالة نهائية.
- استرجع الأرصدة العالقة
- شغّل مهمة تبحث عن اللاعبين الذين لديهم رصيد لعب دون جلسة نشطة، ثم تحوّله للخارج. يغطي ذلك اللاعبين الذين يغلقون المتصفح في منتصف الجلسة.
- متطلبات الرهان والتقارير
- لأنك لا ترى الرهانات مباشرة، احسب حجم الرهانات ومتطلبات رهان المكافآت وحدود المخاطر من تقارير الجولات المسحوبة من SSG، لا من الاستدعاءات.
- المطابقة
- طابق كل تحويل للداخل والخارج مع سجلات SSG حسب txId، ونبّه عند وجود أي PENDING أقدم من مهلتك.
- الأمان
- وقّع الطلبات بـ HMAC-SHA256، واتصل فقط عبر TLS 1.2 أو أعلى، واحفظ مفاتيح API في مخزن أسرار، وقيّد خوادمك المسموح لها بالاتصال بـ SSG.
سيناريوهات الأعطال
| السيناريو | المحفظة الموحدة | محفظة التحويل |
|---|---|---|
| انتهاء مهلة الشبكة | أثناء الرهان تعيد SSG المحاولة بمعرّف txId نفسه، ثم ترسل rollback بعد حد إعادة المحاولة. يجب أن تكون معالجتك متكرّرة النتيجة. | تتأثر التحويلات فقط. استعلم عبر getTransferStatus بمعرّف txId نفسه، ثم تصرّف. |
| نظامك متوقف | لا يستطيع اللاعبون بدء الجولات أو متابعتها. يُتراجع عن الجولات المفتوحة. | يواصل اللاعبون اللعب برصيد اللعب الحالي. تُحظر التحويلات الجديدة. |
| طلب مكرّر | أعد الاستجابة المخزّنة لذلك txId ولا تغيّر شيئًا. | أعد النتيجة المخزّنة لذلك txId ولا تغيّر شيئًا. |
| انقطاع اللاعب في منتصف الجولة | تكتمل الجولة لدى المزوّد ويُرسل طلب الإضافة كالمعتاد. | تكتمل الجولة وتبقى الأموال في رصيد اللعب حتى التحويل للخارج أو مهمة الاسترجاع. |
| عدم تطابق الرصيد | عادةً استدعاء أو تراجع فائت. يُكتشف بمقارنة تقارير الجولات حسب roundId. | عادةً تحويل عالق أو معلّق. يُكتشف بمقارنة التحويلات حسب txId. |
أيهما تختار
اختر المحفظة الموحدة إذا
- كنت تشغّل بالفعل خدمة محفظة أو دفتر حسابات فورية.
- كنت تحتاج رصيدًا واحدًا عبر المراهنات الرياضية والكازينو والعروض.
- كنت تحتاج بيانات الرهان المباشرة للمخاطر أو متطلبات المكافآت أو حدود اللعب المسؤول.
- كان فريقك قادرًا على تشغيل خدمة منخفضة التأخير عالية التوفّر.
اختر محفظة التحويل إذا
- كنت تريد إطلاقًا سريعًا بأقل جهد هندسي.
- لم تكن لديك خدمة محفظة فورية بعد.
- كنت تفضّل الطلبات الصادرة فقط، دون استدعاء عام يحتاج إلى تأمين.
- كانت فترات الأرصدة العالقة القصيرة مقبولة وتستطيع تشغيل مهمة استرجاع.
يبدأ كثير من المشغّلين بمحفظة التحويل للتشغيل، ثم ينتقلون إلى المحفظة الموحدة عندما تجهز خدمة محفظتهم. اسألنا كيف يتم الانتقال على مراحل.
قائمة تحقّق التكامل
- فهرس فريد على txId ومعالجات متكرّرة النتيجة لكل طلب يحرّك المال
- فحص توقيع HMAC وهامش للطابع الزمني وقائمة IP مسموح بها
- مبالغ آمنة عشريًا والتحقق من العملة
- اختبارات انتهاء المهلة وإعادة المحاولة والتراجع في بيئة الاختبار، بما فيها إعادة محاولة متأخرة
- مهمة مطابقة يومية حسب roundId (الموحدة) أو txId (التحويل)
- المراقبة والتنبيهات: زمن استجابة الاستدعاءات، ومعدل الأخطاء، والتحويلات المعلّقة، والأرصدة العالقة
تحدّث مع مهندس تكامل
يمكننا مرافقة مهندسيك في بيئة الاختبار ومساعدتك في اختيار النموذج المناسب لمنصتك. نضمن التكامل في أقل من سبعة أيام.
راسل فريق المبيعات تحدّث معنا على Telegram العودة إلى واجهة API للمنتجات
sales@ssggaming.com