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

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

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

يتطلب Billing الحد الأدنى المتمثل في رمز ISO المكوّن من حرفين Country. استخدم AttachExistingCustomer لإرفاق عميل موجود، أو NewCustomer لإنشاء عميل. تكون قيمة ProductPrice بوحدة العملة الأصغر.

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

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

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

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

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

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

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

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

الموارد

NuGet Package

عرض الحزمة في NuGet Gallery

GitHub Repository

عرض الكود المصدري والمساهمة

API Reference

توثيق API الكامل

Discord Community

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

الدعم

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