Skip to main content

نظرة عامة

القالب الأساسي الأدنى لـ Next.js هو تطبيق بدء يتصل بـ Dodo Payments مسبقًا. أضف مفاتيح API ومعرّفات المنتجات، وستحصل على صفحة تسعير تفتح checkout، ونقطة نهاية webhook لأحداث الدفع، ورابطًا إلى Customer Portal.
يستخدم هذا القالب الأساسي Next.js 16 App Router مع TypeScript وTailwind CSS 4 ومحوّل @dodopayments/nextjs. لإضافة معالجات المسارات نفسها إلى تطبيق موجود، راجع محوّل Next.js.

الميزات

يتضمن القالب الأساسي ما يلي:
  • إعداد سريع: انتقل من الاستنساخ إلى تشغيل صفحة التسعير في نحو خمس دقائق.
  • Checkout: تدفق checkout مُعد مسبقًا مبني على @dodopayments/nextjs.
  • صفحة التسعير: صفحة تسعير ذات سمة داكنة ومنسّقة باستخدام Tailwind CSS.
  • معالج Webhook: نقطة نهاية تتحقق من توقيع كل webhook وتشغّل التعليمات البرمجية الخاصة بك للحدث.
  • Customer Portal: رابط في الترويسة يفتح Customer Portal، حيث يدير العملاء اشتراكاتهم.
  • TypeScript: تعريفات ومعالجات منتجات مكتوبة الأنواع.
  • Checkout مُعبّأ مسبقًا: يمرّر اسم العميل وبريده الإلكتروني إلى checkout، حتى لا يضطر العميل إلى إدخالهما مرة أخرى.

المتطلبات الأساسية

قبل البدء، تحتاج إلى ما يلي:
  • Node.js 20.9 أو أحدث، وهو الإصدار المطلوب من Next.js 16.
  • حساب Dodo Payments، لإنشاء مفتاح API وسر توقيع webhook من لوحة التحكم.

البدء السريع

1

Clone the Repository

2

Install Dependencies

3

Get API Credentials

سجّل في Dodo Payments، ثم احصل على بيانات الاعتماد الخاصة بك من لوحة التحكم:
أنشئ كليهما أثناء إيقاف مفتاح Live Mode في الشريط الجانبي. يعمل مفتاح وضع الاختبار فقط مع DODO_PAYMENTS_ENVIRONMENT=test_mode، ولا تنقل مدفوعات وضع الاختبار أموالًا حقيقية.
4

Configure Environment Variables

انسخ ملف المثال لإنشاء ملف .env في الدليل الجذر:
اضبط القيم على بيانات اعتماد Dodo Payments الخاصة بك:
تقرأ معالجات المسارات هذه المتغيرات:
  • يصادق DODO_PAYMENTS_API_KEY على معالجي checkout وCustomer Portal.
  • يتحقق DODO_PAYMENTS_WEBHOOK_KEY من توقيعات webhook.
  • يحدد DODO_PAYMENTS_RETURN_URL المكان الذي يرسل إليه checkout العميل بعد الدفع.
  • تكون قيمة DODO_PAYMENTS_ENVIRONMENT هي test_mode أو live_mode.
لا تُضمّن ملف .env في نظام التحكم بالإصدارات. يستبعده .gitignore الموجود في المستودع مسبقًا.
5

Add Your Products

استبدل المنتجات النموذجية في src/lib/products.ts بمنتجاتك الخاصة. اضبط كل product_id على معرّف منتج ضمن المنتجات في لوحة التحكم:
تعرض صفحة التسعير name وdescription وprice وfeatures من هذا الملف. يفرض checkout السعر المحدد للمنتج في Dodo Payments، لذا احرص على إبقاء price متزامنًا معه.
6

Run the Development Server

افتح http://localhost:3000 لرؤية صفحة التسعير الخاصة بك.

بنية المشروع

توجد معالجات مسارات checkout وCustomer Portal وwebhook ضمن src/app/api/:

