مرجع API
بدء شراء التذاكر
يتحقق من التذكرة والعدد والمشتري وحماية المتصفح ثم يعيد دفع الخادم القائم أو نتيجة التذكرة المجانية.
https://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/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"
}الاستجابة
{
"success": true,
"data": {
"id": "11111111-1111-4111-8111-111111111111",
"status": "pending"
}
}{
"success": false,
"error": "<ERROR_MESSAGE>"
}تستخدم أخطاء التحقق والصلاحيات والموارد والأعطال حالة HTTP وبنية الخطأ الخاصة بالمعالج.
الحدود وإعادة المحاولة
الحد الافتراضي: 100 طلب لكل عنوان IP خلال 60 ثانية، مع ضوابط إضافية حسب المورد.
توافق المصدر
تتطلب العمليات المصرح بها اختبارًا خاصًا بالحساب.
server/src/api/router.tsserver/src/api/routes/public.ts