ابدأ هنا

التوثيق

ثبّت البرنامج، واستقبل المدفوعات واعتنِ بخادمك.

جديد هنا؟ اتبع الشروحات خطوة بخطوة ←

متطلبات الخادم الافتراضي

استخدم خادم Linux افتراضيًا جديدًا بصلاحية root، وليس خادم موقع أو قاعدة بيانات قائمًا. لا تحتاج إلى Docker أو مترجم برمجي أو عقد بلوكتشين.

الخادم الافتراضيالحد الأدنى
استخدام خفيف
الموصى به
المعالج1 vCPU2 vCPU
الذاكرة2 GB4 GB
قرص SSD20 GB60 GB

الحد الأدنى نقطة بداية للاستخدام الخفيف على صور Ubuntu/Debian الأساسية، وليس ضمانًا للأداء. تشمل سعة القرص نظام Linux؛ اترك 3 GiB على الأقل فارغة قبل الإعداد، ومساحة إضافية للتحديثات والسجل والنسخ الاحتياطية.

يتطلب التثبيت المباشر x86-64 وsystemd 247+ وPython 3.9+. لا يشمل ARM64 أو Alpine/OpenRC.

إصدارات Linux وملاحظات الموارد
  • Ubuntu 22.04+ أو Debian 12+؛ وMint 21+ وPop!_OS 22+.
  • Fedora 42+؛ أو Rocky أو AlmaLinux أو RHEL أو Oracle Linux أو CentOS Stream بإصدارات 9–10.
  • openSUSE Leap 16+ أو Tumbleweed؛ أو Arch أو Manjaro أو EndeavourOS.

اختر إصدارًا ما زال يتلقى صيانة من مزوّده. إذا كانت متطلبات النظام أعلى، فهي التي تُطبّق: openSUSE Leap 16 يتطلب قرصًا أكبر من 40 GB.

قد تحتاج شبكات أكثر وفواتير متزامنة أكثر إلى معالج وذاكرة أكبر. زيادة حجم الخادم لا تلغي حصص RPC. تتوفر اختبارات آلية لمسارات الإعداد، لكن اختبار تثبيت كامل على خادم جديد لم يكتمل لكل توزيعة.

التثبيت

وجّه أسماء المضيفين الافتراضية هذه إلى خادمك، أو اختر أسماءك:

  • merchant.example.com: لوحة التحكم
  • pay.example.com: صفحة الدفع
  • api.example.com: API

استخدم سجلات DNS-only أثناء الإعداد. افتح TCP 80/443 في جدارَي الحماية وأبقِ SSH متاحًا. لا تكشف PostgreSQL أو التطبيق على المنفذين 5432/8080 للإنترنت.

