Skip to main content
يدير Dodo CLI موارد Dodo Payments، ويجيب عن الأسئلة المتعلقة بحسابك باستخدام مساعد AI مدمج، وينشئ جلسات checkout، ويختبر webhooks، كل ذلك من الطرفية. استخدم TUI التفاعلي، أو شغّل الأوامر الفرعية المباشرة من البرامج النصية.

الميزات

  • 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، ثبّت أحدث ملف ثنائي للإصدار باستخدام نص التثبيت البرمجي:
يتحقق النص البرمجي من الملف الثنائي مقابل تجزئات SHA-256 الخاصة بالإصدار. ويثبّت 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:
أو من داخل TUI التفاعلية:
تتبع عملية تسجيل الدخول في TUI الخطوات التالية:
  1. تفتح صفحة Developer → API Keys في لوحة التحكم داخل المتصفح.
  2. تطلب منك لصق مفتاح API.
  3. تطلب منك اختيار Test Mode أو Live Mode.
يتحقق كلا الأمرين من المفتاح من خلال طلب إلى API، ثم يخزّنه مشفّرًا في ~/.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:
مثلًا:
تسرد جداول المرجع أدناه كل أمر بصيغة الوضع المباشر. في 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 إلى خادم التطوير المحلي في الوقت الفعلي.
يتطلب dodo wh listen مفتاح API من Test Mode. لا تدعم عملية الاستماع مفاتيح Live Mode.
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 الخاص بك، ثم يرسل الاستجابة إلى الترحيل.
يحافظ المستمع على عناوين webhook الأصلية (webhook-id وwebhook-signature وwebhook-timestamp) عند تمريرها إلى endpoint المحلي، حتى تتمكن من اختبار منطق التحقق من التوقيع.
تقوم خدمة الترحيل وCLI بتحليل نص JSON وإعادة تسلسله قبل إعادة توجيهه. إذا اختلف النص المُعاد توجيهه عن النص الأصلي بايتًا مقابل بايت، كما يحدث مثلًا في تنسيق الأرقام، فسيفشل التحقق من التوقيع حتى إذا كانت الرؤوس سليمة.

تشغيل Webhooks الخاصة بالاختبار

أرسل حمولة webhook وهمية إلى أي endpoint، من دون إنشاء معاملات حقيقية.
الأحداث التي يتم تشغيلها غير موقّعة: لا يتضمن الطلب أي عنوان webhook-id أو webhook-signature أو webhook-timestamp. أثناء الاختبار، حلّلها باستخدام الطريقة غير المتحقَّق منها (unsafeUnwrap في TypeScript، وunsafe_unwrap في Python، وUnsafeUnwrap في Go) بدلًا من unwrap، ثم عد إلى unwrap قبل الانتقال إلى الإنتاج.
في الوضع المباشر، تستخدم الحمولة معرّفات نائبة وتفاصيل عميل نائبة. يوجّهك معالج /wh trigger في TUI خلال الخطوات التالية:
  1. تحديد عنوان URL لـ endpoint كوجهة.
  2. إدخال Business ID وProduct ID وMetadata (كائن JSON) والبريد الإلكتروني للعميل وCustomer ID اختياريًا للحمولة. تستخدم الحقول الفارغة قيمًا نائبة.
  3. اختيار حدث لإرساله من قائمة تفاعلية. يمكنك إرسال عدة أحداث بالتتابع. اختر 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 في الإنتاج.
يتم إصدار payout.created بينما لا تزال حالة الدفعة تشير إلى not_initiated، ولذلك تعكس الحمولة الوهمية ذلك أيضًا. راجع أحداث الدفعات لمعرفة دورة حياة الدفعة كاملة.

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

يغيّر هذا المتغير طريقة اتصال dodo wh listen:

التحديثات

يتحقق CLI من وجود إصدار أحدث عند بدء التشغيل، ويعرض إشعارًا في شريط الحالة عند توفره. لترقية عملية تثبيت npm أو Bun من TUI، شغّل:
لا يستطيع /update ترقية ملف ثنائي للإصدار. بالنسبة إلى عمليات تثبيت الملفات الثنائية، بما فيها عمليات التثبيت باستخدام نص التثبيت البرمجي، يعرض رابطًا لأحدث إصدار على GitHub بدلًا من ذلك. للترقية من shell، أعد تشغيل الأمر الذي استخدمته للتثبيت:

الموارد

GitHub Repository

الشيفرة المصدرية والإصدارات.

npm Package

حزمة dodopayments-cli في سجل npm.

الدعم

آخر تعديل في ٢٦ سبتمبر ٢٠٢٦