نظرة عامة
القالب الأساسي الأدنى لـ 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، ثم احصل على بيانات الاعتماد الخاصة بك من لوحة التحكم:
- مفتاح API: أنشئ مفتاحًا ضمن لوحة التحكم ← المطوّر ← مفاتيح API.
- مفتاح Webhook: أضف نقطة نهاية ضمن لوحة التحكم ← المطوّر ← Webhooks، ثم انسخ سر التوقيع الخاص بها. يجب أن يكون عنوان URL لنقطة النهاية عامًا وأن يستخدم HTTPS. لتلقي الأحداث على جهازك، راجع أحداث Webhook.
4
Configure Environment Variables
انسخ ملف المثال لإنشاء ملف اضبط القيم على بيانات اعتماد Dodo Payments الخاصة بك:تقرأ معالجات المسارات هذه المتغيرات:
.env في الدليل الجذر:- يصادق
DODO_PAYMENTS_API_KEYعلى معالجي checkout وCustomer Portal. - يتحقق
DODO_PAYMENTS_WEBHOOK_KEYمن توقيعات webhook. - يحدد
DODO_PAYMENTS_RETURN_URLالمكان الذي يرسل إليه checkout العميل بعد الدفع. - تكون قيمة
DODO_PAYMENTS_ENVIRONMENTهيtest_modeأوlive_mode.
5
Add Your Products
استبدل المنتجات النموذجية في تعرض صفحة التسعير
src/lib/products.ts بمنتجاتك الخاصة. اضبط كل product_id على معرّف منتج ضمن المنتجات في لوحة التحكم:name وdescription وprice وfeatures من هذا الملف. يفرض checkout السعر المحدد للمنتج في Dodo Payments، لذا احرص على إبقاء price متزامنًا معه.6
Run the Development Server
بنية المشروع
توجد معالجات مسارات 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
[DODO_PAYMENTS_RETURN_URL على عنوان URL للإنتاج.
تحديث عنوان URL لـ Webhook
بعد النشر، أضف عنوان URL لـ webhook الخاص بالإنتاج في لوحة تحكم Dodo Payments، مع وضع نطاقك بدلًا منexample.com:
DODO_PAYMENTS_WEBHOOK_KEY في بيئة الإنتاج لديك.
استكشاف الأخطاء وإصلاحها
Module not found or build errors
Module not found or build errors
احذف
node_modules وpackage-lock.json، ثم أعد تثبيت التبعيات:Checkout redirect fails
Checkout redirect fails
تحقق من الأسباب الشائعة التالية:
- معرّف المنتج غير موجود في لوحة تحكم Dodo Payments.
- مفتاح API أو
DODO_PAYMENTS_ENVIRONMENTفي.envغير صحيح. يعمل مفتاح وضع الاختبار فقط معtest_mode.
npm run dev.Webhooks not receiving events
Webhooks not receiving events
للاختبار المحلي، استخدم ngrok لكشف الخادم لديك:في لوحة تحكم Dodo، أضف نقطة نهاية باستخدام عنوان URL لـ HTTPS الخاص بـ ngrok متبوعًا بـ
/api/webhook. انسخ سر توقيع نقطة النهاية هذه إلى DODO_PAYMENTS_WEBHOOK_KEY في ملف .env.Customer portal link doesn't work
Customer portal link doesn't work
استبدل
CUSTOMER_ID الثابت في src/app/components/Header.tsx بمعرّف عميل موجود في لوحة تحكم Dodo Payments.في بيئة الإنتاج، احصل على معرّف العميل من نظام المصادقة وقاعدة البيانات لديك بدلًا من ذلك.تعلّم المزيد
- وثائق Dodo Payments
- وثائق Checkout Sessions
- وثائق Webhooks
- محوّل Next.js: خيارات معالجات
CheckoutوCustomerPortalوWebhooks
الدعم
للحصول على المساعدة بشأن القالب الأساسي:- اطرح أسئلتك في مجتمع Discord.
- أبلغ عن المشكلات وتابع التحديثات في مستودع GitHub.
- أرسل بريدًا إلكترونيًا إلى فريق الدعم.