Skip to main content
يوفر Rust SDK وصولاً مناسبًا ومبنيًا على النمط غير المتزامن إلى Dodo Payments REST API من التطبيقات المكتوبة بلغة Rust. يقدم الطلبات والاستجابات المكتوبة بقوة، والمساعدين المدمجين للتصفح، والمهلات القابلة للتكوين والبيئات.

التثبيت

أضف SDK إلى مشروعك باستخدام Cargo:
أو أضفها يدويًا إلى Cargo.toml:
يتطلب SDK إصدار Rust 1.75 أو أحدث، مستفيدًا من ميزات النمط غير المتزامن الحديثة لأداء مثالي.

البداية السريعة

يقوم العميل بقراءة مفتاح API الخاص بك من متغير البيئة DODO_PAYMENTS_API_KEY افتراضيًا. قم بتهيئة العميل وقم بإنشاء جلسة الدفع الأولى الخاصة بك:
احفظ دائمًا مفاتيح API الخاصة بك بشكل آمن باستخدام متغيرات البيئة. لا تقم بتثبيتها بشكل مباشر في شفرة المصدر الخاصة بك.

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

Async First

مبني باستخدام Tokio وreqwest بدعم async/await في جميع الأنحاء

Strong Typing

الطلبات والاستجابات المكتوبة بقوة لأمان وقت الترجمة

Auto-Pagination

بث كل عنصر عبر الصفحات أو تقدم صفحة واحدة في كل مرة

Configurable

تكوين البيئات والمهلات وعناوين URL الأساسية لكل عميل

التكوين

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

افتراضيًا، يقرأ Client::from_env() مفتاح API الخاص بك من متغير البيئة DODO_PAYMENTS_API_KEY ويستخدم عنوان URL الأساسي الافتراضي ما لم تقم بتعيين DODO_PAYMENTS_BASE_URL:
يمكنك أيضًا تهيئة العميل بشكل صريح. يعيد Client::new قيمة Result، لذا قم بفكها باستخدام ? داخل دالة تعيد dodopayments::Result:

البيئات

عنوان URL الأساسي الافتراضي هو https://live.dodopayments.com. اختر بيئة أخرى باستخدام Environment enum بدلاً من ترميز عناوين URL يدويًا:
للاستمرار في قراءة مفتاح API من DODO_PAYMENTS_API_KEY عبر from_env() أثناء استهداف بيئة غير افتراضية، تجاوزها على التكوين:

المهلات

مهلة الطلب الافتراضية هي 30 ثانية. تجاوزها لكل عميل:

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

إنشاء جلسة الدفع

قم بإنشاء جلسة دفع:

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

قم بإنشاء واسترجاع معلومات العميل:

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

إنشاء وإدارة الاشتراكات المتكررة:
POST /subscriptions (طريقة subscriptions.create في SDK) متوقفة deprecated. لا تزال تعمل مع عمليات التكامل الحالية، ولكن ينبغي لعمليات التكامل الجديدة إنشاء الاشتراكات من خلال Checkout Session.
يتطلب billing على الأقل رمز ISO مكوّنًا من حرفين country. customer هو تعداد CustomerRequest — مرّر AttachExisting لعميل حالي أو New لعميل جديد. تكون حقول المبالغ مثل product_price بوحدة الفئة الأدنى للعملة (مثلًا، 2500 = ‏25.00 دولارًا أمريكيًا).

الفوترة القائمة على الاستخدام

إدخال أحداث الاستخدام

تتبّع الأحداث المخصصة:

إدراج أحداث الاستخدام

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

تعرض نقاط النهاية الخاصة بالإدراج صفحةً ذات نوع محدد، ويحتوي حقل items فيها على الصفحة الحالية من النتائج. يمكنك بث كل عنصر عبر جميع الصفحات باستخدام into_stream:
أو الانتقال صفحةً واحدةً في كل مرة باستخدام get_next_page:

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

تعرض كل طريقة قيمة dodopayments::Result<T>. يتم تمثيل حالات الفشل بتعداد dodopayments::Error. طابِق عليه لمعالجة أخطاء API بشكل منفصل عن أخطاء النقل:

نقاط النهاية غير الموثقة

لاستدعاء نقطة نهاية لم يتم كشفها بعد كطريقة ذات نوع محدد، استخدم أداة البناء منخفضة المستوى request، التي تطبّق المصادقة وعنوان URL الأساسي:

الموارد

GitHub Repository

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

Crates.io

عرض الحزمة المنشورة وإصداراتها

API Reference

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

Discord Community

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

الدعم

هل تحتاج إلى مساعدة بشأن Rust SDK؟

المساهمة

نرحّب بالمساهمات! راجع إرشادات المساهمة للبدء.
آخر تعديل في ١٧ أغسطس ٢٠٢٦