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

نظرة عامة

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

الميزات

  • إعداد سريع - ابدأ في أقل من 5 دقائق
  • دمج المدفوعات - تدفق دفع مُعد مسبقًا باستخدام @dodopayments/astro
  • واجهة مستخدم حديثة - صفحة تسعير نظيفة ذات طابع داكن مع Tailwind CSS
  • معالج ويب هوك - نقطة نهاية ويب هوك جاهزة للاستخدام لأحداث الدفع
  • بوابة العملاء - إدارة الاشتراكات بنقرة واحدة
  • 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 باستخدام معرفات المنتجات الفعلية من مدفوعات دودي:
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 لتعديل:
  • معرفات المنتجات (من لوحة التحكم الخاصة بك في دودي)
  • التسعير
  • الميزات
  • الأوصاف

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

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

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

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

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

يظهر النموذج كيفية التعامل مع أحداث الويب هوك في 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 في بيئة الإنتاج الخاصة بك لتتناسب مع مفتاح توقيع الويب هوك لنطاقك المنشور.

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

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

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

الدعم

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