@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 المدعومة
string
مطلوب
معرّف المنتج، مثل
?productId=pdt_nZuwz45WAs64n3l07zpQR.integer
افتراضي:"1"
كمية المنتج.
string
الاسم الكامل للعميل. يتم تجاهله إذا تم تقديم
firstName أو lastName.string
الاسم الأول للعميل.
string
اسم العائلة للعميل.
string
عنوان البريد الإلكتروني للعميل.
string
بلد العميل، وفق رمز ISO 3166-1 alpha-2.
string
سطر عنوان العميل.
string
مدينة العميل.
string
ولاية العميل أو مقاطعته.
string
الرمز البريدي للعميل.
boolean
عيّنه إلى
true لتعطيل حقل الاسم الكامل.boolean
عيّنه إلى
true لتعطيل حقل الاسم الأول.boolean
عيّنه إلى
true لتعطيل حقل اسم العائلة.boolean
عيّنه إلى
true لتعطيل حقل البريد الإلكتروني.boolean
عيّنه إلى
true لتعطيل حقل البلد.boolean
عيّنه إلى
true لتعطيل حقل سطر العنوان.boolean
عيّنه إلى
true لتعطيل حقل المدينة.boolean
عيّنه إلى
true لتعطيل حقل الولاية.boolean
عيّنه إلى
true لتعطيل حقل الرمز البريدي.string
عملة الدفع، مثل
USD.boolean
افتراضي:"true"
إظهار محدد العملة أو إخفاؤه.
number
يثبّت المبلغ المحصّل بوحدات العملة الأساسية، مثل
12.5 مقابل $12.50. يعمل مع منتجات Pay What You Want فقط، ويتم تجاهله إذا كان أقل من الحد الأدنى لسعر المنتج.boolean
افتراضي:"true"
إظهار قسم الخصومات أو إخفاؤه.
string
يتم تمرير أي query parameter يبدأ بـ
metadata_ كـ metadata.returnUrl من إعداداته إلى الرابط كـ redirect_url.تنسيق الاستجابة
يعيد checkout الثابت استجابة JSON تتضمن عنوان URL لـ checkout. في test mode، يستخدم عنوان URLtest.checkout.dodopayments.com.Dynamic Checkout (POST)
Dynamic Checkout (POST)
- أرسل المعلمات في نص JSON ضمن طلب POST.
- يدعم المدفوعات لمرة واحدة والمدفوعات المتكررة.
- يلزم وجود
billingوcustomer. - للاطلاع على كل حقل مدعوم في النص، راجع:
تنسيق الاستجابة
يعيد checkout الديناميكي استجابة JSON تتضمن عنوان URL لـ checkout: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
string
مطلوب
معرّف العميل لجلسة البوابة، مثل
?customer_id=cus_123.boolean
إذا تم ضبطه على
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.