الانتقال إلى الوثائق
SparkGlimDeveloper
مركز التكامل بمساعدة الذكاء الاصطناعي
SparkGlimSparkGlim للمطوّرين
ابحث في جميع الوثائق

جرّب موضوعًا بلغتك أو مسار API دقيقًا.

    مرجع API

    بدء شراء التذاكر

    يتحقق من التذكرة والعدد والمشتري وحماية المتصفح ثم يعيد دفع الخادم القائم أو نتيجة التذكرة المجانية.

    POSThttps://api.sparkglim.net/api/public/tickets/purchase

    نموذج الوصول

    نموذج الوصول
    وصول عام مع تحقق
    التوفر الموثّق
    منفذ في المصدر

    التوفر موثق من المصدر وليس ضمانًا لتشغيل الإنتاج.

    افتح رابط الدفع المعاد؛ ويتحكم SparkGlim Server في الأسعار والوسائل والتحقق والتنفيذ، والعودة مجرد تنقل.

    الطلب

    الاسمالنوعالتحقق من المدخلات
    campaign_idمطلوب

    سجل حملة قائم ضمن حساب الطالب وأي نطاق أضيق لمفتاح الحملة.

    stringالتحقق: UUID.
    ticket_idمطلوب

    نوع التذكرة المختار التابع للحملة المحددة؛ يتحقق الخادم من الحالة والسعة والسعر.

    stringالتحقق: UUID.
    quantityمطلوب

    عدد التذاكر المطلوبة؛ ويفرض الخادم المخزون وحدود الشراء للفرد.

    integerالتحقق: 1–100.
    phone_numberمطلوب

    هاتف المشارك؛ وقد تتطلب وسائل الدفع وقواعد الحملة رقمًا دوليًا صحيحًا.

    stringالتحقق: رقم هاتف صالح وغير فارغ.
    emailاختياري

    بريد تواصل يستخدمه المسار المهيأ؛ ولا يمنح وحده صلاحية الوصول.

    stringالتحقق: عنوان بريد إلكتروني.
    discount_codeاختياري

    اعتماد خصم أو دعوة قائم وخاص بالحملة يعيد الخادم التحقق منه قبل الشراء.

    stringالتحقق: قيمة غير فارغة بعد حذف المسافات الطرفية.
    invite_codeاختياري

    اعتماد خصم أو دعوة قائم وخاص بالحملة يعيد الخادم التحقق منه قبل الشراء.

    stringالتحقق: قيمة غير فارغة بعد حذف المسافات الطرفية.
    luggage_quantityاختياري

    كمية أمتعة لحدث يدعم فعلًا خيار الأمتعة المهيأ.

    integerالتحقق: >=0.
    attendee_informationاختياري

    إجابات تطابق حقول الحملة الفعلية والقيم المطلوبة والخيارات المدعومة.

    objectالتحقق: قيم نصية تطابق الحقول المهيأة.
    payment_channelاختياري

    تفضيل وسيلة اختياري؛ لا تستخدم إلا الوسائل المفعلة لبلد البيع والعملة والتاجر الفعليين.

    enumالتحقق: card | mobile_money | apple_pay | bank_transfer | crypto؛ يتحكم الخادم في الإتاحة.
    network_codeاختياري

    اختيار شبكة جوال مهيأ عندما تتطلبه وسيلة الدفع المحددة.

    stringالتحقق: الشبكة المهيأة.
    is_appاختياري

    سياق العميل القائم لاختيار تهيئة الويب أو التطبيق؛ ولا يمنح صلاحيات إضافية.

    booleanالتحقق: سياق العميل.
    web_abuse_contextمطلوب

    بيانات حماية المتصفح والجهاز القائمة والمطلوبة قبل تهيئة الدفع العام؛ ولا تحل محل تفويض الخادم.

    objectالتحقق: كائن صارم؛ JSON للحقل device_details <=12000 حرف.
    web_abuse_context.device_idمطلوب

    إشارة حماية قائمة للمتصفح أو الجهاز يقبلها مخطط حماية الدفع العام الحالي.

    stringالتحقق: 12–160.
    web_abuse_context.device_fingerprintمطلوب

    إشارة حماية قائمة للمتصفح أو الجهاز يقبلها مخطط حماية الدفع العام الحالي.

    stringالتحقق: 12–160.
    web_abuse_context.browser_signatureاختياري

    إشارة حماية قائمة للمتصفح أو الجهاز يقبلها مخطط حماية الدفع العام الحالي.

    string|nullالتحقق: 12–160.
    web_abuse_context.hardware_signatureاختياري

    إشارة حماية قائمة للمتصفح أو الجهاز يقبلها مخطط حماية الدفع العام الحالي.

    string|nullالتحقق: 12–160.
    web_abuse_context.device_detailsاختياري

    إشارة حماية قائمة للمتصفح أو الجهاز يقبلها مخطط حماية الدفع العام الحالي.

    objectالتحقق: كائن JSON.
    web_abuse_context.client_pattern_detectedاختياري

    إشارة حماية قائمة للمتصفح أو الجهاز يقبلها مخطط حماية الدفع العام الحالي.

    booleanالتحقق: حماية الجهاز القائمة.
    client_attempt_idاختياري

    معرّف عملية ثابت لاستعادة المحاولة القائمة ورفض محاولات الإعادة المختلفة.

    stringالتحقق: هوية عملية ثابتة وموحّدة.
    return_pathاختياري

    وجهة عودة نسبية على الموقع الحالي الموثق بعد الدفع المركزي.

    stringالتحقق: مسار نسبي من المصدر نفسه؛ دون // أو شرطة مائلة عكسية.

    الطلب

    تصف الأمثلة العقد ولا تُنفذ. استخدم سجلات اختبار مصرحًا بها، ولا تلصق أسرارًا حقيقية في هذه الصفحات.

    POST /api/public/tickets/purchase
    http
    POST /api/public/tickets/purchase HTTP/1.1
    Host: api.sparkglim.net
    Content-Type: application/json
    
    {
      "campaign_id": "11111111-1111-4111-8111-111111111111",
      "ticket_id": "22222222-2222-4222-8222-222222222222",
      "quantity": 1,
      "phone_number": "+233200000000",
      "web_abuse_context": {
        "device_id": "<EXISTING_DEVICE_ID>",
        "device_fingerprint": "<EXISTING_DEVICE_FINGERPRINT>"
      },
      "client_attempt_id": "example_stable_attempt_0001"
    }

    الاستجابة

    استجابة النجاح · HTTP 200
    json
    {
      "success": true,
      "data": {
        "id": "11111111-1111-4111-8111-111111111111",
        "status": "pending"
      }
    }
    استجابة الخطأ · HTTP 400
    json
    {
      "success": false,
      "error": "<ERROR_MESSAGE>"
    }

    تستخدم أخطاء التحقق والصلاحيات والموارد والأعطال حالة HTTP وبنية الخطأ الخاصة بالمعالج.

    الحدود وإعادة المحاولة

    الحد الافتراضي: 100 طلب لكل عنوان IP خلال 60 ثانية، مع ضوابط إضافية حسب المورد.

    توافق المصدر

    تتطلب العمليات المصرح بها اختبارًا خاصًا بالحساب.

    • server/src/api/router.ts
    • server/src/api/routes/public.ts