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

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

    مرجع API

    بدء تصويت عام

    يتحقق من حملة التصويت العامة والمرشح المؤهل والعدد والحماية قبل بدء الدفع المركزي.

    POSThttps://api.sparkglim.net/api/public/vote

    نموذج الوصول

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

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

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

    الطلب

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

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

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

    المرشح المختار ضمن هذه الحملة؛ ويتحقق الخادم من الموافقة وقواعدها.

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

    عدد الأصوات للمرشح؛ يحدد الخادم السعر الصحيح ويسجل الأصوات المكتملة.

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

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

    stringالتحقق: قيمة غير فارغة.
    emailاختياري

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

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

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

    enumالتحقق: الطريقة المهيأة فقط.
    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/vote
    http
    POST /api/public/vote HTTP/1.1
    Host: api.sparkglim.net
    Content-Type: application/json
    
    {
      "campaign_id": "11111111-1111-4111-8111-111111111111",
      "participant_id": "33333333-3333-4333-8333-333333333333",
      "vote_count": 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