Skip to main content
يوفر C# SDK وصولًا سهلًا إلى REST API الخاص بـ Dodo Payments من التطبيقات المكتوبة بلغة C#. ويتضمن API قائمًا على async Task مع كتابة قوية، وإعادة محاولات تلقائية، ومعالجة شاملة للأخطاء.

التثبيت

ثبّت الحزمة من NuGet:
يتطلب SDK الإصدار .NET 8.0 أو إصدارًا أحدث. وهو يعمل مع ASP.NET Core وتطبيقات Console وأنواع مشاريع .NET الأخرى.

البدء السريع

هيّئ العميل وأنشئ جلسة checkout:
احرص دائمًا على تخزين مفاتيح API بأمان باستخدام متغيرات البيئة أو user secrets أو Azure Key Vault. لا تضعها مطلقًا بشكل مباشر في الكود المصدري أو ترفعها إلى version control.

الميزات الأساسية

Async/Await

API كامل قائم على async Task لإجراء عمليات غير حاجبة

Strong Typing

أمان شامل للأنواع باستخدام nullable reference types

Smart Retries

إعادة محاولات تلقائية مع exponential backoff للأخطاء المؤقتة

Error Handling

تسلسل استثناءات مضمّن لإدارة دقيقة للأخطاء

الإعداد

متغيرات البيئة

.env

الإعداد اليدوي

البيئات

بدّل بين الوضع المباشر ووضع الاختبار:

إعادة المحاولات

يعيد SDK المحاولة تلقائيًا مرتين افتراضيًا مع exponential backoff. وتتم إعادة المحاولة عند حدوث أخطاء الاتصال ورموز الحالة 408 و409 و429 و5xx.

مهلات الانتظار

تنتهي مهلة الطلبات بعد دقيقة واحدة افتراضيًا.

التجاوزات الخاصة بكل طلب

عدّل الإعداد مؤقتًا لطلب واحد باستخدام WithOptions:

العمليات الشائعة

إنشاء جلسة checkout

إدارة العملاء

معالجة الاشتراكات

POST /subscriptions (طريقة subscriptions.create في SDK) مهملة. لا تزال تعمل مع عمليات التكامل الحالية، ولكن ينبغي لعمليات التكامل الجديدة إنشاء الاشتراكات من خلال Checkout Session.
يتطلب Billing رمز Country المكوّن من حرفين وفق معيار ISO كحد أدنى. استخدم AttachExistingCustomer لإرفاق عميل حالي، أو NewCustomer لإنشاء عميل. تكون قيمة ProductPrice بأدنى فئة للعملة.

معالجة الأخطاء

يطرح SDK استثناءات محددة استنادًا إلى رمز حالة HTTP. ترث جميع أخطاء 4xx من DodoPayments4xxException. أنواع الاستثناءات الأخرى:
  • DodoPaymentsIOException: أخطاء الشبكة المتعلقة بالإدخال والإخراج
  • DodoPaymentsInvalidDataException: تعذّر تفسير البيانات المحللة
  • DodoPaymentsException: الفئة الأساسية لجميع الاستثناءات

ترقيم الصفحات

ترقيم الصفحات التلقائي

كرّر على جميع النتائج عبر جميع الصفحات باستخدام طريقة Paginate، التي تُرجع IAsyncEnumerable:

ترقيم الصفحات اليدوي

التكامل مع ASP.NET Core

سجّل العميل في حاوية DI لديك:
Program.cs
appsettings.json
لأغراض التطوير، استخدم أسرار المستخدم بدلًا من تخزين المفاتيح في appsettings.json:

الموارد

NuGet Package

عرض الحزمة على NuGet Gallery

GitHub Repository

عرض التعليمات البرمجية المصدر والمساهمة

API Reference

وثائق API الكاملة

Discord Community

احصل على المساعدة وتواصل مع المطورين

الدعم

هل تحتاج إلى مساعدة بشأن C# SDK؟
آخر تعديل في ١٧ أغسطس ٢٠٢٦