پلن نمایندگی
چهار نوع پلن نمایندگی (ثابت، نامحدود، مصرفی، ساعتی)، فیلدها و افزودنیها، قواعد تمدید، تغییر قیمت، ابزارهای اصلاح حساب نمایندگی، افزودن ادمین موجود و نکات ارتقا.
از مسیر پنل مدیریت → 🏢 پلن نمایندگی پلنهایی میسازید که کاربران با آنها پنل نمایندگی (یک ادمین در پنل پاسارگارد) میخرند. پلنها را مدیریت میکنید و ادمینی را که خودتان داخل پنل ساختهاید، بدون ساخت دوباره به ربات وصل میکنید. همین کارها در پنل تحت وب هم شدنی است و هر دو از یک مجموعه قاعده پیروی میکنند.
مرتبط با راهنمای نمایندگی کاربر.
پیشنیازهای فروش نمایندگی
- وضعیت فروش و فروش نمایندگی در تنظیمات ربات روشن باشند.
- 🏢 نمایندگی همان پنل در تنظیمات پنل روشن باشد.
- اگر نمایندهها از آدرسی غیر از ریشهٔ دامنه وارد پنل میشوند، 🔗 مسیر ورود ادمین را تنظیم کنید.
منوی اصلی
| دکمه | کاربرد |
|---|---|
| ➕ ساخت پلن نمایندگی | ساخت پلن جدید (پنل، نقش، نوع پلن، قیمت، محدودیتها و افزودنیها) |
| 📋 مدیریت پلنها | مشاهده، ویرایش، فعال/غیرفعال، نمایش دکمه، حذف |
| ➕ افزودن ادمین موجود | وصل کردن ادمینی که از قبل در پنل ساخته شده |
| ❌ بستن | خروج از منو |
چهار نوع پلن
پلن جدید فقط یکی از این چهار نوع است. نوع پلن تعیین میکند نماینده چطور پول میدهد، چه چیزی را میتواند بعداً بخرد و ربات چه کارهایی را خودکار انجام میدهد.
| نوع | خلاصه |
|---|---|
| ثابت | یک بستهٔ پیشپرداخت: یک مبلغ، یک حجم مشخص و یک مدت مشخص. با تمام شدن مدت منقضی میشود و با همان پلن تمدید میشود. |
| نامحدود (زمانی) | پیشپرداخت فقط برای زمان: یک مبلغ و یک مدت، حجم همیشه نامحدود. منقضی میشود و با همان پلن تمدید میشود. |
| مصرفی (بر اساس حجم مصرف) | پرداخت پس از مصرف: موقع خرید پولی کم نمیشود و به ازای هر گیگی که یوزرهای نماینده مصرف میکنند، هر دقیقه از کیف پول نماینده کسر میشود. انقضا و تمدید ندارد. |
| ساعتی (بر اساس زمان فعال بودن) | پرداخت پس از مصرف: به ازای هر ساعتی که ادمین نماینده فعال است، سهم هر دقیقه از کیف پول کسر میشود. انقضا و تمدید ندارد. |
جدول مقایسه
| ثابت | نامحدود (زمانی) | مصرفی (بر اساس حجم مصرف) | ساعتی (بر اساس زمان فعال بودن) | |
|---|---|---|---|---|
| پرداخت | یکجا موقع خرید (قیمت پلن) | یکجا موقع خرید (قیمت پلن) | به ازای هر گیگ مصرف (قیمت هر گیگ)، هر دقیقه از کیف پول | به ازای هر ساعت فعال بودن (قیمت هر ساعت)، هر دقیقه از کیف پول |
| حجم | الزامی، بیشتر از صفر | ندارد (همیشه نامحدود) | اختیاری؛ سقف کل ترافیک (0 = نامحدود) | اختیاری؛ سقف کل ترافیک (0 = نامحدود) |
| مدت (روز) | الزامی، بیشتر از صفر | الزامی، بیشتر از صفر | ندارد | ندارد |
| سقف یوزر | اختیاری (0 = نامحدود) | اختیاری (0 = نامحدود) | اختیاری (0 = نامحدود) | اختیاری (0 = نامحدود) |
| نقش ادمین | الزامی (از نقشهای پنل) | الزامی | الزامی | الزامی |
| پایان کار | انقضا ← مهلت حذف ← حذف کامل | انقضا ← مهلت حذف ← حذف کامل | بدون انقضا؛ با خالی شدن کیف پول تعلیق و بعد از شارژ فعالسازی خودکار | بدون انقضا؛ با خالی شدن کیف پول تعلیق و بعد از شارژ فعالسازی خودکار |
| تمدید | فقط با همان پلن | فقط با همان پلن | ندارد | ندارد |
| افزودنیها | روز اضافه، حجم اضافه، یوزر اضافه | روز اضافه، یوزر اضافه | یوزر اضافه | یوزر اضافه |
| سقف مصرف دستی نماینده | — | — | دارد (📦 محدودیت مصرف) | — |
| حداقل موجودی برای خرید | — | — | دارد | دارد |
| کد تخفیف در خرید | دارد | — | — | — |
حداقل موجودی برای خرید پلن مصرفی و ساعتی همان 🏷 حداقل شارژ نمایندگی است (پیشفرض ۱۰۰,۰۰۰ تومان) و در تب تنظیمات نمایندگی پنل تحت وب هم تنظیم میشود. خرید پلن ثابت و نامحدود فقط به اندازهٔ قیمت پلن موجودی لازم دارد.
کدام نوع را انتخاب کنم؟
- میخواهید بستهٔ مشخص بفروشید و درآمدتان از اول معلوم باشد: ثابت.
- میخواهید فقط زمان بفروشید و حجم را محدود نکنید: نامحدود (زمانی).
- میخواهید نماینده دقیقاً به اندازهٔ ترافیکی که مصرف میکند پول بدهد: مصرفی (بر اساس حجم مصرف).
- میخواهید نماینده به اندازهٔ زمانی که پنلش روشن است پول بدهد، مستقل از حجم: ساعتی (بر اساس زمان فعال بودن).
فیلدهای پلن
فرم پلن (در ربات و پنل تحت وب) فقط فیلدهایی را میپرسد که نوع انتخابشده لازم دارد؛ فیلدهای بیاستفاده پنهاناند و موقع ذخیره صفر میشوند تا پلن هیچوقت مقدار متناقض نداشته باشد.
| فیلد | یعنی | ثابت | نامحدود | مصرفی | ساعتی |
|---|---|---|---|---|---|
| پنل | پنلی که ادمین نماینده روی آن ساخته میشود | الزامی | الزامی | الزامی | الزامی |
| نقش (Role) | نقش ادمین در پاسارگارد؛ از خود پنل خوانده میشود (نقش Owner در لیست نیست) و دسترسیهای ادمین نماینده را تعیین میکند | الزامی | الزامی | الزامی | الزامی |
| قیمت پلن | مبلغی که یکجا موقع خرید و هر تمدید کسر میشود | الزامی، بیشتر از صفر | الزامی، بیشتر از صفر | — | — |
| قیمت هر گیگ مصرف | مبلغ هر گیگ ترافیکی که یوزرهای نماینده مصرف میکنند | — | — | الزامی، بیشتر از صفر | — |
| قیمت هر ساعت | مبلغ هر ساعت فعال بودن ادمین نماینده (دقیقهای کسر میشود) | — | — | — | الزامی، بیشتر از صفر |
| حجم (گیگ) | سقف کل ترافیک ادمین نماینده در پنل | الزامی، بیشتر از صفر | — (نامحدود) | اختیاری، 0 = نامحدود | اختیاری، 0 = نامحدود |
| مدت (روز) | مدت اعتبار از لحظهٔ خرید | الزامی، بیشتر از صفر | الزامی، بیشتر از صفر | — | — |
| سقف یوزر | حداکثر تعداد یوزری که نماینده میسازد | اختیاری، 0 = نامحدود | اختیاری، 0 = نامحدود | اختیاری، 0 = نامحدود | اختیاری، 0 = نامحدود |
| قیمت هر روز اضافه | روز اضافه | اختیاری، 0 = خاموش | اختیاری، 0 = خاموش | — | — |
| قیمت هر گیگ حجم اضافه | حجم اضافه | اختیاری، 0 = خاموش | — | — | — |
| قیمت هر یوزر اضافه | یوزر اضافه | اختیاری، 0 = خاموش | اختیاری، 0 = خاموش | اختیاری، 0 = خاموش | اختیاری، 0 = خاموش |
مقدار منفی در هیچ فیلدی پذیرفته نمیشود. اگر مقداری نامعتبر باشد، ذخیره رد میشود و پیام دقیق میآید؛ مثلاً حجم پلن ثابت باید بیشتر از صفر باشد.، مدت پلن باید بیشتر از صفر روز باشد. یا قیمت هر ساعت باید بیشتر از صفر باشد.
افزودنیها: روز اضافه، حجم اضافه، یوزر اضافه
افزودنیها چیزهایی هستند که نماینده بعد از خرید، روی همان نمایندگی و از کیف پول خودش میخرد. قیمت هر افزودنی روی هر پلن جداگانه و به ازای یک واحد تعیین میشود. قیمت 0 یعنی خاموش؛ افزودنی خاموش به نماینده نشان داده نمیشود و در توضیح پلن هم ذکر نمیشود.
| افزودنی | واحد | برای چه نوع پلنی | چه چیزی را تغییر میدهد | کی نمایش داده نمیشود |
|---|---|---|---|---|
| روز اضافه | روز | ثابت، نامحدود | تاریخ انقضا را به تعداد روز جلو میبرد. روی حساب منقضی هم کار میکند؛ روزها از همین لحظه حساب میشوند و ادمین در پنل دوباره فعال میشود | حساب تاریخ انقضا ندارد |
| حجم اضافه | گیگ | فقط ثابت | حجم را به سقف فعلی اضافه میکند (روی سقفی که در خود پنل است) | حساب منقضی است (اول باید تمدید شود)، یا حجم حساب نامحدود است |
| یوزر اضافه | یوزر | همهٔ نوعها | سقف یوزر را بالا میبرد. دائمی است و با تمدید یا تغییر پلن از بین نمیرود | سقف یوزر حساب 0 (نامحدود) است |
سقف هر خرید: ۳۶۵۰ روز، ۱۰۰٬۰۰۰ گیگ و ۱۰٬۰۰۰ یوزر. قبل از پرداخت، نماینده پیشنمایش «قبل ← بعد» و مبلغ کل را میبیند. اگر اعمال روی پنل شکست بخورد، مبلغ به کیف پول برمیگردد. هر خرید در تاریخچهٔ نمایندگی و لاگ نمایندگیها ثبت میشود. حساب قفلشده توسط ادمین افزودنی نمیخرد.
دکمهٔ هر افزودنی در تنظیمات پنل
علاوه بر قیمت پلن، هر افزودنی یک کلید روشن/خاموش در 🏢 دکمههای نمایندگی هر پنل دارد (پیشفرض روشن). افزودنی فقط وقتی به نماینده نشان داده میشود که هم قیمتش روی پلن بیشتر از صفر باشد و هم کلیدش برای آن پنل روشن باشد. دکمهٔ خاموش در API وباپ هم رد میشود.
| افزودنی | کلید دکمه |
|---|---|
| روز اضافه | extra_days |
| حجم اضافه | extra_volume |
| یوزر اضافه | buy_user_capacity (همان کلید قبلی «خرید ظرفیت کاربر اضافه») |
قیمت یوزر اضافه دیگر روی پنل نیست
قبلاً قیمت «خرید ظرفیت کاربر» برای کل پنل تعیین میشد. حالا قیمت یوزر اضافه روی هر پلن تنظیم میشود و تنظیم قدیمی پنل دیگر برای فروش استفاده نمیشود. موقع ارتقا، قیمت قدیمی روی پلنهای همان پنل کپی شده است؛ نکات ارتقا را ببینید.
تمدید
فقط پلنهای ثابت و نامحدود (زمانی) تمدید میشوند. قواعد:
- فقط با پلن خریداریشده. تمدید همیشه با همان پلنی است که نمایندگی روی آن است. پلن دیگری برای تمدید پیشنهاد یا پذیرفته نمیشود، چون پلن دیگر نقش و سقف یوزر متفاوتی دارد. اگر لازم است نمایندگی روی پلن دیگری برود، اول از ابزار تغییر پلن استفاده کنید.
- پلن غیرفعال هم تمدید میشود. غیرفعال کردن پلن فقط آن را از فروش به خریداران جدید برمیدارد؛ نمایندههای فعلی همچنان آن را تمدید میکنند.
- روزها از انقضای فعلی. روزهای پلن به تاریخ انقضای فعلی اضافه میشوند، پس روزهای باقیمانده حفظ میشوند. اگر حساب منقضی شده باشد، از همین لحظه حساب میشود و ادمین دوباره فعال میشود.
- حجم روی حجم فعلی. در پلن ثابت، حجم پلن به سقف فعلی اضافه میشود؛ حجم مصرفنشده و حجم اضافهای که قبلاً خریده شده از بین نمیرود. پلن نامحدود حجمی اضافه نمیکند.
- چیزی ریست نمیشود. مصرف، یوزرها و یوزر اضافهٔ خریداریشده دست نمیخورند.
- قیمت = قیمت فعلی پلن. کد تخفیف در تمدید مثل قبل قابل استفاده است.
حساب قفلشده توسط ادمین را نماینده نمیتواند تمدید کند، ولی ادمین از ابزارهای حساب میتواند.
تغییر قیمت پلن
| نوع | اثر تغییر قیمت |
|---|---|
| مصرفی و ساعتی | فوری روی همهٔ نمایندگیهای فعال همین پلن اعمال میشود، چون هزینه همیشه با نرخ فعلی پلن حساب میشود. به نمایندههای متصل پیام تغییر نرخ (قبلی و جدید) فرستاده میشود و در تاریخچهٔ هر نمایندگی ثبت میشود؛ در مقصد لاگها فقط یک پیام خلاصه میآید. |
| ثابت و نامحدود | فقط روی خریدها و تمدیدهای بعدی. نمایندههای فعلی تا تمدید بعدی همان چیزی را دارند که خریدهاند. |
| قیمت افزودنیها | از خرید بعدی همان افزودنی، برای همهٔ نمایندگیهای این پلن. |
تغییر حجم، مدت یا سقف یوزر پلن هم روی حسابهای فعلی اعمال نمیشود؛ حجم و مدت جدید در تمدید بعدی اضافه میشوند. برای اصلاح یک حساب مشخص از ابزارهای ادمین استفاده کنید.
پلنهای قدیمی
- پلنهای هر گیگابایت و هر ترابایت (
per_gb/per_tb) که قبلاً ساخته شدهاند، مثل قبل کار و صورتحساب میکنند و با همان نوع ویرایش میشوند، ولی پلن جدیدی از این نوعها ساخته نمیشود. فقط افزودنی یوزر اضافه برایشان فعالشدنی است. - پلن ثابتِ قدیمی با حجم 0 (نامحدود) یا مدت 0 تا وقتی ویرایش نشده، مثل قبل کار میکند. با اولین ویرایش باید مقدار معتبر بدهید (حجم و مدت بیشتر از صفر). اگر منظورتان پلن بدون سقف حجم است، پلن نامحدود (زمانی) جدید بسازید.
- نوع پلنی که نمایندگی به آن وصل است عوض نمیشود.
ساخت پلن نمایندگی
پنل
➕ ساخت پلن نمایندگی را بزنید و پنل را انتخاب کنید.
نقش (Role)
ربات نقشهای ادمین را از خود پنل میخواند و بهصورت دکمه نشان میدهد (۱۵ نقش در هر صفحه، با ◀️ قبلی و بعدی ▶️). نقش Owner در لیست نیست. ادمینی که برای نماینده ساخته میشود همین نقش و دسترسیهایش را میگیرد. اگر پیام نقشی از پنل دریافت نشد آمد، دسترسی حساب پنل را بررسی کنید.
نوع پلن
یکی از ثابت، نامحدود (زمانی)، مصرفی (بر اساس حجم مصرف) یا ساعتی (بر اساس زمان فعال بودن). با انتخاب نوع، راهنمای همان نوع نمایش داده میشود: چه چیزی الزامی است، نماینده چه کارهایی میتواند بکند و ربات چه کارهایی را خودکار انجام میدهد.
قیمت و محدودیتها
ربات فقط فیلدهای همان نوع را به ترتیب میپرسد:
- قیمت پلن (تومان)
- حجم (گیگ، بیشتر از صفر)
- سقف یوزر (0 نامحدود)
- مدت (روز، بیشتر از صفر)
- قیمت روز اضافه، حجم اضافه و یوزر اضافه (0 = خاموش)
- قیمت پلن (تومان)
- سقف یوزر (0 نامحدود)
- مدت (روز، بیشتر از صفر)
- قیمت روز اضافه و یوزر اضافه (0 = خاموش)
حجم پرسیده نمیشود و همیشه نامحدود است.
- قیمت هر گیگ مصرف (تومان)
- سقف ترافیک کل نماینده (گیگ، 0 نامحدود)
- سقف یوزر (0 نامحدود)
- قیمت یوزر اضافه (0 = خاموش)
مدت ندارد.
- قیمت هر ساعت (تومان)
- سقف ترافیک کل نماینده (گیگ، 0 نامحدود)
- سقف یوزر (0 نامحدود)
- قیمت یوزر اضافه (0 = خاموش)
مدت ندارد.
پیام ✅ پلن نمایندگی #12 ساخته شد. یعنی پلن فعال است و در خرید نمایش داده میشود.
📋 مدیریت پلنها
پنل را انتخاب کنید و روی پلن بزنید. جزئیات پلن (پنل، نوع، نقش، وضعیت، قیمت، حجم، سقف یوزر، مدت، قیمت افزودنیها، ظاهر دکمهٔ خرید و تعداد نمایندگیهای متصل) با دکمههای مدیریت نمایش داده میشود:
| دکمه | کار |
|---|---|
| ✏️ قیمت | قیمت جدید. در ثابت و نامحدود قیمت پلن، در مصرفی قیمت هر گیگ و در ساعتی قیمت هر ساعت عوض میشود. اثر تغییر قیمت را ببینید. |
| 🔄 وضعیت | فعال یا غیرفعال کردن پلن. پلن غیرفعال برای خرید جدید نمایش داده نمیشود، ولی نمایندگیهای قبلی کار میکنند و تمدید هم میشوند. |
| 🎨 نمایش دکمه | ✏️ متن دکمه (/skip برای متن خودکار)، رنگ آبی/سبز/قرمز/—، 🖼 آیکون ایموجی پریمیوم، 🧹 حذف آیکون و ♻️ ریست نمایش |
| 🗑 حذف | حذف پلن. اگر نمایندگیای به این پلن وصل باشد، حذف نمیشود (در جزئیات «قابل حذف نیست» نوشته میشود). |
قیمت افزودنیها و بقیهٔ فیلدها هم از جزئیات پلن (یا کاملتر، از فرم پلن در پنل تحت وب) ویرایش میشوند.
پلنی که نمایندگی به آن وصل است حذف نمیشود و پنل و نوع آن هم قفل است؛ نمایندگیِ بدون پلن نرخ و قواعدش را از دست میدهد. بهجای حذف، پلن را غیرفعال کنید.
افزودن ادمین موجود
این قابلیت برای زمانی است که خودتان ادمین نمایندگی را از داخل پنل (پاسارگارد) ساختهاید و فقط میخواهید همان ادمین را داخل ربات ثبت کنید تا کاربر از بخش «نمایندگیهای من» مدیریتش کند.
ربات ادمین جدید در پنل نمیسازد؛ همان ادمین موجود را لینک میکند. از کیف پول کاربر هم چیزی کسر نمیشود.
پیشنیازها
قبل از شروع این موارد را آماده کنید:
- پنل در ربات متصل و در دسترس باشد.
- ادمین نمایندگی را از قبل داخل همان پنل ساخته باشید (نام کاربری مشخص).
- حداقل یک پلن نمایندگی برای همان پنل در ربات ساخته باشید (برای صورتحساب و مدیریت داخل ربات).
- کاربر مقصد قبلاً ربات را
/startکرده باشد. - همان ترکیب «پنل + نام کاربری ادمین» قبلاً در ربات ثبت نشده باشد.
مراحل بهصورت کامل
مرحله ۱ — ورود به منو
- وارد پنل مدیریت شوید (
/panelیا دکمه پنل مدیریت). - دکمه 🏢 پلن نمایندگی را بزنید.
- از منو، ➕ افزودن ادمین موجود را انتخاب کنید.
متن صفحه:
➕ افزودن ادمین موجود
ادمینی که از قبل در پنل ساخته شده را به ربات وصل میکند.
پنل را انتخاب کنید:مرحله ۲ — انتخاب پنل
پنلی که ادمین را داخل آن ساختهاید انتخاب کنید.
مرحله ۳ — ارسال نام کاربری ادمین پنل
ربات از شما میخواهد نام کاربری همان ادمین پنل را بفرستید:
➕ افزودن ادمین موجود — {نام پنل}
نام کاربری ادمینی که داخل پنل ساختهاید را ارسال کنید.
مثال: agency01نام کاربری را دقیقاً مثل پنل ارسال کنید (مثلاً agency01).
اگر نام کاربری در پنل پیدا نشود، یا از قبل در ربات ثبت شده باشد، خطا میگیرید و میتوانید دوباره ارسال کنید.
پس از پیدا شدن ادمین، پیشنمایش نشان داده میشود؛ معمولاً شامل این موارد است:
- نام پنل و نام کاربری
- وضعیت ادمین
- نقش (در صورت وجود)
- ترافیک مصرفشده / سقف
- تعداد یوزر (/ سقف در صورت وجود)
- انقضا (در صورت وجود)
- نوت فعلی
سپس از شما میخواهد آیدی تلگرام را بفرستید:
اگر اطلاعات درست است، آیدی عددی تلگرام کاربر را ارسال کنید.
⚠️ آن کاربر باید قبلاً ربات را /start کرده باشد.مرحله ۴ — ارسال آیدی عددی تلگرام
آیدی عددی کاربر مقصد را ارسال کنید (نه یوزرنیم).
| حالت | نتیجه |
|---|---|
| عدد نامعتبر | دوباره از شما میخواهد |
کاربر /start نکرده | کاربر {id} ربات را استارت نکرده است. |
| معتبر | به مرحله انتخاب پلن میروید |
مرحله ۵ — انتخاب پلن صورتحساب
لیست پلنهای نمایندگی همان پنل نمایش داده میشود. روی هر دکمه نوع پلن هم دیده میشود (ثابت / نامحدود / مصرفی / ساعتی / …).
این پلن فقط برای مدیریت و صورتحساب داخل ربات است؛ محدودیتهای فعلی ادمین در پنل (data_limit، max_users، وضعیت و …) عوض نمیشوند. اگر بعداً خواستید محدودیتهای پنل با ربات یکی شود، از ابزارهای ادمین استفاده کنید.
مرحله ۶ — تایید نهایی
قبل از اجرا صفحه تایید با این هشدارها میآید:
- رمز ادمین در پنل عوض میشود (رمز فعلی از پنل قابل خواندن نیست)
- نوت روی آیدی تلگرام تنظیم میشود
- محدودیتهای فعلی پنل حفظ میمانند
- به کاربر پیام فعالسازی با رمز جدید ارسال میشود
دکمهها:
- ✅ تایید و افزودن — اجرای عملیات
- بازگشت به لیست پلن — انتخاب دوباره پلن
مرحله ۷ — نتیجه
پس از تایید موفق:
- ردیف نمایندگی در ربات ساخته میشود.
- رمز ادمین در پنل به رمز جدید تغییر میکند و در ربات ذخیره میشود.
- نوت ادمین پنل روی آیدی تلگرام کاربر تنظیم میشود.
- به کاربر پیام فعالسازی ارسال میشود (نام پنل، کد نمایندگی، آدرس ورود، نام کاربری، رمز جدید، نوع پلن، و اینکه از «نمایندگیهای من» قابل مدیریت است).
- در پیام خودتان (ادمین) هم کد نمایندگی و رمز جدید نمایش داده میشود.
- اگر ارسال پیام به کاربر ناموفق باشد، افزودن همچنان موفق است؛ رمز را از پیام خودتان دستی به او بدهید.
- لاگ با عنوان «افزودن ادمین موجود» ثبت میشود.
کاربر بعداً همان نمایندگی را در نمایندگیهای من میبیند و مثل خرید عادی مدیریت میکند.
خلاصه مسیر
🏢 پلن نمایندگی
→ ➕ افزودن ادمین موجود
→ انتخاب پنل
→ ارسال نام کاربری ادمین پنل
→ ارسال آیدی عددی تلگرام کاربر
→ انتخاب پلن صورتحساب
→ ✅ تایید و افزودنچه کارهایی انجام نمیشود
- ادمین جدید در پنل ساخته نمیشود
- از کیف پول کاربر مبلغی کسر نمیشود
- کد تخفیف اعمال نمیشود
- محدودیتها و وضعیت فعلی پنل از روی پلن ربات بازنویسی نمیشوند
صورتحساب و کارهای خودکار
ربات در پسزمینه نمایندگیها را مدیریت میکند:
| کار | زمانبندی | توضیح |
|---|---|---|
| صورتحساب مصرفی | هر ۶۰ ثانیه | ترافیک جدید هر نمایندگی مصرفی × قیمت فعلی هر گیگ، از کیف پول نماینده کم میشود. نقطهٔ «تا کجا حساب شده» روی خود حساب نگه داشته میشود و کسر و جابهجایی آن در یک تراکنش انجام میشود، پس مصرفی دو بار حساب نمیشود. اگر شمارندهٔ مصرف در پنل ریست شود، مصرف بعد از ریست درست حساب میشود |
| صورتحساب ساعتی | هر ۶۰ ثانیه | سهم همان دقیقه از نرخ فعلی ساعتی کسر میشود؛ کسرهای هر ساعت در دفتر صورتحساب در یک ردیف جمع میشوند. زمانِ توقف یا تعلیق هزینه ندارد |
| تعلیق خودکار | هر ۶۰ ثانیه | اگر موجودی برای هزینهٔ جدید کافی نباشد، ادمین نماینده در پنل غیرفعال میشود و نماینده پیام میگیرد |
| فعالسازی دوباره | هر ۶۰ ثانیه | بعد از شارژ کیف پول و کافی شدن موجودی، نمایندگی تعلیقشده خودکار فعال میشود |
| سقف مصرف دستی | هر ۶۰ ثانیه | در پلن مصرفی، اگر مصرف به سقفی که خود نماینده گذاشته برسد، پنل غیرفعال میشود |
| هشدار موجودی کم | هر ۵ دقیقه | اگر کیف پول نماینده با خرج فعلی کمتر از هشدار موجودی کم (پیشفرض ۶ ساعت) دوام بیاورد، یک بار هشدار با زمان تقریبی باقیمانده میگیرد. بعد از شارژ، هشدار دوباره فعال میشود. فقط وقتی فروش نمایندگی روشن باشد اجرا میشود. |
| انقضا (ثابت و نامحدود) | هر ۶۰ ثانیه | با تمام شدن مدت، ادمین در پنل غیرفعال میشود و نماینده پیام ⌛ نمایندگی … منقضی شد. را میگیرد |
| حذف بعد از انقضا | بعد از مهلت حذف (پیشفرض ۷ روز) | اگر تمدید نشود (یا روز اضافه خریده نشود)، ادمین و یوزرهایش از پنل و نمایندگی از ربات حذف میشوند و نماینده پیام حذف میگیرد. تا ادمین واقعاً از پنل پاک نشده، ردیف نمایندگی نگه داشته میشود و حذف دوباره امتحان میشود |
| پاکسازی سوابق | خودکار | دفتر صورتحساب قدیمیتر از ۹۰ روز و تاریخچهٔ رویدادها قدیمیتر از ۳۶۵ روز پاک میشوند |
سقف حجم پلن (در ثابت، و در مصرفی و ساعتی اگر تعیین شده باشد) روی خود ادمین در پنل پاسارگارد ثبت میشود و پنل بعد از رسیدن به آن مصرف بیشتر را اجازه نمیدهد. نماینده با حجم اضافه (فقط ثابت) یا تمدید حجم را بالا میبرد.
رویدادهایی مثل خرید، تمدید، خرید افزودنی، تعلیق، فعالسازی، انقضا، حذف و کارهای اصلاحی ادمین در مقصد لاگها ثبت میشوند. کسرهای دقیقهای و جدول هزینههای مصرفی به تلگرام فرستاده نمیشوند تا کانال لاگ شلوغ نشود؛ این کسرها در تب صورتحساب پنل تحت وب و تاریخچهٔ هر نمایندگی دیده میشوند.
مهلت حذف، آستانهٔ هشدار موجودی، حداقل موجودی و ثبت بدهی مصرف در تب تنظیمات نمایندگی پنل تحت وب تنظیم میشوند.
ابزارهای ادمین برای هر نمایندگی
این ابزارها برای اصلاح یک حساب مشخص هستند و در پنل تحت وب (پنجرهٔ مدیریت هر حساب در حسابها) و در ربات (مدیریت کاربر → کاربر → 🏢 نمایندگیهای کاربر) در دسترساند. هر ابزار اول روی پنل اعمال میشود و فقط اگر پنل پذیرفت در ربات ذخیره میشود، و همه با نام ادمین در تاریخچهٔ نمایندگی و لاگ ثبت میشوند. هر ابزار فقط برای حسابی نمایش داده میشود که برایش معنا دارد.
| ابزار | چه میکند | کی استفاده کنید |
|---|---|---|
| روز اضافهٔ رایگان (تمدید رایگان) | تاریخ انقضا را بدون هزینه چند روز جلو میبرد؛ حساب منقضی دوباره فعال میشود. فقط برای حساب دارای انقضا | جبران قطعی، هدیه، یا نجات حسابی که در مهلت حذف است |
| تنظیم / افزودن حجم | حجم را روی یک مقدار مشخص (گیگ) میگذارد یا مقداری به آن اضافه میکند، رایگان. برای پلن نامحدود (زمانی) نیست؛ برای حسابی که حجمش نامحدود است فقط «تنظیم» شدنی است | جبران حجم، اصلاح اشتباه، یا محدود کردن حجم حساب مصرفی/ساعتی |
| سقف یوزر | سقف یوزر را مستقیم تعیین میکند (0 = نامحدود). مقدار بالاتر از سقف پلن بهعنوان یوزر اضافه نگه داشته میشود | هدیه دادن یوزر یا اصلاح سقف |
| تغییر پلن | حساب را رایگان به پلن دیگری از همان پنل و همان نوع میبرد. نقش و سقف یوزر از پلن جدید گرفته میشود و یوزر اضافهٔ خریداریشده حفظ میشود. حجم و انقضا تغییر نمیکنند؛ تمدید بعدی با پلن جدید و به قیمت آن است | وقتی نماینده میخواهد با پلن دیگری تمدید کند، یا پلن قدیمی را جمع میکنید |
| همگامسازی با پنل | آنچه ربات ذخیره کرده (وضعیت، حجم، سقف یوزر، نقش پلن) را دوباره روی ادمین در پنل مینویسد | کسی ادمین را دستی در پنل تغییر داده، یا بعد از خطای پنل اطلاعات دو طرف یکی نیست |
| بخشیدن مصرف کسرنشده | فقط پلن مصرفی: ترافیکی که از آخرین کسر تا الان مصرف شده هیچوقت حساب نمیشود | مصرف ناخواسته (مثلاً حمله یا خطای پنل) که نمیخواهید از نماینده بگیرید |
| قفل / بازکردن قفل | ادمین را در پنل غیرفعال میکند و نماینده تا بازشدن قفل جز حذف هیچ کاری نمیتواند بکند | تخلف، بدهی یا بررسی حساب |
| تمدید | تمدید با پلن خود حساب؛ مبلغ از کیف پول خود نماینده کسر میشود. روی حساب قفلشده هم کار میکند | نماینده از شما خواسته تمدید کنید |
| رمز عبور | نمایش رمز فعلی یا ساخت رمز جدید | نماینده رمز را گم کرده یا رمز لو رفته |
| حذف | ادمین و همهٔ یوزرهایش از پنل و نمایندگی از ربات حذف میشود. غیرقابل بازگشت | پایان همکاری. اگر پنل خطا بدهد، نمایندگی در ربات باقی میماند |
برای نمایندگی مصرفی، 📦 محدودیت مصرف (سقف گیگ) هم از همین بخش تنظیم میشود.
دکمههایی که خود نماینده در نمایندگیهای من میبیند، برای هر پنل در 🏢 دکمههای نمایندگی تنظیم میشوند.
نکات ارتقا
این بخش برای مدیری است که ربات را از نسخهٔ قبل از «سیستم چهار نوع پلن» بهروزرسانی میکند و برای مراجعهٔ بعدی ثبت شده است.
چه تغییری کرد
- پلن جدید فقط ثابت، نامحدود (زمانی)، مصرفی یا ساعتی است؛ قبلاً فقط ثابت و مصرفی ساخته میشد.
- تمدید فقط با پلن خریداریشده است (قبلاً با هر پلن ثابت همان پنل ممکن بود).
- افزودنیهای روز اضافه و حجم اضافه اضافه شدند و قیمت یوزر اضافه از تنظیمات پنل به روی هر پلن رفت.
- ابزارهای اصلاح حساب (حجم، تغییر پلن، همگامسازی، بخشیدن مصرف) اضافه شدند.
مایگریشنهای دیتابیس
| شناسه | چه میکند | دادهٔ موجود |
|---|---|---|
a5e2c7f9d3b1 | ستون billed_traffic را به reseller_accounts اضافه میکند: نقطهٔ «تا کجا صورتحساب شده» برای پلن مصرفی، روی خود حساب | برای هر نمایندگی مصرفی از آخرین ردیف کسر مصرفی (یا شمارندهٔ قبلی در وضعیت صورتحساب) پر میشود، پس مصرفِ قبلاً کسرشده دوباره حساب نمیشود. حسابی که هیچکدام را ندارد مثل قبل از صفر شروع میکند |
c8d4f2a6e9b3 | ستونهای addon_day_price، addon_gb_price و addon_user_price (پیشفرض 0) را به reseller_plans و ستون extra_users را به reseller_accounts اضافه میکند | اگر «خرید ظرفیت کاربر» یک پنل روشن بوده، قیمت هر کاربر آن روی addon_user_price همهٔ پلنهای همان پنل کپی میشود (اگر خاموش بوده، 0 = خاموش). برای هر حسابی که سقف یوزرش از سقف پلنش بیشتر است، extra_users = سقف یوزر حساب − سقف یوزر پلن ثبت میشود تا یوزرهای خریداریشده دائمی بمانند. نکته: اگر قبلاً سقف یوزر یک پلن را کم کرده باشید، تفاوت نمایندههایی که با سقف قبلی خریدهاند هم «یوزر اضافه» حساب میشود؛ سقف فعلیشان تغییری نمیکند، فقط در «تغییر پلن» این تعداد روی سقف پلن جدید میآید (در صورت نیاز با «سقف یوزر» درستش کنید) |
هر دو مایگریشن فقط ستون اضافه میکنند؛ هیچ ستون یا دادهای حذف نمیشود و هیچ سقفی روی پنل تغییر نمیکند. روزهای اضافه و حجم اضافه بعد از ارتقا خاموشاند (قیمت 0) تا خودتان روی پلنها قیمت بگذارید.
مراحل ارتقا
از دیتابیس بکاپ بگیرید
قبل از هر کاری یک بکاپ کامل بگیرید (بکاپ و بازیابی).
ربات را متوقف کنید و مایگریشن را اجرا کنید
alembic upgrade head باید وقتی ربات خاموش است اجرا شود تا صورتحساب دقیقهای وسط تغییر جدولها اجرا نشود. در نصب استاندارد (Docker یا سرویس systemd) این دستور خودکار قبل از بالا آمدن ربات اجرا میشود؛ کافی است ربات را با روش همیشگی بهروزرسانی و ریاستارت کنید. در نصب دستی، ربات را متوقف کنید، در پوشهٔ پروژه alembic upgrade head را بزنید و بعد ربات را روشن کنید.
پلنها را مرور کنید
- قیمت یوزر اضافهٔ پلنها را بررسی کنید (از پنل کپی شده) و در صورت نیاز قیمت روز اضافه و حجم اضافه را بگذارید.
- کلیدهای
extra_daysوextra_volumeدر دکمههای نمایندگی هر پنل پیشفرض روشناند؛ تا قیمتی روی پلن نگذارید، چیزی به نماینده نشان داده نمیشود. - پلن ثابتِ قدیمی با حجم یا مدت 0 تا ویرایش نشود کار میکند؛ با اولین ویرایش باید مقدار معتبر بگیرد.
نمایندههای فعلی بدون تغییر کار میکنند
همهٔ نمایندگیهای موجود (از جمله پلنهای قدیمی هر گیگ/ترا) با همان پلن، همان سقفها و همان صورتحساب ادامه میدهند. تنها تفاوتی که نماینده میبیند این است که تمدید فقط با پلن خودش انجام میشود و افزودنیهایی که شما روشن کنید به صفحهٔ نمایندگیاش اضافه میشوند.