bash <(curl -fsSL https://releases.whollycrypto.com/setup_wholly.sh)

يتحقق الإعداد من التنزيلات ويضبط PostgreSQL وNginx وHTTPS والخدمات. تفضّل الحاويات؟ راجع التثبيت الاختياري عبر Docker.

افحص أولًا أو استأنف الإعداد

تحتاج إلى إصدار محدد؟ على خادم جديد، أضف --version 7.8.1 لتثبيت ذلك الإصدار الموقّع بالضبط. من دون هذا الخيار، يستخدم الإعداد أحدث إصدار مستقر.

يحتفظ الاستئناف بالإصدار المحدد والخطوات المكتملة، حتى مع استخدام GitHub كبديل. ولا يخفض إصدار تثبيت موجود أبدًا.

راجع برنامج التثبيت. أضف --check إلى الأمر لفحص التوافق دون تثبيت، أو --help لعرض الخيارات.

استأنف التقدم المحفوظ دون استبدال المفاتيح أو الإعدادات:

bash <(curl -fsSL https://releases.whollycrypto.com/setup_wholly.sh) --resume

يمكن للنطاقات الأساسية الإضافية استخدام أسماء الخدمات نفسها. يجب أن تشير أي سجلات IPv6 إلى هذا الخادم أيضًا. شغّل وكيل Cloudflare فقط بعد التحقق من النطاقات.

الإعداد لأول مرة

  1. أدخل بيانات HTTP Basic. أنشئ حساب المسؤول، واختر اللغة والمنطقة الزمنية وراجع الترخيص و سياسة الخصوصية.
  2. راجع الإعدادات ← اتصالات الشبكات. استخدم مزوّدين احتياطيين مستقلين وسليمين يدعمون فحص المدفوعات.
  3. أنشئ مشروعًا ثم أول متجر له.
  4. احفظ نسخة احتياطية من محافظ المشروع. اختر الشبكات المقبولة والرموز المتحقق منها في المتجر.
  5. حدّد العملة والتأكيدات ومدة الصلاحية وهامش الصرف ونسبة السماح. تحقق من رصيد المعالجة قبل إنشاء الفواتير.

تطلب رموز QR كامل المبلغ المتبقي. نسبة السماح تتيح قبول النقص فقط؛ وتظل التأكيدات مطلوبة.

مبالغ العملات المستقرة

تُقرّب عروض الأسعار الجديدة للعملات المستقرة المعروفة إلى أعلى: 1.321 USDC → 1.33 USDC، حتى عندما تكون نسبة السماح صفرًا. الحد الأدنى: 0.01 رمز.

تبقى الفواتير الموجودة والأرصدة وبواقي المدفوعات الجزئية بدقتها الأصلية. وتحافظ الرموز الأخرى أو المخصّصة على الدقة المعتادة.

التفعيل التلقائي

يسجّل إنشاء حساب المسؤول حسابَ رصيد المعالجة تلقائيًا ببريدك، مع رصيد ترحيبي لمرة واحدة يعادل 10 USD . لا تحتاج إلى رمز تفعيل.

أنشئ فاتورة. يُعاد التفعيل المعلّق تلقائيًا؛ وإعادة الاتصال لا تمنح رصيدًا جديدًا.

بيانات الدخول والإعدادات الافتراضية

تُحفظ بيانات دخول Basic Auth في /root/whollycrypto/config/setup-credentials.txt. وهي منفصلة عن البريد وكلمة المرور للوحة التحكم.

ترث المشاريع الجديدة العملة والمنطقة الزمنية الافتراضيتين للنظام؛ وتستخدم المتاجر عملة المشروع. تُدار المناطق الزمنية للحسابات الموجودة بشكل منفصل في الإعدادات ← الحساب.

whollycrypto welcome يعرض رابط لوحة التحكم.

وضع التاجر أم المشغّل

تختار التثبيتات الجديدة بدءًا من 7.0.0 وضع التشغيل أثناء إعداد أول مسؤول. لا يمكن التراجع عن هذا الاختيار؛ يتطلب تغيير الوضع تثبيتًا جديدًا. تبقى التثبيتات السابقة للإصدار 7 في وضع التاجر، حتى إن لم يُنشأ مسؤول بعد.

التاجر: أدِر مشاريعك ومتاجرك. المشغّل: استضف أعمال تجار منفصلة في تثبيت واحد، وحدّد رسوم المعالجة المدفوعة مسبقًا الخاصة بك. يشمل ذلك نشاطك الخاص دون رسوم داخلية للمشغّل.

أعدّ حسابات التجار المستضافين
  1. العقد وأسعار الصرف والنطاقات المشتركة ورصيد التثبيت وتحديثاته تُدار من لوحة المشغّل.
  2. افتح المحافظ ← إنشاء محافظ استقبال لـBTC وETH وUSDC/USDT على Ethereum. احفظ نسختين احتياطيتين لعبارتي الاستعادة المستقلتين. لا يصدر هذا المشروع المخصّص فواتير مبيعات؛ ويُحتفظ بمتجر الاستقبال الموجود.
  3. أضف تاجرًا مع عملة رصيد ونسبة رسوم وبريد المسؤول. شارك الدعوة وبيانات Basic Auth الخاصة بالتاجر بشكل خاص. يختار التاجر كلمة مروره. لا تشارك بيانات Basic Auth الخاصة بالمشغّل أبدًا.
  4. يشحن التجار الرصيد عبر صفحة الدفع الخاصة بك، أو تسجّل أنت تعديلًا للرصيد مع توضيح سببه. يلزم الرصيد قبل إنشاء المشاريع أو المتاجر. أدِر المستخدمين وسجل الرصيد من التجار ← إدارة.

يطلب إعداد المشغّل عنوانًا رابعًا مثل operator.example.com، مع اسم مستخدم وكلمة مرور Basic Auth خاصَّين به. اختر الاسم، ووجّه DNS إلى الخادم، وافحص DNS وفعّل HTTPS. تفتح اللوحة مباشرة على ذلك العنوان. تبقى عناوين التاجر والدفع وAPI منفصلة.

استخدم بيانات Basic Auth الجديدة للمشغّل، ثم بريد المسؤول وكلمة مروره. لا تتغير بيانات Basic Auth الخاصة بالتاجر. يمكن استئناف الإعداد بعد أخطاء DNS أو الشهادات. ويكمل المشغّلون القادمون من 7.0.0 هذه الخطوة أيضًا؛ وتبقى العناوين النشطة الموجودة متاحة.

الرسوم والعزل والمسؤولية

عند نسبة 3%، تكلف فاتورة بقيمة 100 EUR مقدار 3 EUR من رصيد التاجر. إذا اختلفت عملة الرصيد، يُحفظ سعر صرف العملة النقدية عند إنشاء الفاتورة مع الرسوم.

يدفع المشغّل رسوم تثبيت Wholly Crypto المعتادة بشكل منفصل. لا تُقسّم أموال العميل على الشبكة. ولا تُفرض الرسوم مرة أخرى على شراء الرصيد.

لا يُضاف رصيد الشحن إلا بعد تسوية متحقق منها تلقائيًا. فتح صفحة الدفع أو قبول فاتورة يدويًا لا يضيف الرصيد. ينتج عن التراجع قيود في دفتر الحسابات؛ وإذا عادت دفعة شحن سبق عكسها، فهي تحتاج إلى مراجعة المشغّل.

انخفاض رصيد التاجر المستضاف يوقف IPN وwebhooks وتجميع الأموال وإنشاء مشاريع أو متاجر جديدة. تستمر فواتير العملاء الموجودة والاستقبال. قد يوقف انخفاض رصيد التثبيت الأتمتة لدى كل الأعمال المستضافة. تعطيل تاجر يمنع أيضًا تسجيل الدخول والفواتير الجديدة، مع استمرار مراقبة المدفوعات القديمة.

هذا عزل على مستوى التطبيق، وليس خادمًا افتراضيًا منفصلًا لكل تاجر. لا يستطيع التجار الوصول إلى مشاريع بعضهم أو محافظهم أو بيانات API أو منصات التداول أو الأرصدة. يستطيع مسؤول الخادم الوصول إلى مفاتيح المحافظ الساخنة المستضافة. أخبر التجار بذلك قبل انضمامهم؛ واستخدم استضافة موثوقة ونسخًا احتياطية مستقلة وموارد مناسبة للأعمال المشتركة.

أموال المشغّل والدعوات

متاح في وضع المشغّل بدءًا من 7.1.0.

المحافظ والأموال

بدءًا من 7.2.0، المحافظ تدير أرصدة الاستقبال والعناوين والنسخ الاحتياطية؛ تجميع الأموال يتولى الإرسال والقواعد التلقائية. احتفظ بـETH لرسوم الرموز. شحنات رصيد التجار تتابع مشترياتهم. يدفع الرصيد في رأس الصفحة رسوم التثبيت بشكل منفصل. نشاطي يفتح لوحة نشاطك الخاص في تبويب جديد.

افتح الشؤون المالية لمتابعة الرسوم المكتسبة ورسوم التثبيت المتحقق منها والهامش التقديري وأرصدة التجار الحالية. رشّح حسب التاريخ أو التاجر أو عملة التقارير؛ وصدّر CSV.

تجمع التقارير الفواتير حسب أول تسوية وتعكس أحدث عمليات عكس رسومها. الأرصدة المدفوعة مسبقًا ليست إيرادات. تبقى رسوم نشاطك الخاص منفصلة. الرسوم المعلّقة أو أسعار الصرف المفقودة تجعل الهوامش المتأثرة غير متاحة. تستخدم المبالغ المحوّلة أسعار العملات النقدية الحالية المخزّنة مؤقتًا؛ ولا تشمل الغاز وتكاليف التشغيل.

ادعُ مستخدمين أو أعد تعيين كلمات المرور

إضافة تاجر تنشئ دعوة. بدءًا من 7.3.0، يمكنك اختيار رصيد بداية مجاني بعملة رصيد التاجر؛ ويُسمح بالصفر. هذا لا يشحن رصيد المشغّل الخاص بك. إرسال الدعوة بالبريد الإلكتروني مفعّل افتراضيًا.

أعدّ مزوّد SMTP في الإعدادات ← بريد الدعوات أولًا، باستخدام TLS أو STARTTLS. اختبار الاتصال لا يرسل بريدًا. أو ألغِ خيار البريد وشارك الرابط بشكل خاص. فشل إرسال البريد لا يلغي الحساب أو الرصيد؛ لا تنشئ التاجر مرة أخرى.

لرابط آخر أو لإعادة تعيين كلمة المرور، افتح التجار ← إدارة ← حسابات المستخدمين. قبول SMTP للرسالة لا يضمن وصولها إلى صندوق الوارد. شارك بيانات Basic Auth الخاصة بالتاجر منفصلة، ولا تشارك بيانات المشغّل أبدًا.

تدوم الدعوات 48 ساعة وروابط إعادة التعيين ساعة واحدة. يعمل كل رابط مرة واحدة. استبدل الرابط أو ألغِه من الشاشة نفسها. تؤدي إعادة التعيين إلى تسجيل الخروج من الجلسات الحالية، لكنها تُبقي المصادقة الثنائية مفعّلة. وتبقى مصادقة Basic Auth للتاجر مطلوبة.

API المشغّل

أتمت إدارة التجار المستضافين باستخدام SDK 2.6.0 وWholly Crypto 7.4.0+. فعّل المشغّل ← الإعدادات ← API المشغّل، ثم أنشئ مفتاحًا محدد الصلاحيات للاستخدام على الخادم.

الانضمام والصلاحيات وإعادة المحاولة بأمان

أنشئ حسابات مباشرة بكلمة مرور أو أرسل دعوات. أدِر المستخدمين والمشاريع والمتاجر والرسوم والأرصدة المحلية المدفوعة مسبقًا؛ واقرأ التقارير واشترك في أحداث دورة الحياة الموقّعة. تبقى الموافقة على ترتيبات حيازة المفاتيح عند أول دخول والمصادقة الثنائية وعزل التجار مطبّقة.

تحتاج كل عملية كتابة إلى مفتاح محفوظ لمنع تكرار التنفيذ. منح الرصيد تعديلات محلية للحساب، وليست شحنًا لرصيد التثبيت. تبقى أسرار المحافظ وإرسال الأموال وإعدادات الخادم خارج API هذه.

استخدم api.your-domain.com/v1/operator. احتفظ بمفاتيح المشغّل على خادمك الخلفي، ولا تضعها في متصفح أو لدى تاجر مستضاف.

مرجع API المشغّل والصلاحيات ← · حزم SDK الرسمية والأمثلة ←

المحافظ والرموز

الإعدادات ← الرموز يحمّل 250 رمزًا أولًا، ثم بقية الكتالوج.

المشروع ← المحافظ ← نسخ الكل احتياطيًا يصدّر TXT أو ملف HTML قابلًا للبحث يعمل دون اتصال ويحتوي على رموز QR. يكشف كلاهما المفاتيح وعبارات الاستعادة. احتفظ بنسخة خاصة خارج الخادم؛ لا تشاركها أو ترفعها إلى الإنترنت.

يمكن لمستخدم root الوصول إلى المفاتيح. أدلة استعادة المحافظ تشرح عناوين الفواتير والغاز بالعملة الأصلية والنسخ الاحتياطية الخارجية لـMonero وLightning.

العناوين المحفوظة والأرصدة الحديثة

الإعدادات ← دفتر العناوين: احفظ شبكة وعنوانًا. تظهر العملات الأصلية ورموز CoinGecko المطابقة تلقائيًا. للقراءة فقط ويديره المسؤول؛ ولا تتغير طرق الدفع المقبولة.

تغطي قارئات الرموز 22 شبكة. تتطلب الأرصدة الخاصة وطبقات Bitcoin/CashTokens/Kaspa وصولًا أو مفهرسات منفصلة. تعرض القراءات الفاشلة أخطاء، لا أصفارًا.

اجمع أرصدة الفواتير في محفظة أخرى باستخدام الإرسال اليدوي أو التجميع التلقائي. تحتاج تحويلات الرموز أيضًا إلى العملة الأصلية للشبكة لتغطية الرسوم.

السعر غير متاح يتعلق بأسعار الصرف، لا بالأرصدة.

أضف رمزًا مخصّصًا
  1. المتجر ← طرق الدفع ← EVM أو Solana ← رمز مخصّص.
  2. أدخل العقد أو عنوان mint والاسم والرمز المختصر. اختر سعرًا ثابتًا بالدولار أو تسعيرًا تلقائيًا من DEX.

تُفحص الشبكة والخانات العشرية. الأسعار المشتركة على مستوى المشروع لا تغيّر عروض الأسعار الموجودة. المطابقة مع الكتالوج وحدها لا تفعّل الرمز للدفع.

التسعير التلقائي

يتطلب DEX Screener مجمّع سيولة للعقد المطابق تمامًا، وسيولة بقيمة 10,000 دولار، وصفقة خلال ساعة. تتحدث الأسعار كل دقيقة؛ وفشل السعر أو بلوغ عمره خمس دقائق يمنع عروض أسعار جديدة.

قد تتعرض أسعار DEX للتلاعب؛ هذه الفحوصات ليست تدقيقًا أمنيًا. استخدم رموز ERC-20 قياسية أو SPL كلاسيكية موثوقة. لا يُدعم Token-2022 أو الامتدادات. إن لم يوجد مجمّع مناسب، استخدم السعر الثابت.

العملة والمنطقة الزمنية

الإعدادات ← النظام ← الإعدادات الإقليمية الافتراضية يحدد عملة المشاريع الجديدة ومنطقتها الزمنية والمنطقة الزمنية للحسابات الجديدة. تبقى الإعدادات والأرصدة الموجودة دون تغيير؛ ويمكن تجاوز عملة لوحة المعلومات.

منطقتك الزمنية: الإعدادات ← الحساب ← تعديل المستخدم.

أنشئ فاتورة

استخدم طرق الدفع ← اختر لهذه الفاتورة لحصر الشبكات والرموز المقبولة. كل طرق الدفع في المتجر يبقي الإعدادات الافتراضية.

  1. افتح المشروع ← الفواتير ← إنشاء فاتورة.
  2. اختر المتجر والعملة النقدية والمبلغ.
  3. شارك رابط الدفع. يختار العميل شبكة ورمزًا متاحين ويرى رمز QR والمبلغ المتبقي ووقت الانتهاء والتأكيدات.

اختبر دفعة صغيرة بكل طريقة قبل بدء العمل الفعلي. تحقق من الفاتورة قبل تنفيذ الطلب: رابط العودة ليس إثباتًا للدفع.

عند التكامل، تحقق من توقيع IPN وwebhooks وأكّد الحالة عبر API الفواتير. تعامل مع الأحداث المكررة على أنها الحدث نفسه.

API: رشّح payment_methods حسب chain_slug و asset_tickers. تُتجاهل الخيارات غير النشطة؛ وإذا لم توجد مطابقة، تُستخدم افتراضيات المتجر. تحديد الشبكة وحدها يشمل كل أصولها النشطة. تحتاج الرموز المختصرة المشتركة إلى معرّفات الأصول. تظل المحافظ وأسعار الصرف مطلوبة.

المبالغ والتأكيدات

الماسح غير متصل؟ تحتفظ الفواتير بالطرق المضبوطة بينما ينتظر الكشف. افحص واجهات API المدعومة في اتصالات الشبكات؛ سلامة العقدة لا تعني توافقها مع الماسح. الافتراضي: مزوّدان مستقلان.

تظل المحافظ وأسعار الصرف مطلوبة. يجب أن تصدر خدمات Monero/Lightning طلبات الدفع.

تتضمن أخطاء API/MCP error.details.payment_methods. تضيف SDK 2.4.0 توضيحات آمنة: PHP getPaymentMethodIssues()، وPython payment_method_issues، وNode paymentMethodIssues. مرجع الأخطاء ←

تُقرّب مبالغ الدفع المشفّرة إلى أعلى وتشمل هامش الصرف المحدد للمتجر. تسعير فاتورة بعملة نقدية لا يحوّل العملات المشفّرة المستلمة إلى رصيد بنكي.

صفر تأكيدات يعني التسوية عند الكشف، دون حماية تأكيدات الشبكة. تُكتشف مدفوعات EVM الأصلية كتحويلات مباشرة. راجع المدفوعات غير المعتادة أو غير المؤكدة في تحتاج إلى انتباه.

واجهات API للماسحات

راجع اتصالات الشبكات للواجهات المتوافقة والسجل الكامل والمزوّدين المستقلين. اللحاق بالسجل عبر العقد الخام يستغرق وقتًا. كل واجهات الاستقبال ←

تشارك المدفوعات والأرصدة والصيانة حصص طلبات المزوّدين. تقل وتيرة الفحوصات عند الخمول. تحتفظ الفواتير القديمة بمراقبة المدفوعات المتأخرة وإعادة تنظيم الشبكة، بفواصل تصل إلى ساعة بعد اللحاق بالسجل. تُكمّل إشارات WSS المتاحة الفحص عبر HTTP. إغلاق صفحة الدفع لا يوقف الكشف. تظل العقد العامة محدودة؛ وWholly Crypto لا يشغّل عقدًا.

فواتير بقيمة صفر

ممنوعة افتراضيًا. فعّل المتاجر ← الفاتورة ← السماح بفواتير بقيمة صفر للسماح بإجمالي صفر يدويًا أو عبر API. تكتمل فورًا دون دفعة أو عنوان استقبال أو معاملة أو رسوم معالجة.

صفحة الدفع

المتجر ← مظهر الدفع: الألوان والشعارات والطرق والروابط وحجم خط المقدمة والخاتمة وإظهار اسم المشروع أو المتجر. ترث المتاجر الجديدة تصميم المتجر الافتراضي. تُحفظ التغييرات تلقائيًا.

لا تقبل المعاينات مدفوعات. لا يُسمح بـHTML أو CSS أو JavaScript مخصّص.

جرّب العرض التجريبي.

IPN وwebhooks

ترسل IPN كل حدث للفاتورة إلى رابط المتجر أو حقل الفاتورة ipn_url. ترسل webhooks الأحداث المحددة. يرسل كلاهما لقطة JSON نفسها بطلب POST.

متى أنفّذ الطلب؟ للمعالجة المبنية على الأحداث، استخدم event_type = invoice.settled مع status = settled. تحقق من الفاتورة الحالية ومن طلبك، ثم نفّذ الطلب مرة واحدة. payment.received وحده لا يكفي.

الحالة مقابل الأحداث: أمثلة Ethereum وSolana

status هو حالة الفاتورة عند إنشاء الحدث؛ event_type يخبرك بما حدث.

  • مثال Ethereum: payment.received + processing، ثم invoice.settled + settled.
  • مثال Solana: الدفعة نهائية بالفعل عند اكتشافها، لذلك payment.received و invoice.settled كلاهما يحمل settled.

قد يحدث أيّ من المسارين على شبكات أخرى. إنها أحداث مختلفة، وليست بالضرورة دفعتين. قد تتشارك sequence لكنها تختلف في event_id . ترتيب التسليم غير مضمون؛ فلا تشترط وصول processing أولًا.

الحالات وبيانات الإشعارات الراجعة
حالة الفاتورةالمعنى
newبانتظار الدفع
processingدفعة جزئية أو انتظار النهائية
settledمقبولة وفق قواعد الفاتورة أو يدويًا
expiredانتهت المهلة؛ وقد تستمر مراقبة المدفوعات المتأخرة
invalidدفعة تحتاج إلى مراجعة أو رُفضت
cancelledأُلغيت، ولم تُرد الأموال

الأحداث: invoice.created, payment.received, invoice.processing, invoice.settled, invoice.expired, invoice.invalid, invoice.cancelled. جدول الأحداث الكامل وقواعد الاستثناءات ←

amount_status: none, partial, paid, overpaid. paid يتضمن نسبة السماح، لا نهائية الدفع. timing_status: on_time أو late. resolution: automatic, manually_settled أو manually_invalidated. طبّق سياسة الاستثناءات لديك عندما تكون requires_review بقيمتها true.

invoice_id يطابق استجابة API. amount, currency و order_id تصف طلبك الأصلي. payment_info يضيف التحويلات والمبالغ المشفّرة الدقيقة وعرض السعر المحفوظ وهامش الصرف ونسبة السماح وأسعارًا استرشادية. بيانات العميل والبيانات الوصفية خاصة.

paid_chain, paid_asset, paid_payment_method_id, paid_asset_amount, paid_asset_amount_received و settlement_exchange_rate تلخّص التسوية. تبقى ثابتة؛ ويظل الدليل أو السجل المفقود بقيمة null. للاستلامات اللاحقة استخدم payment_info أو API المدفوعات.

استخدم سلاسل نصية للأرقام العشرية. لا تجمع أصولًا مختلفة ولا تعتبر الأموال غير المؤكدة مفقودة. عالج الاستثناءات صراحة؛ التحذير وحده لا يجيز تنفيذ طلب أو رد أموال. شحنات الغاز الداخلية المتحقق منها ليست مدفوعات عملاء ولا تُطلق payment.received.

أسرار التوقيع وإعادة المحاولة وسجل التسليم

أسرار توقيع منفصلة: المتجر ← IPN يوقّع تسليمات IPN، بما فيها القيمة المخصّصة للفاتورة في ipn_url. وكل نقطة اتصال في المتجر ← Webhooks لها سرّها الخاص، الذي يظهر عند إنشائه أو تغييره.

يستخدم كلاهما Wholly-Signature وأداة التحقق نفسها من SDK، لكن مع السر المطابق، لا مفتاح API. تغيير سر IPN لا يغيّر أسرار webhooks.

تحقق من نص الطلب الخام والطابع الزمني ونطاق المشروع والمتجر. احفظه بشكل دائم ثم أعد HTTP 2xx. يتحقق عامل خلفي من الفاتورة الحالية عبر مضيف API الذي ضبطته، وينفّذ الطلب مرة واحدة ضمن معاملة قاعدة بيانات. الترويسات غير موقّعة؛ استخدم الهوية الموجودة في جسم الإصدار 2 الموقّع.

المعالجة حسب الحدث: امنع تكرار event_idالموقّع، ثم رشّح invoice.settled. المعالجة حسب الحالة في SDK: ادمج التكرارات حسب المشروع + invoice_id + sequence، ثم افحص الحالة بغض النظر عن نوع الحدث. لا تضف مرشح أحداث بعد هذا الدمج. يحتاج المساران إلى حماية منفصلة من التكرار على مستوى الطلب.

تحتفظ المحاولات المتكررة بجسم الطلب ومعرّف الحدث الأصليين. يجب ألا تستبدل المراجعات القديمة الأحدث. تحاول IPN حتى ثماني مرات؛ وإعادة محاولة webhooks اختيارية. انخفاض الرصيد يوقف التسليم، لا المدفوعات.

المتجر ← IPN / Webhooks ← السجل ← التفاصيل يعرض الجسم المحفوظ والنتيجة. تنتهي صلاحية بيانات الإشعارات بعد 90 يومًا. إعادة الإرسال ليست إثباتًا للتسوية.

البيانات الكاملة وجدول الأحداث وأمثلة الاستقبال ←

التحويل عبر منصات التداول

أرسل أصولًا مدعومة إلى Kraken أو Binance أو Coinbase. احتفظ بالعملة أو حوّل الإيداعات المضافة إلى رصيدك. تبقى العملات النقدية في منصة التداول.

تنطبق الحدود الدنيا للإيداع على كل معاملة، لا على عملية التجميع ككل. توقف الإيداعات الأقل من الحد الأدنى الخطة. اجمع الأرصدة الصغيرة في محفظتك أولًا؛ وتُطبّق رسوم شبكة إضافية.

اربط الحساب واختر المسار
  1. الإعدادات ← منصات التداول: اربط مفتاحًا مخصّصًا وتحقق من الأرصدة وامنح المشاريع صلاحية الوصول. لا تمنح إذن السحب؛ واقصر المفتاح على عنوان IP لخادمك.
  2. المشروع ← تجميع الأموال: تحقق من الأصل والشبكة والعنوان وعقد الرمز. اختر لكل شبكة ورمز إما محفظة أخرى أو منصة تداول واحدة.

تتحدث الأسواق كل دقيقتين. يمكن تحويل الإيداعات المطابقة التي أُضيفت إلى الرصيد فقط؛ وتوقف بيانات الأسواق القديمة الأوامر الجديدة. يبقى احتياطي 1% من الأصل في منصة التداول للرسوم والتقريب، منفصلًا عن رصيد المعالجة.

الاحتفاظ بحد أدنى يحجز عملات أو رموزًا على مستوى المشروع بعد التجميع التلقائي. هذا منفصل عن حد بدء العملية؛ والصفر لا يحتفظ بشيء. تُدفع الرسوم من الزائد. لا يتغير الإرسال اليدوي.

استأنف التحويلات غير المؤكدة؛ ولا تستبدلها. تبقى المحافظ محجوزة حتى التأكيد أو انتهاء عرض سعر غير مستخدم. تحتاج عمليات التجميع الكبيرة إلى دفعات.

تنطبق وصاية منصة التداول وإجراءات KYC والقيود الإقليمية والرسوم. لا توجد تحويلات بنكية أو رافعة مالية. انخفاض الرصيد يوقف التحويلات الجديدة؛ وتستمر مطابقة الأوامر المرسلة.

رصيد المعالجة

تستمر في استقبال المدفوعات عندما ينفد رصيد المعالجة. تحتفظ المتاجر الموجودة بالفواتير وصفحات الدفع ومراقبة المدفوعات. غياب اتصال فوترة متحقق منه أو تعليق الحساب أمر مختلف وقد يمنع فواتير جديدة.

ما يبقى متاحًاما يتوقف دون رصيد قابل للاستخدام
الفواتير وصفحات الدفع والتأكيداتIPN وwebhooks، بما فيها إعادة المحاولات
المحافظ والأرصدة والنسخ الاحتياطيةتجميع الأموال: الإرسال والغاز ورد الأموال والتحويلات الجديدة عبر منصات التداول
التقارير وواجهات القراءة والإعدادات الموجودةإنشاء المشاريع والمتاجر
التحقق من التحديثات واستعادة تحديث انقطعتثبيت إصدارات جديدة

اشحن الرصيد من أيقونة الرصيد. بعد التحقق من استعادته، تستأنف الأتمتة المفعّلة عملها، بما فيها قواعد التجميع التي ترسل الأموال. عطّل القواعد التي لا تريد استئنافها.

شحن رصيد المعالجة تلقائيًا

افتح الشحن التلقائي بعد تبويب الطلبات. اختر محفظة استقبال لها نسخة احتياطية وحدّ البدء ومبلغ الشراء والحد اليومي وسقف رسوم الشبكة. وافق واحفظ. تكون الميزة معطّلة في البداية.

استخدم BTC أو ETH أو USDC/USDT على Ethereum عندما تكون متاحة. تحتاج عناوين إرسال الرموز إلى ETH؛ هذه القاعدة لا تموّل الغاز الناقص. يستخدم المشغّلون محافظ استقبال مخصّصة؛ ويدفع التجار المستضافون إلى مشغّلهم.

يمكن للشحن الموافق عليه أن يعمل حتى عندما يوقف انخفاض الرصيد تجميع الأموال. خدمة الاستقبال وحدها تؤكد الرصيد. تعمل عملية شراء تلقائية واحدة في كل مرة. التعطيل يوقف العمل الذي لم يُرسل، لا المعاملات المرسلة.

استعادة دفعة تلقائية

في الشحن التلقائي، استخدم فحص الدفعة. استأنف الدفعة الصالحة نفسها، أو أغلق تحويل Ethereum ثبت فشله وأوقف القاعدة مؤقتًا. تبقى الدفعات المعلّقة أو غير المؤكدة محجوزة لمنع الإرسال المكرر. انتهاء عرض السعر ليس دليلًا على الفشل.

الرسوم واستعادة الوصول الكامل

تُحسب نسبة 1% الافتراضية على قيمة الفاتورة الأصلية بالعملة النقدية عند تسويتها. لا تُقسّم المدفوعات المشفّرة للعميل.

تستمر الرسوم في التراكم حتى يصبح الرصيد سالبًا. سدّد المبلغ السالب واستعد رصيدًا قابلًا للاستخدام يتجاوز حد السماح لحسابك. تظهر تغييرات الرصيد عادة خلال 10–15 ثانية عند سلامة الاتصال.

يتطلب تثبيت التحديثات رصيدًا متحققًا منه أكبر من صفر، حتى مع وجود سماح للأتمتة. شحن الرصيد لا يثبّت تحديثات تلقائيًا.

الإشعارات المتوقفة لا تستهلك محاولات. تُستأنف التسليمات المحتفظ بها؛ وتبقى مدة الانتهاء المعتادة سارية. طابق الأحداث الفائتة عبر API الفواتير.

إذا عطّل المشغّل رسوم المعالجة، فلن تُطبّق رسوم معالجة جديدة أو قيود رصيد. تبقى الرسوم السابقة في السجل. يمكن لتثبيت غير مرتبط إعداد مشاريع ومتاجر، لكنه يحتاج إلى فوترة متحقق منها لإصدار فواتير. تستمر مراقبة الفواتير الصادرة بالفعل.

التقارير

تبقى مخططات الإيرادات والمرشحات فوق التبويبات: المشاريع والمتاجر, الفواتير, المحافظ و عمليات التجميع. ابحث أدناه. يتضمن تبويب المشاريع والمتاجر تصدير CSV. تغطي التواريخ المخصّصة حتى 366 يومًا. تستخدم المحافظ الأرصدة المخزّنة مؤقتًا.

كيف تُحسب أرقام التقارير
  • تعرض الإيرادات قيم الفواتير المسوّاة قبل الرسوم ورد الأموال، وفق تواريخ التسوية. وهي ليست رصيد المحفظة أو الربح.
  • تستخدم التحويلات الأسعار الحالية المخزّنة مؤقتًا، لا أسعارًا محاسبية تاريخية. تبقى الإجماليات بالعملات الأصلية متاحة إذا غابت الأسعار.
  • تستخدم مخططات حالة الفاتورة تواريخ إنشائها. وتعرض أرقام «تحتاج إلى انتباه» المشكلات الحالية غير المحلولة.

مساعدو الذكاء الاصطناعي · MCP

وصول اختياري محدد بالمشروع على api.example.com/mcp. اقرأ المدفوعات أو وافق على إنشاء الفواتير. إعداد MCP والصلاحيات ←

إضافات المتاجر

PrestaShop ← · OpenCart ← · كل الإضافات ←

SDKs

استخدم حزم SDK الرسمية لإنشاء الفواتير وفحص المدفوعات والتحقق من IPN وwebhooks.

حزمة PHP SDK

PHP 7.4+

أضف المدفوعات المشفّرة إلى تطبيق PHP باستخدام Composer.

composer require whollycrypto/php-sdk
GitHub والأمثلة ↖

حزمة Python SDK

Python 3.10+

اربط تطبيق Python أو خادمك الخلفي دون اعتماديات إضافية وقت التشغيل.

python -m pip install whollycrypto
GitHub والأمثلة ↖

حزمة Node.js SDK

Node.js 22+

JavaScript أو TypeScript، حزمة npm واحدة مع تعريفات الأنواع مضمّنة.

npm install whollycrypto
GitHub والأمثلة ↖

استخدم نطاق API لتثبيتك واحتفظ بمفاتيح API على الخادم. كل حزم SDK مرخّصة بترخيص MIT.

أدوات الدفع

افتح المشروع ← أدوات الدفع واختر متجرًا. شارك رابط دفع قابلًا لإعادة الاستخدام، أو استقبل المدفوعات من نقطة بيع، أو جدول طلبات دفع بالبريد.

اختر السعر ومسار الدفع
  • مبلغ نقدي ثابت: تستخدم كل صفحة دفع جديدة أسعار العملات المشفّرة الحالية وهامش المتجر، ثم تثبّت عرض السعر حتى انتهاء صلاحيته.
  • مبلغ مشفّر ثابت: اطلب عدد وحدات محددًا من أصل مقبول واحد على الشبكة. تُسجّل قيمة نقدية حديثة مقربة إلى أعلى للتقارير والرسوم؛ ولا يغيّر هامش الصرف المبلغ المشفّر.
  • التبرعات: اسمح للعملاء بإدخال مبلغ ضمن حدودك. أضف مبالغ سريعة وحقول اسم وبريد اختيارية.
  • نقطة البيع: أدخل مبلغًا أو مرجع طلب واعرض رمز QR للدفع. انتظر التسوية، لا مجرد اكتشاف الدفع.
  • الطلبات المجدولة: أرسل مرة واحدة أو أسبوعيًا أو شهريًا وفق منطقتك الزمنية. يدفع العملاء كل فاتورة بأنفسهم. لا توجد خصومات تلقائية من المحافظ.

يبقى مظهر المتجر والتأكيدات والإشعارات الراجعة سارية. إيقاف أداة يمنع الطلبات الجديدة، لا المدفوعات الموجودة. يربط السجل بكل فاتورة. الفترات الفائتة لا تطلق دفعة كبيرة من الرسائل؛ وتعيد إعادة الإرسال استخدام الفاتورة غير المدفوعة وغير المنتهية نفسها.

تدعم صفحات دفع العملاء وروابط الدفع والرسائل المجدولة الإنجليزية والألمانية والإسبانية والبرتغالية البرازيلية والإيطالية والروسية والصينية المبسطة والفرنسية والكورية واليابانية.

المتجر ← الفاتورة ← لغة الدفع يحدد اللغة الافتراضية. تجاوزها لكل فاتورة أو أداة دفع. تحتفظ الرسائل وإعادة إرسالها بلغة الفاتورة. يبقى نصك دون تغيير؛ وتظل لوحتا التاجر والمشغّل بالإنجليزية.

البريد الصادر

في الإعدادات ← النظام، أسفل قيود IP المصدر، فعّل SMTP باسم المضيف العام لمزوّدك وبيانات الدخول والمرسل وعنوان الرد الاختياري. استخدم TLS على المنفذ 465 أو STARTTLS على 587.

احفظ واختبر الاتصال، ثم أرسل رسالة اختبار إلى نفسك. أعدّ SPF/DKIM لدى مزوّدك. قبول SMTP للرسالة لا يضمن وصولها إلى الوارد.

تستخدم الطلبات المجدولة SMTP النظام. ويمكن لقنوات التنبيهات اختياره أيضًا؛ لا تتغير إعدادات القنوات ودعوات المشغّل الحالية. يدير مسؤول التثبيت وحده بيانات الدخول المشفّرة هذه. فشل تسليم البريد للإرسال يحتاج إلى إعادة إرسال صريحة.

الإشعارات والتنبيهات

يفتح الجرس صندوق إشعاراتك. خيارات المظهر في قائمة الإعدادات.

أعدّ القنوات والقواعد
  1. افتح الإعدادات ← الإشعارات والتنبيهات. إشعارات لوحة التحكم مضمّنة.
  2. للبريد أو Telegram، أضف قناة وأرسل رمز تحقق ثم أدخله. فعّل القناة بعد ذلك واخترها في قواعدك.
  3. اختر تنبيهات لاستثناءات الدفع أو فشل الإشعارات الراجعة أو مشكلات التحويل أو نقص الغاز أو تأخر الفحص أو نقص الرصيد أو فشل النسخ الاحتياطية. تنبيهات الدفع المسوّى اختيارية.

تُجمع المشكلات المتكررة. يبقى السجل 30 يومًا؛ وتظل صلاحيات المشاريع سارية. قراءة تنبيه لا تحل المشكلة. تنبيهات الأشخاص لا تستبدل IPN أو webhooks الخاصة بالمتجر.

السوق

فعّل المشروع ← السوق، واختر المتاجر وسجّل البائعين بعناوين وجهة تتحقق منها بشكل مستقل. أنشئ فاتورة واحدة بحصص دقيقة للبائعين؛ ووافق على الدفعات يدويًا أو ضع سياسات تلقائية محددة الحدود.

إعداد مدفوعات متعددة البائعين

لشبكة Bitcoin الرئيسية وعملات EVM ورموز ERC-20 المدعومة فقط. يدفع العملاء أولًا إلى محافظ المشروع، لا إلى البائعين مباشرة. احتفظ بعملات أصلية غير محجوزة للرسوم. يستثني التجميع المعتاد عناوين الاستقبال المحمية.

تُطبّق رسوم المعالجة مرة واحدة على الفاتورة الأصلية، منفصلة عن عمولتك. تحتاج المدفوعات الناقصة والاستلامات غير المؤكدة إلى مراجعة. رد الأموال بعد دفع مستحقات البائع يتطلب أموالًا منفصلة، ولا يسحبها تلقائيًا من البائع.

إعداد مدفوعات متعددة البائعين · مرجع API السوق

المحاسبة

افتح الإعدادات ← المحاسبة للتقارير والمعاملات والتصدير والفحوصات. تبقى لوحة المعلومات منفصلة.

جهّز تقريرًا للمحاسب
  1. اختر فترة وعملة تقارير ومنطقة زمنية. رشّح حسب المشروع أو المتجر، ثم ابحث بمعرّفات الفواتير أو الطلبات أو الأصول أو المعاملات.
  2. راجع الأسعار والرسوم المفقودة واستثناءات المدفوعات في الفحوصات. تعيدك التفاصيل إلى الفاتورة أو التحويل الموجود.
  3. نزّل ملف ZIP للمحاسب، مع ملخص قابل للطباعة وملفات CSV مفصلة. حتى 10,000 سجل لكل تنزيل؛ استخدم فترة أقصر للسجلات الكبيرة.

تُفصل الاستلامات المؤكدة وردود الأموال والتكاليف المسجّلة عن تحويلات المحافظ وشراء رصيد المعالجة. تُحتسب إجماليات الفواتير مرة واحدة، حتى مع تعدد الدفعات.

تستخدم القيم التاريخية الأدلة المحتفظ بها، لا أسعار اليوم. قد تغيب الأسعار القديمة والرسوم الفعلية؛ ولا تُفترض التكاليف المفقودة صفرًا أبدًا. غياب الأدلة الكاملة يبقي الإجمالي الصافي غير متاح.

يشمل هذا السجلات التي يتتبعها Wholly Crypto، لا كل معاملات المحافظ أو منصات التداول الخارجية. إنه مساعد لمسك الدفاتر، وليس إقرارًا ضريبيًا أو بيان أرباح. شارك الملفات بأمان: فقد تحتوي على بريد العملاء.

تجميع الأموال

انقل الأموال المستلمة إلى الوجهة التي تختارها. أدِر القواعد والسجل في المشروع ← تجميع الأموال.

أرسل العملات الأصلية على 29 شبكة؛ ويبقى Monero للعرض فقط. الرموز: ERC-20 المتحقق منها وSPL الكلاسيكية. يستخدم الإرسال اليدوي والتجميع التلقائي وسائل الحماية نفسها.

الإرسال اليدوي: حضّر وراجع ووافق

تنضم 18 وحدة إرسال للعملات الأصلية إلى BTC وEVM وSOL وTRX. استخدم مزوّدًا قادرًا على بث المعاملات. ZEC للعناوين الشفافة فقط؛ وADA يحتفظ بمخرجات الرموز؛ ويستخدم DOT شبكة Asset Hub؛ ويحتاج HBAR إلى relay. الوجهات التي تحتاج مذكرة أو وسمًا أو تعليقًا صادرًا تتطلب محفظة خارجية.

  1. افتح المشروع ← المحافظ ← الأصل ← إرسال. اختر عنوانًا من الدفتر أو أدخل وجهة. تحقق من العنوان الكامل والشبكة.
  2. اختر مبلغًا محددًا أو تجميع المتاح، ثم مستوى الرسوم. للرموز المدعومة، استخدم ETH المشروع للغاز (أو العملة الأصلية للشبكة) لتمويل الرسوم الناقصة من المشروع والشبكة نفسيهما.
  3. اضغط تحضير التحويل. راجع المصادر والوجهة والمبلغ والرسوم القصوى وأي مبلغ مخصّص للغاز. موافقة وإرسال يجيز هذه الخطة؛ التحضير وحده لا يرسل شيئًا.

يستمر تمويل الغاز وفحص التأكيدات وإرسال الرموز في الخلفية بعد الموافقة. تابع نشاط التحويلات، حتى بعد إغلاق النافذة. البث ليس تأكيدًا.

ETH الذي سيبقى في محفظة المشروع: القيمة 0 لا تضيف احتياطيًا؛ ولا تعني إنفاق كل ETH لديك. تحتفظ 0.005 بما لا يقل عن 0.005 ETH لاحقًا، لذا تحتاج إلى أموال إضافية لهذه العملية. لا تتغير القواعد التلقائية المحفوظة.

إعداد التجميع التلقائي
  1. افتح إعداد التجميع التلقائي ← الأصل ← إعداد. اختر عنوان محفظة أو وجهة منصة تداولمدعومة، وليس الاثنين.
  2. حدّد الحد الأدنى للتجميع و الاحتفاظ بحد أدنى. مثال: ابدأ عند 100 USDC، واحتفظ بـ20 USDC، وأرسل حتى 80 USDC. الاحتياطي على مستوى المشروع، لا لكل عنوان.
  3. للرموز، راجع استخدم ETH المشروع للغاز وأدخل حد التمويل اليومي. فعّل التجميع التلقائي، ثم احفظ القاعدة ووافق. فتح الإعداد وحده لا يفعّل شيئًا.

يحدّ السقف اليومي من العملة الأصلية المخصّصة للغاز لكل قاعدة رمز خلال 24 ساعة متحركة. قد يكون 1 يورو حد بداية للاستخدام الخفيف، لا تكلفة مضمونة أو رسمًا يوميًا. معاملات التمويل لها رسوم أيضًا. النسبة القصوى لرسوم الشبكة يمكنها وضع حد لمجموع رسوم التمويل والتحويل.

تعمل الفحوصات تلقائيًا. تتلقى الغاز فقط العناوين المؤهلة التي تحتوي على رموز؛ لا العناوين الفارغة. ينتظر العنوان ناقص التمويل إذا كان دون الحد الأدنى للتجميع. شرح حدود الغاز ←

أفضل الممارسات والتحويلات المتوقفة
  • احفظ نسخة احتياطية من المحافظ واختبر تحويلًا صغيرًا. أرسل الرموز قبل إفراغ العملات الأصلية. يجب أن يصل ETH الموجود في مكان آخر من المشروع إلى كل عنوان رمز أولًا؛ ويبقى الغاز غير المستخدم في محافظك.
  • استخدم أرصدة حديثة ومزوّدين سليمين وأموالًا أصلية كافية. تحتاج القواعد التلقائية إلى محفظة نشطة محفوظة احتياطيًا وإلى أصل مفعّل في متجر مفعّل. انخفاض رصيد المعالجة قد يوقف الإرسال.
  • في نشاط التحويلات، راجع التقدم وتمويل الغاز وروابط المستكشف. إذا كانت النتيجة غير مؤكدة، حدّث التحويل نفسه؛ لا تنشئ بديلًا. استأنف فقط بعد مراجعة السبب والحدود.

الإرسال معطّل؟ افحص whollycrypto transfers status. راجع كل قاعدة مفعّلة قبل whollycrypto transfers enable: يسري على الخادم كله وقد يشغّل القواعد المحفوظة فورًا. إيقاف الخطوات القادمة لا يعكس المعاملات المبثوثة.

النطاقات

الإعدادات ← النظام: اختر الإدارة أو إضافة نطاق. احفظ وراجع DNS ثم انشر. تتجاوز أسماء المضيفين غير المتغيرة فحوصات DNS/SSL.

نطاقات المتجر

المتجر ← أساسي: اختر أسماء مضيفين نشطة للتاجر والدفع وAPI. أولوية الروابط: المتجر ← المتجر الافتراضي ← النظام؛ وتعود الأسماء المتوقفة إلى البديل. اضبط مضيفي SDK منفصلين. تحتفظ المحاولات الموقّعة بروابطها الأصلية.

HTTPS تلقائي. يمكنك تشغيل Cloudflare بعد الإعداد؛ وتبقى Let's Encrypt فعّالة.

قائمة فحص Cloudflare
  • استخدم Full (strict)، وليس Flexible؛ لا تحتاج إلى مفتاح API.
  • عطّل التخزين المؤقت وتحديات المتصفح والروبوتات للوحة التحكم وصفحة الدفع وAPI.
  • اسمح بـ /.well-known/acme-challenge/ على المنفذ 80 دون إعادة توجيه أو تحديات لتجديد الشهادات.

تستعلم الفحوصات من DNS الموثوق وتتحقق من الخادم الأصلي: مباشر أو عبر Cloudflare. قد يحتفظ الزوار ببيانات DNS أقدم.

تستخدم عمليات الحفظ والحذف في اللوحة POST منذ 5.6.2؛ لا تحتاج إلى استثناء «Not GET or POST». يبقى تسجيل الدخول وحماية CSRF مفعّلَين. على api.*، اسمح بطرق الطلب الموثقة للـAPI العامة.

أمان الحساب

أعدّ المصادقة الثنائية في الإعدادات ← الحساب. يستخدم من لديهم صلاحيات مشاريع فقط أمان حسابي في التذييل. أكّد كلمة مرورك وامسح رمز QR أو مفتاح TOTP وأدخل رمزًا من ست خانات.

جرّب Verifyr Authenticator على iOS أو Android، أو تطبيق TOTP قياسيًا آخر. احفظ رموز الاستعادة ذات الاستخدام الواحد بعيدًا عن كلمة مرورك. أبقِ حماية HTTP Basic مفعّلة.

الاستعادة والمظهر

يتطلب استبدال الرموز أو تعطيل المصادقة الثنائية كلمة مرورك ورمزًا من تطبيق المصادقة أو رمز استعادة غير مستخدم. تُغلق الجلسات الأخرى. حافظ على تزامن ساعة الهاتف والخادم؛ المصادقة الثنائية لا تؤمّن خادمًا مخترقًا.

تتنقل أيقونة المظهر بين فاتح ← خافت ← داكن وتتذكر اختيار هذا المتصفح. مظهر صفحة دفع المتجر منفصل.

أمان الخادم

  • استخدم مفاتيح SSH واقصر الوصول على عناوين IP موثوقة. احتفظ باتصال استعادة اختبرته.
  • فعّل وكيل Cloudflare بعد الإعداد باستخدام Full (strict).
  • في الإعدادات ← النظام ← قيود IP المصدر، اسمح بعناوين أو نطاقات IP موثوقة لكل اسم مضيف نشط من merchant.* أو api.* . يجب أن يبقى عنوان IP الحالي للوحة مسموحًا.
  • اترك عادة pay.* مفتوحًا: يحتاج العملاء إلى الدفع من أي مكان.
Cloudflare واستعادة الوصول عند الحظر

يمكنك إضافة قواعد وصول في Cloudflare. استثنِ تحديات تجديد HTTPS؛ وتجنب تحديات الدخول التفاعلية على API وصفحة الدفع. وضع الوكيل وحده لا يقيّد عناوين IP.

حُظر وصولك؟ شغّل whollycrypto access-reset --domain merchant.example.com عبر SSH. يُفتح اسم المضيف المحدد فقط خلال خمس ثوانٍ؛ وتبقى مصادقة الحساب مفعّلة.

إصلاح HTTPS

whollycrypto ssl
whollycrypto ssl --fix

يفحص الأمر الأول الشهادات النشطة. --fix يصلح ملفات دعم TLS ويجدّد الشهادات المفقودة أو القريبة من الانتهاء. يجب أن يعمل Nginx؛ وأبقِ المنفذين 80/443 مفتوحَين.

إعادة إصدار شهادة واحدة

شغّل whollycrypto ssl --domain merchant.example.com --reissue لفرض الاستبدال. تُطبّق حدود إصدار الشهادات. إذا حظر Cloudflare تحدي HTTP، استخدم DNS-only مؤقتًا. تبقى المحافظ والمصادقة والنطاقات دون تغيير.

الفحوصات اليومية

  • ضمن تحتاج إلى انتباه، اختر فواتير أو الصفحة الحالية لوضع علامة تمت المراجعة أو إضافة ملاحظة أو إعادة الفحص. تبقى القرارات المالية فردية.
  • راقب مساحة القرص وتأخر الماسحات والعقد الاحتياطية المستقلة. نقاط الاتصال العامة لا تضمن سعة معينة.
  • حدّث Linux وقيّد SSH واحصر المستخدمين ومفاتيح API بالمشاريع والصلاحيات المطلوبة.

تحتاج القرارات إلى سبب. يتطلب رد الأموال تحويلًا منفصلًا تؤكده أنت؛ تغيير حالة الفاتورة لا يرسل أموالًا.

التحديثات والنسخ الاحتياطية

اقرأ ملاحظات الإصدار، ثم استخدم الإعدادات ← النظام ← تحديثات البرنامج أو سطر الأوامر. تتحقق التحديثات من التوقيعات وتنشئ نسخًا احتياطية وتفحص سلامة الخدمة. تتوقف صفحة الدفع مؤقتًا أثناء التثبيت.

whollycrypto update --check
whollycrypto update

تنتظر التحديثات مهام الخلفية حتى دقيقتين؛ وتبقى صفحة الدفع متاحة خلال الانتظار. تُستعاد المؤقتات إذا انتهت المهلة.

الترقية من 0.1.31 أو أقدم

أداة التحديث القديمة متوقفة؟ شغّل هذا مرة واحدة. يتحقق مفتاحك المثبّت من الأداة المساعدة.

bash <(curl -fsSL https://releases.whollycrypto.com/update_wholly.sh)

احتفظ بـ نسخ احتياطية خارج الخادم اختبرتها لقاعدة PostgreSQL والإعدادات ومفاتيح تشفير المحافظ وملفات تصديرها. أرشيفات الاستعادة المحلية غير مشفّرة.

استعد نسخ قاعدة البيانات والإعدادات المتطابقة معًا. لا تقاطع ترحيلات قاعدة البيانات أو تشغّل ملفات تنفيذية أقدم مع قواعد أحدث. قواعد الرصيد تبقى سارية.

GitHub كبديل للتنزيل

يحاول الإعداد والتحديث تلقائيًا استخدام المرآة الرسمية على GitHub. تبقى فحوصات التوقيع والبصمة والرصيد مطلوبة.

أوامر الخادم

أوامر بصلاحية root عبر SSH.

whollycrypto status
whollycrypto doctor
whollycrypto backup
كل الأوامر
الأمرالغرض
whollycrypto versionالإصدار المثبّت.
whollycrypto statusسلامة التطبيق وقاعدة البيانات.
whollycrypto logsآخر 80 سطرًا من سجل التطبيق.
whollycrypto restartإعادة التشغيل وفحص السلامة.
whollycrypto doctorفحوصات للتثبيت دون تغيير شيء.
whollycrypto doctor --fixإصلاح الأذونات المُدارة ورابط سطر الأوامر المفقود.
whollycrypto htaccessإعادة تعيين بيانات Basic Auth.
whollycrypto admin-resetإعادة تعيين كلمة مرور مسؤول.
whollycrypto 2fa-resetإعادة تعيين المصادقة الثنائية لحساب واحد دون تغيير كلمة مروره.
whollycrypto transfers status
whollycrypto transfers enable
whollycrypto transfers disable
فحص الإرسال أو تفعيله أو إيقافه لكل المشاريع. يعيد التفعيل تشغيل التطبيق وقد يشغّل القواعد المحفوظة فورًا؛ وتلزم الموافقة. تحافظ التحديثات على الإيقاف.
whollycrypto sslفحص HTTPS؛ أضف --fix للإصلاح.
whollycrypto access-reset --domain HOSTإزالة تقييد IP لاسم مضيف واحد.
whollycrypto update --checkالبحث عن تحديثات موقّعة.
whollycrypto updateنسخ احتياطي ثم تحديث وإعادة تشغيل.
whollycrypto backupأرشيف متاح لـroot فقط في /root/whollycrypto/backups/releases/.
whollycrypto recoverاستعادة صيانة أو تحديث انقطع مع بقاء مخطط قاعدة البيانات دون تغيير. لا يستعيد قاعدة بيانات تلقائيًا أبدًا.
whollycrypto resetاختر مشروعًا واحدًا أو كل مشاريع الأعمال أو الإصلاح فقط.
whollycrypto uninstall --check
whollycrypto uninstall
عاين ثم أزل بيئة التشغيل المثبّتة مباشرة. تبقى قاعدة البيانات والمفاتيح والنسخ الاحتياطية.
whollycrypto welcomeعنوان لوحة التحكم والروابط.
whollycrypto --helpالأوامر؛ أضف --help بعد أي أمر لخياراته.
تشخيص مشكلات التثبيت

الفحوصات للقراءة فقط، وتُرجع رمز خروج غير صفري عند الحاجة إلى انتباه. --fix يصلح الأذونات المُدارة ورابط سطر الأوامر المفقود فقط. لا يغيّر الفوترة أو يحذف البيانات أو يعيد تشغيل الخدمات.

اختر نطاق إعادة الضبط
whollycrypto reset
# Preview without changing anything:
whollycrypto reset --scope business --check
whollycrypto reset --scope project --project YOUR_PROJECT_IDENTIFIER --check

اختر مشروعًا واحدًا أو كل مشاريع الأعمال أو الإصلاح فقط. تمحو إعادة ضبط المشاريع نهائيًا المشاريع والمتاجر وسجلات المحافظ وسجل المدفوعات المحددة. خيار الإصلاح يفحص الأذونات المُدارة ورابط سطر الأوامر ويصلحهما فقط.

عطّل المشاريع المحددة، وحل المدفوعات والتحويلات المفتوحة، وانقل أرصدة المحافظ المعروفة أولًا. تبقى الحسابات والنطاقات والعقد والأرصدة وهوية الفوترة ووضع التثبيت. محافظ استقبال المشغّل وسجلات أرصدة التجار المستضافين محمية. لا يعيد هذا فتح معالج الإعداد.

تتطلب إعادة الضبط التي تمحو البيانات تأكيدًا مكتوبًا، وتنشئ نسخة استعادة متحققًا منها قبل المحو. احتفظ أيضًا بنسخة احتياطية للمحافظ خارج الخادم: قد تظل العناوين القديمة تستقبل أموالًا، لكن المشاريع المحذوفة تتوقف عن تتبعها. الأرصدة المخزّنة مؤقتًا لا تثبت أن المحافظ فارغة.

إزالة تثبيت مباشر
whollycrypto uninstall --check
whollycrypto uninstall

يوقف صفحة الدفع وAPI وعمال الخلفية؛ ويزيل ملفات التشغيل والتكامل المُدار مع الخادم بعد النسخ الاحتياطي والتأكيد المكتوب. تمنع المدفوعات أو التحويلات المعلّقة الإزالة. تُنقل الملفات إلى نسخة الاستعادة بدلًا من مسحها.

تبقى قاعدة البيانات والإعدادات والمفاتيح والنسخ الاحتياطية. لا تُمس حزم Nginx/PostgreSQL المشتركة أو شهادات TLS. يطبع الأمر أمر استعادة يعمل دون التطبيق؛ لا تشغّل تثبيتًا جديدًا فوق البيانات المحتفظ بها.

أوامر إعادة الضبط والإزالة للتثبيت المباشر على VPS، لا لـDocker أو Umbrel. للحاويات، استخدم أوامر النسخ الاحتياطي والإيقاف الخاصة بالتكامل واحتفظ بوحدات التخزين. لا يقبل أي من أمري المحو --yes.

إعادة تعيين بيانات Basic Auth
whollycrypto htaccess

اختر مستخدمًا واسمًا وكلمة مرور ثم أكّد. يعيد هذا ضبط مطالبة الدخول الأولى في المتصفح، لا حساب لوحة التحكم. تبقى بيانات المستخدمين الآخرين وAPI دون تغيير.

إعادة تعيين كلمة مرور مسؤول
whollycrypto admin-reset

اختر مسؤولًا ببريده وأكّد كلمة المرور الجديدة. تُغلق الجلسات وتُزال أقفال دخول الحساب؛ وتبقى قيود IP.

تبقي إعادة التعيين المعتادة المصادقة الثنائية. إذا فقدت تطبيق المصادقة ورموز الاستعادة معًا، شغّل صراحة whollycrypto admin-reset --email admin@example.com --reset-2fa. أعدّ المصادقة الثنائية من جديد بعد الدخول.

يحتاج إلى قاعدة البيانات، لا التطبيق أو كلمة المرور القديمة. تبقى الحسابات الأخرى والمحافظ والصلاحيات دون تغيير؛ وتظل الحسابات المعطّلة معطّلة.

إعادة تعيين المصادقة الثنائية

فقدت تطبيق المصادقة ورموز الاستعادة معًا؟ اختر حسابًا بصلاحية root.

whollycrypto 2fa-reset
# Or select the account directly:
whollycrypto 2fa-reset --email user@example.com

يزيل الجلسات وإعداد المصادقة ورموز الاستعادة. سجّل الدخول بكلمة المرور الحالية وأعدّ المصادقة الثنائية. تبقى الصلاحيات والمحافظ وBasic Auth دون تغيير؛ وتظل الحسابات المعطّلة معطّلة.

يتطلب قاعدة البيانات، لا التطبيق أو رصيد المعالجة. للاستخدام غير التفاعلي: --email و --yes.

كلمات المرور المولّدة والأتمتة

ينشئ الضغط على Enter كلمة مرور في /root/whollycrypto/config/credential-resets/: ملف خاص غير مشفّر، قابل للاستخدام بعد النجاح. لا تُحفظ كلمات المرور المُدخلة يدويًا.

whollycrypto htaccess --user admin --new-user operator
whollycrypto admin-reset --email admin@example.com

دون طرفية تفاعلية، حدّد الحساب الموجود بالإضافة إلى --generate أو --password-file /root/private-password.txt، و --yes. يجب أن يملك root ملفات كلمات المرور، بأذونات 600. لا تضع كلمات المرور في الأوامر أو متغيرات البيئة أبدًا.

--yes يتجاوز التأكيد فقط. أكمل استعادة التحديث المنقطع أولًا؛ وتوقف تغييرات الحساب المتزامنة إعادة التعيين.