Skip to main content

نظرة عامة

القالب الأساسي الأدنى لـ Astro هو تطبيق ابتدائي متصل بـ Dodo Payments مسبقًا. أضف مفاتيح API ومعرّفات المنتجات، وستحصل على صفحة أسعار تفتح Checkout، ونقطة نهاية webhook لأحداث الدفع، ورابط إلى Customer Portal.
يستخدم هذا القالب Astro 5 مع TypeScript وTailwind CSS 4 ومحوّل @dodopayments/astro. لإضافة مسارات API نفسها إلى تطبيق موجود، راجع محوّل Astro.

الميزات

يتضمن القالب ما يلي:
  • إعداد سريع: انتقل من الاستنساخ إلى تشغيل صفحة أسعار في نحو خمس دقائق.
  • Checkout: تدفق Checkout مُعد مسبقًا ومبني على @dodopayments/astro.
  • صفحة الأسعار: صفحة أسعار ذات سمة داكنة ومنسّقة باستخدام Tailwind CSS.
  • معالج webhook: نقطة نهاية تتحقق من توقيع كل webhook وتشغّل التعليمات البرمجية الخاصة بك للحدث.
  • Customer Portal: رابط في الترويسة يفتح Customer Portal، حيث يدير العملاء اشتراكاتهم.
  • TypeScript: تعريفات ومعالجات منتجات مكتوبة الأنواع.
  • Checkout معبأ مسبقًا: يمرر اسم العميل وبريده الإلكتروني إلى Checkout، حتى لا يضطر العميل إلى إدخالهما مرة أخرى.

المتطلبات الأساسية

قبل البدء، تحتاج إلى ما يلي:
  • إصدار LTS من Node.js، وهو مطلوب من Astro 5.
  • حساب Dodo Payments، لإنشاء مفتاح API وسر توقيع webhook في لوحة التحكم.

البدء السريع

1

Clone the Repository

2

Install Dependencies

3

Get API Credentials

سجّل في Dodo Payments، ثم احصل على بيانات الاعتماد من لوحة التحكم:
أنشئ كليهما أثناء إيقاف مفتاح الوضع المباشر في الشريط الجانبي. يعمل مفتاح وضع الاختبار فقط مع DODO_PAYMENTS_ENVIRONMENT=test_mode، ولا تحرك مدفوعات وضع الاختبار أموالًا حقيقية.
4

Configure Environment Variables

انسخ ملف المثال لإنشاء ملف .env في الدليل الجذر:
عيّن القيم إلى بيانات اعتماد Dodo Payments الخاصة بك:
يعيّن .env.example القيمة DODO_PAYMENTS_RETURN_URL إلى المنفذ 3000. غيّرها إلى 4321، وهو المنفذ الذي يستخدمه خادم تطوير Astro، حتى يعيد Checkout العميل إلى تطبيقك.تقرأ مسارات API هذه المتغيرات:
  • يصادق DODO_PAYMENTS_API_KEY على مساري Checkout وCustomer Portal.
  • يتحقق DODO_PAYMENTS_WEBHOOK_KEY من توقيعات webhook.
  • يحدد DODO_PAYMENTS_RETURN_URL المكان الذي يرسل إليه Checkout العميل بعد الدفع.
  • تكون قيمة DODO_PAYMENTS_ENVIRONMENT هي test_mode أو live_mode.
لا ترفع ملف .env إلى نظام التحكم في الإصدارات. يستبعده ملف .gitignore الموجود في المستودع مسبقًا.
5

Add Your Products

استبدل المنتجات النموذجية في src/lib/products.ts بمنتجاتك الخاصة. عيّن كل product_id إلى معرّف منتج ضمن المنتجات في لوحة التحكم:
تعرض صفحة الأسعار name وdescription وprice وfeatures من هذا الملف. يفرض Checkout السعر المحدد على المنتج في Dodo Payments، لذا احرص على مزامنة price معه.
6

Run the Development Server

افتح http://localhost:4321 لرؤية صفحة الأسعار.

بنية المشروع

توجد مسارات API الخاصة بـ Checkout وCustomer Portal وwebhook ضمن src/pages/api/:

