ما هو HTTP 402 (الدفع مطلوب)؟

باختصار: الخادم يقول "يجب عليك الدفع قبل أن يصبح هذا المورد متاحاً".

تنبيه: لا يزال الرمز 402 علامة Reserved (محجوز) في مواصفات HTTP، لذا فإن العديد من المتصفحات والمواقع لا تظهره أبداً.

فهم HTTP 402: الدليل الشامل

يعد رمز الحالة HTTP 402 Payment Required أحد أكثر الرموز غموضاً وعدم استخداماً في مواصفات HTTP. على عكس الرموز المعروفة مثل 404 (لم يتم العثور عليه) أو 401 (غير مصرح به)، تم تصميم الرمز 402 مع رؤية لتمكين آليات الدفع الأصلية مباشرة داخل الويب.

عندما يعيد الخادم استجابة 402، فإنه يرسل رسالة واضحة: "هذا المورد موجود، وقد تكون بيانات اعتمادك صحيحة، ولكن يلزم الدفع للوصول إليه". هذا يختلف أساساً عن رموز أخطاء العميل 4xx الأخرى التي تشير عادةً إلى مشاكل في المصادقة أو التفويض.

تاريخ HTTP 402

يتمتع رمز الحالة 402 بتاريخ رائع يعكس التفاؤل المبكر بشأن التجارة عبر الويب منذ بداياتها.

التسعينيات: الرؤية الأصلية

تم تضمين HTTP 402 في أول مواصفات HTTP/1.1 (RFC 2068) المنشورة في عام 1997، مع ملاحظة صريحة بأنها "محجوزة للاستخدام المستقبلي". في ذلك الوقت، كان يُعتقد أنه مع تطور التجارة الإلكترونية، سيكون من الضروري وجود طريقة موحدة لطلب المدفوعات. توقع مهندسو HTTP مستقبلاً تكون فيه المدفوعات الرقمية الصغيرة شائعة.

العقد الأول والثاني من القرن الحادي والعشرين: فترة الخمول

على الرغم من كونه جزءاً من المواصفات لأكثر من عقدين، إلا أن الرمز 402 ظل غير مستخدم تقريباً. أدى نقص أنظمة الدفع الرقمية الموحدة وتعقيد تنفيذ تدفقات الدفع عبر المنصات إلى قيام المواقع بتطوير تدفقات دفع خاصة بها.

عقد 2020: النهضة

مع ظهور العملات المشفرة، والعملات المستقرة مثل USDC، وبروتوكولات مثل x402، وجد رمز الحالة 402 أخيراً غرضه. توفر تقنية الـ blockchain الحديثة القطعة المفقودة من اللغز: طبقة دفع موحدة وقابلة للبرمجة يمكن أن تعمل بسلاسة مع HTTP.

بماذا يختلف عن 401 و 403 و 404؟

فهم الاختلافات بين رموز الحالة هذه أمر بالغ الأهمية لتطوير الويب وتصميم واجهة برمجة التطبيقات (API) بشكل صحيح.

الحالة المعنى السيناريو الشائع الإجراء المطلوب من المستخدم
401 Unauthorized المصادقة مطلوبة لم يتم تسجيل الدخول، انتهت صلاحية الرمز تسجيل الدخول أو تحديث بيانات الاعتماد
403 Forbidden تمت المصادقة ولكن غير مسموح الحساب يفتقر إلى الأذونات طلب الوصول من المسؤول
402 Payment Required الدفع مطلوب الدفع مقابل المشاهدة، مدفوعات صغيرة إكمال عملية الدفع
404 Not Found المورد غير موجود رابط معطل، تم إزالة المحتوى التحقق من الرابط أو الاتصال بالدعم

الاختلافات الرئيسية

لماذا يندر رؤية الرمز 402؟

على الرغم من كونه جزءاً من مواصفات HTTP منذ عام 1997، إلا أن اعتماد الرمز 402 كان منخفضاً للغاية لعدة عوامل:

1. غياب بروتوكولات الدفع القياسية

حددت مواصفات HTTP رمز الحالة، لكنها لم تفرض أبداً كيف يجب إجراء الدفع. وبدون رؤوس دفع موحدة أو تنسيقات طلبات أو هياكل استجابة، كانت كل عملية تنفيذ غير متوافقة مع الأخرى.

2. تعقيد المدفوعات التقليدية

تتطلب مدفوعات بطاقات الائتمان عمليات تكامل معقدة مع معالجي الدفع، والامتثال لمعايير PCI، ومنطق الفواتير المتكررة، وأنظمة منع الاحتيال. جعلت هذه التكاليف الثابتة استخدام الرمز 402 للمعاملات الصغيرة غير عملي.

3. احتكاك المدفوعات الصغيرة (Micropayments)

أنظمة الدفع التقليدية لها حد أدنى من رسوم المعاملات، مما يجعل المدفوعات الصغيرة (أقل من دولار واحد) غير مجدية اقتصادياً. إذا كانت المعاملة تكلف 0.30 دولاراً، فليس من المنطقي فرض 0.05 دولار مقابل الوصول إلى مقال.

4. الحلول البديلة

طورت الشركات حلولاً بديلة: نماذج الاشتراك، المحتوى القائم على الإعلانات، رموز الوصول القائمة على OAuth، أو جدران الدفع المخصصة التي تعيد استجابات 200 OK مع ضوابط وصول قائمة على JavaScript.

المواصفات الفنية لـ HTTP 402