التخصيص

تحديث معلومات المنتج

عدّل src/lib/products.ts لتغيير ما يلي:
  • معرّفات المنتجات، من المنتجات في لوحة تحكم Dodo Payments
  • الأسعار
  • الميزات
  • الأوصاف

تعبئة بيانات العميل مسبقًا

يرسل src/app/components/ProductCard.tsx اسمًا وبريدًا إلكترونيًا ثابتين مع كل طلب checkout. استبدلهما ببيانات المستخدم الذي سجّل الدخول:

تحديث Customer Portal

يفتح رابط Customer Portal في src/app/components/Header.tsx /api/customer-portal باستخدام معرّف عميل ثابت. استبدله بمعرّف عميل Dodo Payments الخاص بالمستخدم الذي سجّل الدخول:
للحصول على معرّف عميل للاختبار، أكمل عملية شراء اختبارية، ثم انسخ معرّف العميل من العملاء في لوحة التحكم. في بيئة الإنتاج، اجلب المعرّف من الواجهة الخلفية لديك.

أحداث Webhook

يتحقق المعالج في src/app/api/webhook/route.ts من كل طلب باستخدام DODO_PAYMENTS_WEBHOOK_KEY، ثم يعالج حدثين:
  • يُشغّل onSubscriptionActive عند تنشيط اشتراك (subscription.active).
  • يُشغّل onPaymentSucceeded عند نجاح دفعة (payment.succeeded).
أضف منطق الأعمال الخاص بك داخل هذه المعالجات:
لمعالجة مزيد من الأحداث، أضف معالجاتها، مثل onSubscriptionCancelled. تسرد محوّل Next.js جميع المعالجات المدعومة. لا يستطيع Dodo Payments الوصول إلى localhost. للتطوير المحلي، استخدم نفقًا مثل ngrok لكشف الخادم المحلي، واستخدم عنوان URL للنفق كنقطة نهاية webhook.

النشر

الإنشاء للإنتاج

النشر إلى Vercel

[ النشر باستخدام Vercel ](https://vercel.com/new/clone?repository-url=https://github.com/dodopayments/dodo-nextjs-minimal-boilerplate) أضف متغيرات البيئة الأربعة في لوحة تحكم Vercel، واضبط DODO_PAYMENTS_RETURN_URL على عنوان URL للإنتاج.

تحديث عنوان URL لـ Webhook

بعد النشر، أضف عنوان URL لـ webhook الخاص بالإنتاج في لوحة تحكم Dodo Payments، مع وضع نطاقك بدلًا من example.com:
لكل نقطة نهاية سر توقيع خاص بها. انسخ سر نقطة النهاية الجديدة إلى DODO_PAYMENTS_WEBHOOK_KEY في بيئة الإنتاج لديك.

استكشاف الأخطاء وإصلاحها

احذف node_modules وpackage-lock.json، ثم أعد تثبيت التبعيات:
تحقق من الأسباب الشائعة التالية:
  • معرّف المنتج غير موجود في لوحة تحكم Dodo Payments.
  • مفتاح API أو DODO_PAYMENTS_ENVIRONMENT في .env غير صحيح. يعمل مفتاح وضع الاختبار فقط مع test_mode.
ابحث عن الخطأ في وحدة تحكم المتصفح وفي الطرفية التي تشغّل npm run dev.
للاختبار المحلي، استخدم ngrok لكشف الخادم لديك:
في لوحة تحكم Dodo، أضف نقطة نهاية باستخدام عنوان URL لـ HTTPS الخاص بـ ngrok متبوعًا بـ /api/webhook. انسخ سر توقيع نقطة النهاية هذه إلى DODO_PAYMENTS_WEBHOOK_KEY في ملف .env.

تعلّم المزيد

الدعم

للحصول على المساعدة بشأن القالب الأساسي:
آخر تعديل في ٢٦ سبتمبر ٢٠٢٦