Skip to main content
تمنح حزمة @dodopayments/sveltekit تطبيق SvelteKit الخاص بك ثلاثة معالجات مسارات. يعيد Checkout عناوين URL لـ checkout، ويرسل CustomerPortal العميل إلى Customer Portal، ويتحقق Webhooks من أحداث webhook ويوجهها إلى التعليمات البرمجية الخاصة بك.

Checkout Handler

أنشئ عناوين URL لـ checkout من تطبيق SvelteKit الخاص بك.

Customer Portal

اسمح للعملاء بإدارة اشتراكاتهم وبياناتهم.

Webhooks

استلم أحداث webhook الخاصة بـ Dodo Payments وتحقق منها.

التثبيت

1

Install the Package

شغّل هذا الأمر في جذر مشروعك:
تدرج الحزمة SvelteKit 2 (@sveltejs/kit 2.20.3 أو أحدث) وzod 3.25 أو أحدث باعتبارهما تبعيتين نظيرتين.
2

Set Up Environment Variables

أنشئ ملف .env في جذر مشروعك:
أنشئ مفتاح API ضمن Developer → API Keys. أضف نقطة نهاية webhook ضمن Developer → Webhooks وانسخ سر التوقيع الخاص بها إلى DODO_PAYMENTS_WEBHOOK_KEY. يمثل DODO_PAYMENTS_RETURN_URL المكان الذي يصل إليه العملاء بعد checkout. إذا لم تمرر بيئة، تستخدم المعالجات live_mode.
لا ترفع ملف .env أو الأسرار إلى نظام التحكم في الإصدارات.

أمثلة على معالجات المسارات

الأمثلة عبارة عن نقاط نهاية SvelteKit +server.ts ضمن src/routes/api/. وهي تستورد بيانات اعتمادك من $env/static/private، الذي يبقيه SvelteKit بعيدًا عن التعليمات البرمجية من جهة العميل.
استخدم هذا المعالج لإضافة checkout من Dodo Payments إلى تطبيق SvelteKit الخاص بك. يعيد Checkout معالج GET لـ checkout الثابت ومعالج POST لجلسات checkout، أو لـ checkout الديناميكي عند تعيين type: "dynamic". صدّر GET من معالج أُنشئ باستخدام type: "static" أو بدون type، لأن معالج GET لمعالج session أو dynamic يعيد 400.
يعمل طلب checkout الديناميكي عندما يأتي POST من معالج أُنشئ باستخدام type: "dynamic". باستخدام type: "session"، كما في مسار المثال، أرسل طلب جلسة checkout.

معالج مسار checkout

يدعم معالج checkout الطرق الثلاث جميعها لتحصيل المدفوعات باستخدام Dodo Payments:
  • روابط الدفع الثابتة: عناوين URL قابلة للمشاركة لتحصيل المدفوعات دون تعليمات برمجية.
  • روابط الدفع الديناميكية: روابط دفع تنشئها مع تفاصيل مخصصة. وهي تستخدم نقاط نهاية مهملة.
  • جلسات checkout: checkout مستضاف مع سلة منتجات وتفاصيل العميل وخيارات التخصيص. هذا هو التدفق الموصى به.
يقبل Checkout الخيارات التالية:

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.
إذا كان productId مفقودًا، يعيد المعالج استجابة 400. كما تعيد query parameters غير الصالحة ومعرّفات المنتجات غير الموجودة استجابة 400.

تنسيق الاستجابة

يعيد checkout الثابت استجابة JSON تحتوي على عنوان URL لـ checkout. في وضع الاختبار، يستخدم عنوان URL القيمة test.checkout.dodopayments.com.
يعمل checkout الديناميكي كوكيل لنقطتي النهاية المهملتين POST /payments وPOST /subscriptions. يظل متوافقًا مع عمليات الدمج الحالية، لكن ينبغي لعمليات الدمج الجديدة استخدام جلسات checkout.

تنسيق الاستجابة

يعيد checkout الديناميكي استجابة JSON تحتوي على عنوان URL لـ checkout:
تنشئ جلسات checkout checkout مستضافًا لعمليات الشراء لمرة واحدة والاشتراكات، مع تحكم كامل في التخصيص. product_cart هو الحقل المطلوب الوحيد. إذا لم يتضمن النص return_url، يستخدم المعالج returnUrl من إعداداته.لمزيد من التفاصيل وجميع الحقول المدعومة، راجع دليل دمج Checkout Sessions.لا يعيد session أُنشئت باستخدام payment_method_id أي عنوان URL لـ checkout، لذلك يعيد المعالج 400. لشحن طريقة دفع محفوظة، أنشئ session باستخدام SDK بدلًا من ذلك.

تنسيق الاستجابة

تعيد جلسات checkout استجابة JSON تحتوي على عنوان URL لـ checkout:

معالج مسار Customer Portal

ينشئ معالج مسار Customer Portal جلسة Customer Portal للعميل الذي تمرره إليه، ثم يعيد توجيه المتصفح إليها باستجابة 302.
لا يتحقق المعالج من هو المتصل به. يحصل أي شخص يطلبه باستخدام معرّف عميل على Customer Portal الخاص بذلك العميل. احمِ المسار باستخدام نظام المصادقة الخاص بك، ومرّر معرّف العميل الخاص بالمستخدم الذي سجّل دخوله فقط.

Query Parameters

string
مطلوب
معرّف العميل لجلسة البوابة، مثل ?customer_id=cus_123.
boolean
إذا تم تعيينه إلى true، ترسل Dodo Payments أيضًا رابط البوابة إلى العميل عبر البريد الإلكتروني.
يعيد 400 إذا كان customer_id مفقودًا، و500 إذا تعذر إنشاء جلسة البوابة.

معالج مسار Webhook

يتحقق معالج مسار webhook من كل طلب قبل تشغيل التعليمات البرمجية الخاصة بك:
  • Method: لا يتم دعم سوى طلبات POST. تعيد الطرق الأخرى 405.
  • التحقق من التوقيع: يتحقق من نص الطلب الخام والعناوين webhook-id وwebhook-timestamp وwebhook-signature باستخدام webhookKey، وفقًا لمواصفات Standard Webhooks. يعيد 401 إذا فشل التحقق.
  • التحقق من الحمولة: يتحقق من الحمولة باستخدام Zod. يعيد 400 للحمولة غير الصالحة.
  • معالجة الأخطاء:
    • 401: توقيع غير صالح
    • 400: حمولة غير صالحة
    • 500: خطأ داخلي أثناء التحقق
  • توجيه الأحداث: يستدعي onPayload لكل حدث، ثم المعالج الخاص بنوع الحدث، ويعيد 200.
لا يلتقط adaptor الأخطاء التي ترميها المعالجات الخاصة بك. تنتقل هذه الأخطاء إلى SvelteKit، ويفشل الطلب.

معالجات أحداث Webhook المدعومة

يتلقى كل معالج الحمولة التي تم التحقق منها لنوع الحدث الخاص به:
لمعرفة معنى كل حدث، راجع دليل أحداث Webhook.

Prompt لـ LLM

انسخ هذا prompt إلى مساعد البرمجة بالذكاء الاصطناعي ليضيف adaptor إلى مشروعك. ولتزويد وكيلك بوثائق Dodo Payments وskills أيضًا، ثبّت Agent Plugin.
آخر تعديل في ٢٦ سبتمبر ٢٠٢٦