@dodopayments/nuxt تطبيق Nuxt لديك ثلاثة معالجات لمسارات الخادم. يعيد checkoutHandler عناوين URL لـ checkout، ويرسل customerPortalHandler العميل إلى Customer Portal، بينما يتحقق Webhooks من أحداث webhook ويوجهها إلى التعليمات البرمجية لديك.
Checkout API Route
أنشئ عناوين URL لصفحة الدفع من مسار خادم Nuxt.
Customer Portal API Route
اسمح للعملاء بإدارة اشتراكاتهم وتفاصيلهم من مسار خادم Nuxt.
Webhooks API Route
تلقَّ أحداث webhook من Dodo Payments وتحقق منها في Nuxt.
نظرة عامة
تسجّل الوحدة معالجاتها كعمليات auto-import في خادم Nuxt، لذلك تستدعي مسارات الخادم لديك
checkoutHandler وcustomerPortalHandler وWebhooks من دون عبارات import. يقرأ كل مسار بيانات الاعتماد من runtimeConfig. يعرّض Nuxt للمتصفح runtimeConfig.public فقط، لذلك يبقى مفتاح API وسر webhook على الخادم.التثبيت
1
Install the Nuxt Module
شغّل هذا الأمر في جذر مشروعك:تدرج الوحدة Nuxt 3 (الإصدار 3.13.1 أو أحدث) و
zod 3.25 أو أحدث كتبَعيات peer.2
Register the Module in nuxt.config.ts
أضف عيّن متغيرات البيئة هذه، مثلًا في ملف
@dodopayments/nuxt إلى مصفوفة modules، واربط بيانات اعتمادك بـ runtimeConfig:nuxt.config.ts
.env داخل جذر مشروعك:لا يقرأ خادم Nuxt بعد بنائه ملف
.env. في وقت التشغيل، يتجاوز Nuxt قيمة runtimeConfig فقط من المتغير المطابق لمساره، مثل NUXT_PRIVATE_RETURN_URL بالنسبة إلى private.returnUrl، لذا اضبط هذه المتغيرات في بيئة الاستضافة لديك أيضًا.أمثلة على معالجات مسارات API
تنشئ الأمثلة مسارات خادم في دليل
server/routes/api/. يحدد Nuxt المسارات لكل ملف وفق اسمه ولواحق method، لذلك يعالج checkout.get.ts GET /api/checkout.- Checkout API Route
- Customer Portal API Route
- Webhook API Route
استخدم هذا المعالج لإضافة checkout الخاص بـ Dodo Payments إلى تطبيق Nuxt لديك. يقدّم مسار GET checkout ثابتًا. ويقدّم مسار POST جلسات checkout، أو checkout ديناميكيًا عند ضبط
type: "dynamic".checkout.post.ts تدفق POST واحدًا. استخدم مثال checkout الديناميكي أو مثال جلسة checkout:معالج مسار Checkout
يدعم معالج checkout الطرق الثلاث جميعها لتحصيل المدفوعات باستخدام Dodo Payments:- Static Payment Links: عناوين URL قابلة للمشاركة لتحصيل المدفوعات من دون تعليمات برمجية.
- Dynamic Payment Links: روابط دفع تنشئها مع تفاصيل مخصصة. تستخدم endpoints متوقفة.
checkoutHandler هذه الخيارات:
Static Checkout (GET)
Static Checkout (GET)
Query Parameters المدعومة
يثبّت المبلغ المحصّل بوحدات العملة الأساسية، مثل
12.5 مقابل $12.50. يعمل مع منتجات Pay What You Want فقط، ويتم تجاهله إذا كان أقل من الحد الأدنى لسعر المنتج.returnUrl من إعداداته إلى الرابط كـ redirect_url.تنسيق الاستجابة
يعيد checkout الثابت استجابة JSON تتضمن عنوان URL لـ checkout. في test mode، يستخدم عنوان URLtest.checkout.dodopayments.com.Dynamic Checkout (POST)
Dynamic Checkout (POST)
Checkout Sessions (POST)
Checkout Sessions (POST)
تنشئ جلسات checkout تجربة checkout مستضافة للمشتريات لمرة واحدة والاشتراكات، مع تحكم كامل في التخصيص. يُعد
product_cart الحقل المطلوب الوحيد. إذا لم يتضمن النص return_url، يستخدم المعالج returnUrl من إعداداته.لمزيد من التفاصيل وللاطلاع على كل حقل مدعوم، راجع دليل تكامل Checkout Sessions.لا تعيد جلسة منشأة باستخدام payment_method_id أي عنوان URL لـ checkout، لذلك يستجيب المعالج بـ 400. لتحصيل رسوم من payment method محفوظ، أنشئ الجلسة باستخدام SDK بدلًا من ذلك.تنسيق الاستجابة
تعيد جلسات checkout استجابة JSON تتضمن عنوان URL لـ checkout:معالج مسار Customer Portal
ينشئ معالج مسار Customer Portal جلسة Customer Portal للعميل الذي تحدده، ثم يعيد توجيه المتصفح إليها.Query Parameters
إذا تم ضبطه على
true، يرسل Dodo Payments أيضًا رابط البوابة إلى العميل عبر البريد الإلكتروني.معالج مسار Webhook
يتحقق معالج مسار webhook من كل طلب قبل تشغيل التعليمات البرمجية لديك:- Method: لا يُدعم سوى طلبات POST. تعيد الطرق الأخرى 405.
- Signature Verification: يتحقق من نص الطلب الخام ومن ترويسات
webhook-idوwebhook-timestampوwebhook-signatureباستخدامwebhookKey، وفق مواصفة Standard Webhooks. يعيد 401 عند فشل التحقق. - Payload Validation: يتحقق من صحة payload باستخدام Zod. يعيد 400 عند وجود payload غير صالح.
- Error Handling:
- 401: توقيع غير صالح
- 400: payload غير صالح
- 500: خطأ داخلي أثناء التحقق
- Event Routing: يستدعي
onPayloadلكل حدث، ثم المعالج الخاص بنوع الحدث، ويعيد 200.