الميزات
- TUI تفاعلي: شغّل
dodoدون وسيطات لفتح الواجهة التفاعلية، مع لوحة أوامر وسجل وإشعارات مباشرة. - مساعد AI مدمج: اطرح الأسئلة أو نفّذ الإجراءات باللغة الإنجليزية العادية باستخدام
/ai. يعمل المساعدdodopayments-mcpمحليًا ولا يحتاج إلى إعداد إضافي. - بيانات اعتماد مشفّرة: تُخزّن مفاتيح API في
~/.dodopayments/config.json، وتُشفّر باستخدام AES-256-GCM ومفتاح مشتق من جهازك. لا تُخزّن بيانات اعتماد بنص واضح على القرص. - التحديث التلقائي: يتحقق CLI من الإصدارات الجديدة عند بدء التشغيل ويُعلمك بها في TUI. بالنسبة إلى عمليات التثبيت باستخدام npm وBun، شغّل
/updateللترقية في مكانها. - أدوات Webhook: مرّر webhooks الخاصة بوضع الاختبار إلى خادمك المحلي، أو أرسل حمولات webhook وهمية دون اتصال.
- التهيئة الأولية: أضف مسارات الفوترة إلى مشاريع Next.js وExpress وBetter Auth باستخدام
dodo init.
التثبيت
على macOS أو Linux، ثبّت أحدث ملف ثنائي للإصدار باستخدام نص التثبيت البرمجي:dodo في أول دليل قابل للكتابة من بين /usr/local/bin و~/.local/bin و~/bin، أو في ~/.local/bin إذا لم يكن أي منها قابلًا للكتابة. لتثبيت إصدار محدد، عيّن متغير البيئة DODO_VERSION إلى الوسم الخاص به. لاختيار الدليل، عيّن DODO_INSTALL_DIR.
التثبيت باستخدام NPM أو Bun
إذا كان Node.js أو Bun مثبتًا لديك، فثبّت حزمةdodopayments-cli عالميًا. تسحب عمليات التثبيت باستخدام مديري الحزم أحدث إصدار منشور:
تعمل الأوامر الفرعية المباشرة مثل
dodo login على Node.js 18 أو أحدث. عند التثبيت من خلال مدير حزم، تحتاج TUI التفاعلية أيضًا إلى Bun. أما الملفات الثنائية للإصدارات فلا تحتاج إلى أي بيئة تشغيل.التثبيت اليدوي (من دون الحاجة إلى Node / Bun)
للتثبيت من دون تشغيل نص برمجي عن بُعد، نزّل الملف الثنائي بنفسك.1
Download the Binary
نزّل الملف الثنائي المتوافق مع منصتك من أحدث إصدار على GitHub.
2
Rename the Binary to dodo
3
Move It to a Directory on Your PATH
في Windows، يتطلب نقل الملف إلى
C:\Windows\System32 امتيازات المسؤول.4
(Optional) Verify the Download
ينشر كل إصدار ملف
SHA256SUMS.txt. نزّله بجوار الملف الثنائي، ثم تحقّق من الملف الثنائي:المصادقة
سجّل الدخول باستخدام مفتاح API قبل تشغيل الأوامر التي تقرأ حسابك أو تغيّره. لتسجيل الدخول باستخدام أمر فرعي مباشر، مرّر المفتاح ووضعه،test أو live:
- تفتح صفحة Developer → API Keys في لوحة التحكم داخل المتصفح.
- تطلب منك لصق مفتاح API.
- تطلب منك اختيار Test Mode أو Live Mode.
~/.dodopayments/config.json.
يُشتق مفتاح التشفير من جهازك، ولذلك تعمل بيانات الاعتماد المخزّنة على ذلك الجهاز فقط. إذا قمت بالترقية من v3.0.x، الذي كان يخزّن المفاتيح في سلسلة مفاتيح نظام التشغيل، فأعد تشغيل
dodo login. تُرحّل المفاتيح الموجودة في ملف ~/.dodopayments/api-key النصي القديم تلقائيًا، ثم يُحذف الملف.تبديل الأوضاع وتسجيل الخروج
يمكنك الاحتفاظ بمفتاح لوضع الاختبار ومفتاح لوضع الإنتاج مسجّلَين في الوقت نفسه. لتبديل الوضع النشط في TUI، شغّل/switch. لإزالة المفاتيح المخزّنة:
test أو live أو all. في TUI، يطلب منك /logout اختيار All accounts أو Test Mode أو Live Mode، ثم يطلب منك التأكيد.
الاستخدام
يمكنك استخدام CLI في وضعين.1. TUI التفاعلية (موصى بها)
شغّلdodo دون وسيطات لفتح الواجهة التفاعلية:
/ لفتح لوحة الأوامر. ينتقل النص الذي لا يبدأ بـ / إلى مساعد AI.
2. الأوامر الفرعية المباشرة
شغّل أمرًا من دون فتح TUI:dodo بـ /، مثل /payments list 1. الأوامر المعلّمة بـ TUI only هي معالجات تفاعلية. في الوضع المباشر، تطبع رسالة تطلب منك فتح TUI.
مساعد AI
اطرح أسئلة حول حسابك أو نفّذ إجراءات باللغة الإنجليزية العادية. يعمل المساعدdodopayments-mcp على جهازك، لذلك لا يحتاج إلى إعداد إضافي أو تدفق OAuth. ويستدعي Dodo Payments API من جهازك باستخدام مفتاحك المخزّن، ويرسل مطالباتك إلى نموذج اللغة.
في الوضع المباشر، شغّل
dodo ai متبوعًا بسؤالك. أمثلة في TUI:
تهيئة المشروع
يضيفdodo init مسارات فوترة Dodo Payments إلى مشروع موجود. ويكتب ملفات المسارات، ويثبّت حزمة المحوّل @dodopayments/* المطابقة، ويضيف أي متغيرات DODO_PAYMENTS_* مفقودة إلى ملف .env مع قيم نائبة. ويتجاوز الملفات والمتغيرات الموجودة مسبقًا، ويعمل من دون تسجيل الدخول.
بالنسبة إلى تهيئة Better-Auth، يمكنك تمرير قائمة مفصولة بفواصل بالمكوّنات الإضافية المراد إنشاؤها:
checkout وportal وusage وwebhooks. ومن دون قائمة، ينشئ المكوّنات الأربعة كلها.
إذا كان مشروعك يحتوي على دليل
src/، يكتب المكوّن الملفات بداخله. ويستخرج أمر التثبيت من ملف القفل الخاص بالمشروع (bun أو pnpm أو yarn)، ويستخدم npm عندما لا يعثر على أي منها.مرجع الأوامر
تحتاج هذه الأوامر إلى مفتاح API مسجّل الدخول. تقبل أوامر القائمة رقم صفحة اختياريًا، وتكون قيمته الافتراضية 1، وتعرض ما يصل إلى 100 عنصر في كل صفحة.المنتجات
إدارة كتالوج المنتجات.المدفوعات
عرض معاملات الدفع.العملاء
إدارة عملائك.الخصومات
إدارة رموز الخصم.التراخيص
عرض مفاتيح الترخيص. تُكتب الكلمةlicences بهذه الصيغة.
الإضافات
إدارة إضافات المنتجات.المبالغ المستردة
عرض معلومات المبالغ المستردة.Checkout
إنشاء جلسات checkout مستضافة.Webhooks
يحتوي CLI على أداتين لـ webhook مخصصتين للتطوير: مستمع يمرّر webhooks الخاصة بوضع الاختبار إلى خادمك المحلي، ومُشغّل يرسل حمولات webhook وهمية إلى أي endpoint.
في الوضع المباشر، تكون الوسيطات مطلوبة. في TUI، شغّل
/wh listen أو /wh trigger دون وسيطات لفتح معالج تفاعلي.
الاستماع إلى Webhooks
مرّر webhooks من حساب Dodo Payments إلى خادم التطوير المحلي في الوقت الفعلي.1
Enter Your Local Endpoint URL
مرّر عنوان URL المحلي الذي يجب أن يستقبل webhooks، مثل
http://localhost:3000/webhook. في معالج TUI، يطلب منك CLI إدخاله.2
Automatic Setup
إذا لم يتضمن حسابك endpoint لـ webhook خاص بخادم الترحيل في CLI، ينشئ CLI واحدًا. يظهر endpoint في Developer → Webhooks. ثم يفتح CLI اتصال WebSocket بالترحيل لتلقي الأحداث في الوقت الفعلي.
3
Receive and Forward
عند إطلاق حدث webhook، مثل دفعة اختبار أو تغيير في اشتراك، يمرّر CLI الحمولة والعناوين إلى endpoint المحلي في صورة طلب
POST. ويسجّل نوع الحدث واستجابة endpoint الخاص بك، ثم يرسل الاستجابة إلى الترحيل.تقوم خدمة الترحيل وCLI بتحليل نص JSON وإعادة تسلسله قبل إعادة توجيهه. إذا اختلف النص المُعاد توجيهه عن النص الأصلي بايتًا مقابل بايت، كما يحدث مثلًا في تنسيق الأرقام، فسيفشل التحقق من التوقيع حتى إذا كانت الرؤوس سليمة.
تشغيل Webhooks الخاصة بالاختبار
أرسل حمولة webhook وهمية إلى أي endpoint، من دون إنشاء معاملات حقيقية./wh trigger في TUI خلال الخطوات التالية:
- تحديد عنوان URL لـ endpoint كوجهة.
- إدخال Business ID وProduct ID وMetadata (كائن JSON) والبريد الإلكتروني للعميل وCustomer ID اختياريًا للحمولة. تستخدم الحقول الفارغة قيمًا نائبة.
- اختيار حدث لإرساله من قائمة تفاعلية. يمكنك إرسال عدة أحداث بالتتابع. اختر exit للإنهاء.
لا يتطلب
dodo wh trigger تسجيل الدخول. فهو يعمل كمولّد محلي غير متصل بحمولات webhook.أحداث Webhook المدعومة
يمكن لـdodo wh trigger إرسال حمولات وهمية لـ 46 من أصل 48 نوعًا من الأحداث التي يرسلها Dodo Payments. ولا يدعم subscription.past_due أو subscription.unpaused. مرّر اسم الحدث كما هو مدرج تمامًا:
تختلف ثلاثة من أسماء التشغيل عن حدث
type في الحمولة التي ترسلها: يرسل payment.success قيمة payment.succeeded، ويرسل refund.success قيمة refund.succeeded، ويرسل licence.created قيمة license_key.created.
تتبع أشكال الحمولات الوهمية المخططات المقابلة في مرجع API. راجع أحداث Webhook لمعرفة معنى كل حدث ووقت إصداره من Dodo Payments في الإنتاج.
متغيرات البيئة
يغيّر هذا المتغير طريقة اتصالdodo wh listen:
التحديثات
يتحقق CLI من وجود إصدار أحدث عند بدء التشغيل، ويعرض إشعارًا في شريط الحالة عند توفره. لترقية عملية تثبيت npm أو Bun من TUI، شغّل:/update ترقية ملف ثنائي للإصدار. بالنسبة إلى عمليات تثبيت الملفات الثنائية، بما فيها عمليات التثبيت باستخدام نص التثبيت البرمجي، يعرض رابطًا لأحدث إصدار على GitHub بدلًا من ذلك. للترقية من shell، أعد تشغيل الأمر الذي استخدمته للتثبيت:
الموارد
GitHub Repository
الشيفرة المصدرية والإصدارات.
npm Package
حزمة
dodopayments-cli في سجل npm.الدعم
- Discord: انضم إلى خادم المجتمع.
- GitHub: افتح issue في المستودع.
- البريد الإلكتروني: تواصل مع support@dodopayments.com.