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

نظرة عامة

يوفر نموذج أسترو الأساسي نقطة انطلاق جاهزة للاستخدام لدمج مدفوعات دودي مع تطبيق أسترو الخاص بك. يتضمن هذا القالب جلسات الدفع، ومعالجة الويب هوك، وبوابة العملاء، ومكونات واجهة المستخدم الحديثة لمساعدتك في البدء في قبول المدفوعات بسرعة.
يستخدم هذا الهيكل الأساسي Astro 5 مع TypeScript وTailwind CSS 4، وموصل @dodopayments/astro.

الميزات

  • Quick Setup - ابدأ خلال أقل من 5 دقائق
  • Payment Integration - تدفق الدفع مُعد مسبقًا باستخدام @dodopayments/astro
  • Modern UI - صفحة تسعير نظيفة ذات سمة داكنة باستخدام Tailwind CSS
  • Webhook Handler - نقطة نهاية جاهزة للاستخدام لمعالجة أحداث الدفع
  • Customer Portal - إدارة الاشتراكات بنقرة واحدة
  • TypeScript - مُطبّق بالكامل مع أنواع قليلة ومركّزة
  • Pre-filled Checkout - يوضح كيفية تمرير بيانات العميل لتحسين تجربة المستخدم

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

قبل أن تبدأ، تأكد من أن لديك:
  • إصدار Node.js LTS (مطلوب لأسترو 5)
  • حساب مدفوعات دودي (للوصول إلى مفاتيح API وWebhook من لوحة التحكم)

بدء سريع

1

Clone the Repository

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

Install Dependencies

npm install
3

Get API Credentials

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

Configure Environment Variables

أنشئ ملف .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:4321/
DODO_PAYMENTS_ENVIRONMENT=test_mode
لا تقم مطلقًا بإضافة ملف .env إلى نظام التحكم في الإصدارات. إنه مضمن بالفعل في .gitignore.
5

Add Your Products

حدّث src/lib/products.ts بمعرّفات المنتج الفعلية من Dodo Payments:
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

Run the Development Server

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

هيكل المشروع

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

التخصيص

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

حرّر src/lib/products.ts لتعديل:
  • معرّفات المنتج (من لوحة Dodo)
  • التسعير
  • الميزات
  • الوصف

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

في src/components/ProductCard.astro، استبدل القيم الثابتة ببيانات المستخدم الفعلية الخاصة بك:
customer: {
  name: "John Doe",
  email: "john@example.com",
},

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

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

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

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

النشر

يستخدم هذا النموذج مخرجات ثابتة مع تقديم عند الطلب لمسارات API. ستحتاج إلى تثبيت محول لمنصة النشر الخاصة بك:
المنصةالدليل
Vercelنشر على Vercel
Netlifyنشر على Netlify
Cloudflareنشر على Cloudflare
راجع أدلة نشر أسترو لجميع المنصات.

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

بعد النشر، قم بتحديث عنوان URL للويب هوك في لوحة تحكم مدفوعات دودي:
https://your-domain.com/api/webhook
تذكّر أيضًا تحديث المتغير البيئي DODO_PAYMENTS_WEBHOOK_KEY في بيئة الإنتاج لتطابق مفتاح توقيع الويب هوك الخاص بالنطاق المنشور.

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

احذف node_modules وأعد تثبيت تبعيات المشروع:
rm -rf node_modules package-lock.json
npm install
الأسباب الشائعة:
  • معرّف منتج غير صالح - تأكد من وجوده في لوحة Dodo
  • مفتاح API أو إعداد بيئة خاطئ في .env
  • تفقد وحدة تحكم المتصفح والجهاز الطرفي بحثًا عن أخطاء
لاختبار محلي، استخدم ngrok لكشف الخادم الخاص بك:
ngrok http 4321
حدّث عنوان URL الخاص بالويب هوك في لوحة Dodo ليكون عنوان ngrok. تذكّر تحديث ملف .env بالمفتاح الصحيح للتحقق من الويب هوك.
يستخدم هذا الهيكل الأساسي مخرجات ثابتة مع مسارات API عند الطلب. تحتاج إلى تثبيت موصل للنشر:راجع أدلة نشر Astro للحصول على التفاصيل.

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

الدعم

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