وفقاً لـ RFC 9110 (مواصفات HTTP الحالية)، يتم تعريف رمز الحالة 402 كما يلي:

RFC 9110 القسم 15.5.3:
"رمز الحالة 402 (الدفع مطلوب) محجوز للاستخدام المستقبلي."

رؤوس الاستجابة

على الرغم من عدم توحيدها رسمياً، تشمل عمليات التنفيذ الشائعة ما يلي:

رؤوس بروتوكول x402

يقوم بروتوكول x402 بتوحيد هذه الرؤوس من خلال نظام شامل للتفاوض بشأن المدفوعات. عندما تتلقى استجابة 402 من خادم يدعم x402، فإن الاستجابة تحتوي على جميع المعلومات اللازمة لإكمال عملية الدفع تلقائياً.

حالات الاستخدام في العالم الحقيقي لـ HTTP 402

رمز الحالة 402 مناسب بشكل خاص للعديد من حالات الاستخدام الناشئة:

1. تسييل واجهات برمجة التطبيقات (APIs)

فرض رسوم على كل استدعاء لواجهة برمجة التطبيقات باستخدام الرمز 402. ادفع فقط مقابل ما تستخدمه لخدمات الذكاء الاصطناعي، أو واجهات بيانات، أو ميزات مميزة دون الحاجة إلى اشتراك.

2. المدفوعات الصغيرة للمحتوى

فتح المقالات الإخبارية، أو الأبحاث، أو المحتوى المتميز بدفعة صغيرة. لا توجد اشتراكات، فقط ادفع مقابل المحتوى الفردي.

3. المدفوعات من آلة إلى آلة (M2M)

تمكين الوكلاء المستقلين أو الروبوتات من الوصول إلى الموارد المدفوعة وإجراء المدفوعات دون تدخل بشري. توفر استجابة 402 كل ما يلزم لمعالجة الدفع الآلي.

4. الخدمات اللامركزية

يمكن لتطبيقات Web3 استخدام الرمز 402 لتقييد الوصول إلى الموارد اللامركزية، مع تسوية المدفوعات على الشبكة باستخدام USDC أو غيرها من العملات المستقرة.

5. الألعاب والسلع الرقمية

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

دعم المتصفحات والمنصات

تتعرف جميع المتصفحات الحديثة على 402 كرمز حالة HTTP صالح، ولكنها لا تملك وظائف معالجة مدمجة.

المنصة الحالة ملاحظات
Chrome/Edge ✅ معترف به يظهر كخطأ عميل
Firefox ✅ معترف به يظهر كخطأ عميل
Safari ✅ معترف به يظهر كخطأ عميل
Node.js/fetch ✅ دعم كامل يمكن معالجته برمجياً
cURL ✅ دعم كامل يعيد رمز الحالة 402

بينما لا تتعامل المتصفحات تلقائياً مع مدفوعات 402، يمكن لمكتبات العميل أو ملحقات المتصفح اعتراض استجابات 402 لبدء تدفقات الدفع.

كيف يحول x402 الرمز 402 إلى تجربة دفع حقيقية

هذا هو بالضبط ما يحاول x402 حله: تحويل إشارة "الدفع مطلوب" إلى تجربة دفع تلقائية وسلسة.

كيف يعمل x402 مع HTTP 402

  1. الطلب: يطلب العميل مورداً محمياً.
  2. استجابة 402: يعيد الخادم 402 مع تفاصيل الدفع في الرؤوس.
  3. الدفع: تقوم محفظة العميل بتوقيع معاملة دفع بعملة USDC.
  4. التكرار: يعيد العميل إرسال الطلب مع إثبات الدفع في الرؤوس.
  5. الوصول: يتحقق الخادم من الدفع ويعيد المورد.

تستغرق العملية برمتها ثوانٍ، وغالباً لا تتطلب تدخل المستخدم. هذه هي الرؤية الأصلية المقصودة لـ HTTP 402، والتي أصبحت أخيراً حقيقة بفضل البنية التحتية للتشفير الحديثة.

تعرف على المزيد حول x402 ←

تنفيذ HTTP 402 في تطبيقك

للمطورين الراغبين في تنفيذ الرمز 402 في تطبيقاتهم، إليك ملخص سريع:

جانب الخادم (إعادة 402)

// مثال باستخدام Express.js
app.get('/premium-content', (req, res) => {
  if (!isPaid(req)) {
    return res.status(402).json({
      error: 'الدفع مطلوب',
      price: '0.10',
      currency: 'USDC',
      paymentAddress: '0x...'
    });
  }
  res.json({ content: 'إليك المحتوى المتميز الخاص بك' });
});

جانب العميل (معالجة 402)

// مثال باستخدام JavaScript
const response = await fetch('/premium-content');
if (response.status === 402) {
  const paymentInfo = await response.json();
  // بدء تدفق الدفع
  await processPayment(paymentInfo);
  // التكرار مع إثبات الدفع
  return fetch('/premium-content', {
    headers: { 'X-Payment-Proof': proof }
  });
}

مستقبل HTTP 402

مستقبل HTTP 402 واعد بفضل بروتوكولات مثل x402.

رؤية الدفع الأصلية التي كان يجب أن تتوفر في الويب منذ البداية أصبحت أخيراً حقيقة، ويأتي الرمز HTTP 402 في قلب هذا التحول.

قراءات إضافية

الوثائق الرسمية

السياق والتاريخ

بروتوكول x402