التخصيص

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

حرّر src/lib/products.ts لتغيير ما يلي:
  • معرّفات المنتجات من المنتجات في لوحة تحكم Dodo Payments
  • الأسعار
  • الميزات
  • الأوصاف

تعبئة بيانات العميل مسبقًا

يرسل نص Checkout البرمجي في src/components/ProductCard.astro اسمًا وبريدًا إلكترونيًا ثابتين مع كل طلب Checkout. استبدلهما ببيانات المستخدم الذي سجّل الدخول:

تحديث Customer Portal

يفتح رابط Customer Portal في src/components/Header.astro المسار /api/customer-portal باستخدام معرّف عميل ثابت. استبدله بمعرّف العميل من نظام المصادقة أو قاعدة البيانات لديك:
للحصول على معرّف عميل للاختبار، أتمم عملية شراء تجريبية، ثم انسخ معرّف العميل من العملاء في لوحة التحكم.

أحداث webhook

يتحقق المعالج في src/pages/api/webhook.ts من كل طلب باستخدام DODO_PAYMENTS_WEBHOOK_KEY، ثم يعالج حدثين:
  • يعمل onSubscriptionActive عندما يصبح الاشتراك نشطًا (subscription.active).
  • يعمل onSubscriptionCancelled عندما يُلغى الاشتراك (subscription.cancelled).
أضف منطق العمل الخاص بك داخل هذه المعالجات:
لمعالجة مزيد من الأحداث، أضف معالجاتها، مثل onPaymentSucceeded. تسرد محوّل Astro جميع المعالجات المدعومة. لا يستطيع Dodo Payments الوصول إلى localhost. للتطوير المحلي، استخدم نفقًا مثل ngrok لإتاحة خادمك المحلي، واستخدم عنوان URL للنفق كنقطة نهاية webhook.

النشر

ينشئ Astro الصفحات كمخرجات ثابتة، وتعيّن كل مسارات API القيمة export const prerender = false حتى تُعرض عند الطلب. تحتاج المسارات عند الطلب إلى محوّل Astro لمنصة النشر لديك: لمنصات أخرى، راجع أدلة النشر الخاصة بـ Astro. في منصة الاستضافة، أضف متغيرات البيئة الأربعة وعيّن DODO_PAYMENTS_RETURN_URL إلى عنوان URL للإنتاج.

تحديث عنوان URL لـ webhook

بعد النشر، أضف عنوان URL لـ webhook الخاص بالإنتاج في لوحة تحكم Dodo Payments:
لكل نقطة نهاية سر توقيع خاص بها. عيّن DODO_PAYMENTS_WEBHOOK_KEY في بيئة الإنتاج إلى سر توقيع نقطة النهاية هذه.

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

احذف node_modules وpackage-lock.json، ثم أعد تثبيت التبعيات:
تحقق من الأسباب الشائعة التالية:
  • معرّف المنتج غير موجود في لوحة تحكم Dodo Payments.
  • مفتاح API أو DODO_PAYMENTS_ENVIRONMENT في .env غير صحيح. يعمل مفتاح وضع الاختبار فقط مع test_mode.
ابحث عن الخطأ في وحدة تحكم المتصفح والطرفية التي تشغّل npm run dev.
للاختبار المحلي، استخدم ngrok لإتاحة خادمك:
في لوحة تحكم Dodo، أضف نقطة نهاية باستخدام عنوان URL لـ HTTPS الخاص بـ ngrok متبوعًا بـ /api/webhook. انسخ سر توقيع نقطة النهاية هذه إلى DODO_PAYMENTS_WEBHOOK_KEY في ملف .env.
تُعرض مسارات API عند الطلب، ولا يتضمن المستودع محوّل نشر. ثبّت محوّل Astro لمنصتك قبل إنشاء نسخة الإنتاج.راجع أدلة النشر الخاصة بـ Astro للحصول على التفاصيل.

لمزيد من المعلومات

الدعم

للحصول على المساعدة بشأن القالب الأساسي:
آخر تعديل في ٢٦ سبتمبر ٢٠٢٦