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

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

    مرجع API

    بدء تبرع عام

    يبدأ تبرعًا بعد التحقق من المبلغ والقواعد والحماية؛ ولا يمثل مساهمة مكتملة.

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

    نموذج الوصول

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

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

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

    الطلب

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

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

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

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

    numberالتحقق: 1–1000000؛ بزيادات 0.01 بعملة الحملة.
    donor_country_codeاختياري

    سياق بلد المتبرع المنفصل عن بلد بيع حملة التبرع وعملتها.

    stringالتحقق: رمز ISO2 بأحرف كبيرة.
    emailاختياري

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

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

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

    stringالتحقق: رقم هاتف صالح عندما تتطلبه القناة.
    donor_nameاختياري

    اسم عرض العضو أو المساهم؛ ولا يغيّر ملكية الحساب.

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

    يطلب سلوك المساهمة المجهولة القائم؛ ولا ترسل حقول إخفاء متعارضة.

    booleanالتحقق: يجب ألا يتعارض مع is_anonymous.
    is_anonymousاختياري

    يطلب سلوك المساهمة المجهولة القائم؛ ولا ترسل حقول إخفاء متعارضة.

    booleanالتحقق: يجب ألا يتعارض مع anonymous.
    custom_dataاختياري

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

    objectالتحقق: الحقول المخصصة المهيأة.
    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/donate
    http
    POST /api/public/donate HTTP/1.1
    Host: api.sparkglim.net
    Content-Type: application/json
    
    {
      "campaign_id": "11111111-1111-4111-8111-111111111111",
      "amount": 10,
      "anonymous": true,
      "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