الانتقال إلى المحتوى الرئيسي

نظرة عامة

يوفر نموذج Next.js البسيط نقطة انطلاق جاهزة للاستخدام لدمج مدفوعات دودي مع تطبيق Next.js الخاص بك. يتضمن هذا القالب جلسات الدفع، ومعالجة الويب هوك، وبوابة العملاء، ومكونات واجهة مستخدم حديثة لمساعدتك في البدء في قبول المدفوعات بسرعة.
يستخدم هذا النموذج Next.js 16 App Router مع TypeScript وTailwind CSS 4 و@dodopayments/nextjs.

الميزات

  • إعداد سريع - ابدأ في أقل من 5 دقائق
  • دمج المدفوعات - تدفق دفع مُعد مسبقًا باستخدام @dodopayments/nextjs
  • واجهة مستخدم حديثة - صفحة تسعير نظيفة ذات طابع داكن مع Tailwind CSS
  • معالج ويب هوك - نقطة نهاية ويب هوك جاهزة للاستخدام لأحداث الدفع
  • بوابة العملاء - إدارة الاشتراكات بنقرة واحدة
  • TypeScript - مكتوب بالكامل مع أنواع مركزة ومرتبطة
  • دفع مسبق - يوضح تمرير بيانات العملاء لتحسين تجربة المستخدم

المتطلبات المسبقة

قبل أن تبدأ، تأكد من أن لديك:
  • Node.js 20.9+ (مطلوب لـ Next.js 16)
  • حساب مدفوعات دودي (للوصول إلى مفاتيح API وWebhook من لوحة التحكم)

بدء سريع

1

استنساخ المستودع

git clone https://github.com/dodopayments/dodo-nextjs-minimal-boilerplate.git
cd dodo-nextjs-minimal-boilerplate
2

تثبيت التبعيات

npm install
3

احصل على بيانات اعتماد API

سجل في مدفوعات دودي واحصل على بيانات اعتمادك من لوحة التحكم:
تأكد من أنك في وضع الاختبار أثناء التطوير!
4

تكوين متغيرات البيئة

أنشئ ملف .env في الدليل الجذر:
cp .env.example .env
قم بتحديث القيم باستخدام بيانات اعتماد مدفوعات دودي الخاصة بك:
DODO_PAYMENTS_API_KEY=your_api_key_here
DODO_PAYMENTS_WEBHOOK_KEY=your_webhook_signing_key_here
DODO_PAYMENTS_RETURN_URL=http://localhost:3000
DODO_PAYMENTS_ENVIRONMENT=test_mode
لا تقم أبدًا بالتزام ملف .env إلى التحكم في الإصدار. إنه مدرج بالفعل في .gitignore.
5

أضف منتجاتك

قم بتحديث src/lib/products.ts باستخدام معرفات المنتجات الفعلية الخاصة بك من مدفوعات دودي:
export const products: Product[] = [
  {
    product_id: "pdt_001", // Replace with your product ID
    name: "Basic Plan",
    description: "Get access to basic features and support",
    price: 9999, // in cents
    features: [
      "Access to basic features",
      "Email support",
      "1 Team member",
      "Basic analytics",
    ],
  },
  // ... add more products
];
6

تشغيل خادم التطوير

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

هيكل المشروع

src/
├── app/
│   ├── api/
│   │   ├── checkout/          # Checkout session handler
│   │   ├── customer-portal/   # Customer portal redirect
│   │   └── webhook/           # Webhook event handler
│   ├── components/
│   │   ├── Footer.tsx         # Reusable footer
│   │   ├── Header.tsx         # Navigation header
│   │   └── ProductCard.tsx    # Product pricing card
│   ├── globals.css            # Global styles
│   ├── layout.tsx             # Root layout
│   └── page.tsx               # Pricing page (home)
└── lib/
    └── products.ts            # Product definitions

التخصيص

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

قم بتحرير src/lib/products.ts لتعديل:
  • معرفات المنتجات (من لوحة التحكم الخاصة بك في دودي)
  • التسعير
  • الميزات
  • الأوصاف

ملء بيانات العملاء مسبقًا

في src/app/components/ProductCard.tsx، استبدل القيم الثابتة ببيانات المستخدم الفعلية الخاصة بك:
customer: {
  name: "John Doe",
  email: "[email protected]",
},

تحديث بوابة العملاء

في src/app/components/Header.tsx، استبدل معرف العميل الثابت:
const CUSTOMER_ID = "cus_001"; // Replace with actual customer ID
يمكنك إكمال عملية شراء تجريبية للحصول على معرف العميل للاختبار.

أحداث الويب هوك

يظهر النموذج كيفية التعامل مع حدثين ويب هوك في src/app/api/webhook/route.ts:
  • onSubscriptionActive - يتم تفعيله عندما يصبح الاشتراك نشطًا
  • onPaymentSucceeded - يتم تفعيله عندما تكون المدفوعات ناجحة
أضف منطق عملك داخل هذه المعالجات:
onSubscriptionActive: async (payload) => {
  // Grant access to your product
  // Update user database
  // Send welcome email
},
أضف المزيد من أحداث الويب هوك حسب الحاجة. للتطوير المحلي، يمكنك استخدام أدوات مثل ngrok لإنشاء نفق آمن إلى خادمك المحلي واستخدامه كعنوان URL للويب هوك الخاص بك.

النشر

بناء للإنتاج

npm run build
npm start

نشر على Vercel

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

تحديث عنوان URL للويب هوك

بعد النشر، قم بتحديث عنوان URL للويب هوك الخاص بك في لوحة تحكم مدفوعات دودي:
https://example.com/api/webhook

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

احذف node_modules وأعد تثبيت التبعيات:
rm -rf node_modules package-lock.json
npm install
الأسباب الشائعة:
  • معرف المنتج غير صالح - تحقق من أنه موجود في لوحة التحكم الخاصة بك في دودي
  • مفتاح API خاطئ أو إعداد بيئة في .env
  • تحقق من وحدة التحكم في المتصفح والمحطة بحثًا عن الأخطاء
للاختبار المحلي، استخدم ngrok لكشف خادمك:
ngrok http 3000
قم بتحديث عنوان URL للويب هوك في لوحة تحكم دودي إلى عنوان URL الخاص بـ ngrok. تذكر تحديث ملف .env الخاص بك بمفتاح التحقق الصحيح للويب هوك.
استبدل CUSTOMER_ID الثابت في src/app/components/Header.tsx بمعرف عميل فعلي من لوحة التحكم الخاصة بك في دودي.أو دمج نظام المصادقة وقاعدة البيانات الخاصة بك لجلب معرف العميل ديناميكيًا.

تعرف على المزيد

الدعم

تحتاج إلى مساعدة بشأن النموذج؟