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

نظرة عامة

يوفر محول Better Auth لمدفوعات دودي:
  • إنشاء العملاء تلقائيًا عند التسجيل
  • جلسات الدفع (المفضلة) مع خريطة منتج
  • بوابة العملاء ذات الخدمة الذاتية
  • نقاط إدخال واستخدام تقارير الاستخدام للفوترة المعتمدة على الاستخدام
  • معالجة أحداث الويب في الوقت الفعلي مع التحقق من التوقيع
  • دعم كامل لـ TypeScript
تحتاج إلى حساب Dodo Payments ومفاتيح API لاستخدام هذا التكامل.

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

  • Node.js 20+
  • الوصول إلى لوحة معلومات مدفوعات دودي الخاصة بك
  • مشروع موجود يستخدم better-auth

التثبيت

1

Install dependencies

شغل الأمر التالي في جذر مشروعك:
تم الآن تثبيت جميع الحزم المطلوبة.

الإعداد

1

Configure environment variables

أضف هذه إلى ملف .env:
لا تُدرج مفاتيح API أو الأسرار في نظام التحكم بالإصدارات.
2

Set up server-side integration

أنشئ أو حدّث src/lib/auth.ts:
عيّن environment على live_mode للإنتاج.
3

Set up client-side integration

أنشئ أو حدّث src/lib/auth-client.ts:

أمثلة الاستخدام

يفضَّل استخدام authClient.dodopayments.checkoutSession للتكاملات الجديدة. إن طريقة checkout القديمة مُهملة وتُحفظ فقط للتوافق مع الإصدارات السابقة.

إنشاء جلسة دفع (المفضلة)

على عكس طريقة checkout القديمة، لا يتطلب checkoutSession معلومات الفوترة مقدمًا حيث سيتم أخذها من المستخدم في صفحة الدفع. يمكنك مع ذلك تجاوزها عن طريق تمرير مفتاح billing في الوسيط.
على غرار طريقة checkout القديمة، يأخذ checkoutSession البريد الإلكتروني والاسم من جلسة التوثيق النموذجي للمستخدم، ومع ذلك، يمكنك تجاوزها عن طريق تمرير customer مع البريد الإلكتروني والاسم.
يمكنك تمرير نفس الخيارات في الوسيط كجسم الطلب لنقطة النهاية Create Checkout Session.
يتم أخذ عنوان URL للعودة من successUrl المحفوظة في المكون الملحق بالخادم. لا تحتاج لإدراج return_url في حمولة العميل.

عملية الدفع القديمة (مهمشة)

تم تهميش طريقة authClient.dodopayments.checkout. استخدم checkoutSession لأجل الواجهات الجديدة.

الوصول إلى بوابة العملاء

قائمة بيانات العملاء

تتبع الاستخدام المحسوب

تمكين مكون usage() على الخادم لالتقاط الأحداث المحسوبة وترك العملاء يفحصون فوترتهم المستندة إلى الاستخدام.
  • يستوعب authClient.dodopayments.usage.ingest الأحداث للمستخدم المسجل والمتحقق من البريد الإلكتروني.
  • authClient.dodopayments.usage.meters.list يسرد الاستخدام الأخير لأجهزة القياس المرتبطة باشتراكات ذلك العميل.
يتم رفض الطوابع الزمنية الأقدم من ساعة أو أكثر من خمس دقائق في المستقبل عند استيعاب الاستخدام.
إذا قمت بإغفال meter_id عند سرد أجهزة قياس الاستخدام، يتم إرجاع جميع الأجهزة المرتبطة باشتراكات العميل.

الويب هوكس

يعالج مكون الويب هوكس أحداث الدفع في الوقت الحقيقي من Dodo Payments مع التحقق الآمن من التوقيع. نقطة النهاية الافتراضية هي /api/auth/dodopayments/webhooks.
1

Generate and set webhook secret

انشئ سر ويب هوك لعنوان URL لنقطة النهاية الخاصة بك (مثل https://<your-domain>/api/auth/dodopayments/webhooks) في لوحة Dodo Payments واضبطه في ملف .env الخاص بك.
2

Handle webhook events

مثال على معالج:

معالجات أحداث الويب هوك المدعومة

مرجع التهيئة

  • client (إلزامي): مثيل عميل DodoPayments
  • createCustomerOnSignUp (اختياري): إنشاء العملاء تلقائيًا عند تسجيل المستخدم
  • use (إلزامي): مصفوفة من المكونات الإضافية للتمكين (checkout, portal, usage, webhooks)
  • getCustomerParams (اختياري): دالة تستقبل User BetterAuth وتعيد حقول إضافية لإلصاقها بعميل DodoPayments عند الإنشاء والتحديث (مثل metadata, phone_number)
  • products: مصفوفة من المنتجات أو دالة غير متزامنة تعيد المنتجات - successUrl: عنوان URL لإعادة التوجيه بعد الدفع الناجح - authenticatedUsersOnly: يتطلب توثيق المستخدم (الافتراضي: false)

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

  • رمز API غير صالح: تحقق من DODO_PAYMENTS_API_KEY في .env. - عدم تطابق توقيع ويب هوك: تأكد من أن سر الويب هوك يتطابق مع الذي تم تعيينه في لوحة Dodo Payments. - العميل غير منشئ: تأكد من ضبط createCustomerOnSignUp على true.
  • استخدم متغيرات البيئة لجميع الأسرار والمفاتيح. - اختبر في test_mode قبل التحويل إلى live_mode. - سجل أحداث الويب هوك لأغراض التصحيح والتدقيق.

المطالبة لموديلات الذكاء الاصطناعي اللغوية

آخر تعديل في ٩ يوليو ٢٠٢٦