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

نظرة عامة

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

الميزات

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

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

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

بدء سريع

1

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

git clone https://github.com/dodopayments/dodo-astro-minimal-boilerplate.git
cd dodo-astro-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:4321/
DODO_PAYMENTS_ENVIRONMENT=test_mode
لا تقم بإضافة ملف ال.env إلى نظام التحكم في الإصدارات. إنه مُدرج بالفعل في ال.gitignore.
5

أضف منتجاتك

قم بتحديث ال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

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

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
يمكنك إكمال عملية شراء تجريبية للحصول على معرف العميل للاختبار.

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

يظهر القالب كيفية التعامل مع أحداث Webhook في الsrc/pages/api/webhook.ts:
  • 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 في بيئة الإنتاج الخاصة بك لتتناسب مع مفتاح توقيع Webhook لنطاقك المنشور.

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

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

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

الدعم

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