
مشتریان هاستینگ و VPS اغلب میخواهند با کریپتو پرداخت کنند و بیشترشان با USDT. این راهنما نشان میدهد چطور کریپتو را بهعنوان روش پرداخت به BILLmanager 6 اضافه کنید: مشتری هنگام شارژ موجودی یا پرداخت سفارش، SnapEX Pay (crypto) را انتخاب میکند، با USDT روی شبکههای TRON، Ethereum یا BSC یا با کوین دیگری پرداخت میکند و پرداخت بهطور خودکار در BILLmanager ثبت میشود. به کیف پول یا نود بلاکچین نیازی نیست: پول بهصورت USDT به موجودی فروشنده شما در SnapEX Pay میرسد.
پرداخت چطور انجام میشود
client → top-up or order → SnapEX Pay (crypto)
BILLmanager → SnapEX Pay: invoice in USD
client → pays on the SnapEX Pay page
SnapEX Pay → signed webhook → BILLmanager
module → GET invoice from the API → paid?
BILLmanager: payment credited
- مشتری از میان روشهای پرداخت، SnapEX Pay (crypto) را انتخاب میکند. ماژول یک فاکتور SnapEX Pay به مبلغ پرداخت و به دلار میسازد و مشتری را به صفحه پرداخت میفرستد.
- مشتری کوین و شبکه را انتخاب و پرداخت میکند. وقتی فاکتور پرداخت شد، SnapEX Pay یک وبهوک امضاشده به سیستم صورتحساب شما میفرستد.
- ماژول فاکتور را دوباره از API SnapEX Pay میخواند و فقط اگر وضعیت فاکتور
paidو مبلغ درست باشد، پرداخت را ثبت میکند. بدنه وبهوک بهتنهایی هیچ پرداختی را ثبت نمیکند.
پرداخت از سه راه مستقل ثبت میشود و هر کدام زودتر برسد کافی است: وبهوک امضاشده، بازگشت مشتری از صفحه پرداخت و بررسی دورهای (checkpay، هر ۵ دقیقه). وبهوک گمشده هرگز پرداخت انجامشده را ثبتنشده باقی نمیگذارد و هیچ پرداختی دو بار ثبت نمیشود.
چه چیزهایی لازم است
- BILLmanager 6 با هر نسخهای و دسترسی root به سرور آن.
-
python3نسخه 3.6 یا بالاتر روی همان سرور. ماژول فقط از کتابخانه استاندارد استفاده میکند: بسته اضافهای لازم نیست و بهbillmanager-plugin-python-libsهم نیازی نیست. - روش پرداختی با ارز USD: فاکتورهای SnapEX Pay به دلار صادر میشوند.
- حساب فروشنده SnapEX Pay: در pay.snapex.pro ثبتنام کنید.
گام ۱. نصب ماژول
فایل snapexpay-billmanager-1.1.0.tar.gz (رایگان) را دانلود کنید و روی سرور BILLmanager با کاربر root اجرا کنید:
curl -fsSLO https://pay.snapex.pro/downloads/billmanager/snapexpay-billmanager-1.1.0.tar.gz
tar xzf snapexpay-billmanager-1.1.0.tar.gz
cd snapexpay-billmanager-1.1.0
sh install.sh
اسکریپت ماژول را در /usr/local/mgr5 کپی میکند، یک کار cron برای checkpay هر ۵ دقیقه (/etc/cron.d/snapexpay) بهعنوان پشتیبان اضافه میکند و BILLmanager را ریاستارت میکند. اگر BILLmanager یا python3 نسخه 3.6 یا بالاتر را پیدا نکند، با یک پیام متوقف میشود.
گام ۲. دریافت کلید API
در پنل فروشنده SnapEX Pay صفحه Developers را باز کنید و یک کلید API بسازید. ماژول به دسترسیهای invoices.read و invoices.write نیاز دارد؛ کلیدی که در پنل ساخته میشود همه دسترسیهای Merchant API، از جمله همین دو، را دارد. کلید فقط یک بار نمایش داده میشود؛ فوراً آن را کپی کنید. صدور دوباره کلید، کلید قبلی را بلافاصله باطل میکند، پس همان لحظه کلید را در روش پرداخت هم عوض کنید.
گام ۳. افزودن روش پرداخت
در BILLmanager مسیر Provider ← Payment methods ← Add را باز کنید و SnapEX Pay (crypto) را انتخاب کنید. ارز را USD بگذارید و کلید API را وارد کنید.
هنگام ذخیره، کلید در SnapEX Pay بررسی میشود: با کلید نادرست یا باطلشده، یا با ارزی غیر از USD، روش پرداخت ذخیره نمیشود.
بقیه تنظیمات:
- Client pays the network fee: خاموش یعنی مشتری دقیقاً مبلغ پرداخت را میپردازد و کارمزدها از مبلغی که شما دریافت میکنید کم میشوند؛ روشن یعنی کارمزد SnapEX Pay و کارمزد شبکه به مبلغ مشتری اضافه میشوند. بیشتر: کارمزد فاکتور کریپتو را چه کسی میپردازد.
- Payment window, minutes: مدت اعتبار صفحه پرداخت SnapEX Pay؛ از ۱ تا ۱۴۴۰ دقیقه، پیشفرض ۶۰. اگر مشتری بعداً دوباره پرداخت را باز کند، صفحه تازهای ساخته میشود.
- Test mode: گام ۶ را ببینید.
- Partner ID: گام ۵ را ببینید.
- API URL: خالی بگذارید.
مشتریان شما با ارز دیگری پرداخت میکنند؟ BILLmanager مبلغ را با نرخهای خودش به ارز روش پرداخت (USD) تبدیل میکند؛ پس نرخ USD را بهروز نگه دارید.
گام ۴. تنظیم وبهوک
وبهوک اختیاری است اما توصیه میشود: با آن، موجودی به محض تأیید پرداخت شارژ میشود.
- در پنل، در صفحه Developers، آدرس وبهوک
https://billing.example.com/mancgi/snapexpayresultرا وارد و ذخیره کنید (بهجایbilling.example.comدامنه سیستم صورتحساب خودتان را بگذارید). - رمز امضای
whsec_…فقط یک بار، درست پس از اولین ذخیره، نمایش داده میشود. آن را در فیلد Webhook secret در تنظیمات روش پرداخت وارد کنید.
ماژول اعلان را اینطور بررسی میکند:
- هدر
Webhook-Signature: HMAC-SHA256 از{Webhook-Timestamp}.{raw request body}با رمز شما؛ درخواستهای بدون امضا یا دستکاریشده401میگیرند؛ -
Webhook-Timestampباید حداکثر ۵ دقیقه با ساعت سرور اختلاف داشته باشد؛ NTP را روشن نگه دارید؛ - خود فاکتور، که با کلید شما دوباره از API SnapEX Pay خوانده میشود.
اگر در آن لحظه API در دسترس نباشد، ماژول 502 برمیگرداند و SnapEX Pay تحویل را تکرار میکند. در پنل برای هر حساب یک آدرس وبهوک وجود دارد؛ ماژول رویدادهای فاکتورهایی را که خودش نساخته نادیده میگیرد. بدون وبهوک هم پرداختها هنگام بازگشت مشتری از صفحه پرداخت و با بررسی هر ۵ دقیقه ثبت میشوند. بیشتر درباره امضا و تکرارها: وبهوکهای پرداخت کریپتو.
گام ۵. Partner ID: چه کسی ماژول را راهاندازی کرده
فیلد Partner ID اختیاری است. اگر BILLmanager را برای شرکت هاستینگ خودتان راهاندازی میکنید، آن را خالی بگذارید.
اگر یکپارچهساز هستید و سیستم صورتحساب مشتریان را راهاندازی میکنید، Partner ID خودتان را وارد کنید: حساب فروشنده مشتری به شما متصل میشود و ۳۵٪ از کارمزد ما از پرداختهای آن مشتری را دریافت میکنید. مشتری حساب SnapEX Pay و کلید API خودش را میسازد و پول به موجودی خود او میرود. شرایط: برنامه همکاری SnapEX Pay.
گام ۶. پرداخت تست بدون پول واقعی
- یک روش پرداخت جداگانه با Test mode روشن بسازید و آن را فقط برای یک مشتری تستی در دسترس بگذارید (Payment methods ← محدودیت بر اساس گروه مشتری).
- با حساب مشتری تستی وارد شوید، یک شارژ موجودی شروع کنید و این روش پرداخت را انتخاب کنید.
- صفحه SnapEX Pay برچسب Test دارد. هر کوین و شبکهای را انتخاب کنید: صفحه یک آدرس تستی نشان میدهد و حدود ۱۰ ثانیه بعد پرداخت خودبهخود تأیید میشود. لازم نیست چیزی بفرستید.
- پرداخت در BILLmanager باید ثبتشده شود. اگر نشد،
/usr/local/mgr5/var/pmsnapexpay.logو گزارش تحویلها در صفحه Developers را بررسی کنید. - حالت تست را خاموش کنید یا روش پرداخت تستی را حذف کنید.
وقتی حالت تست خاموش است، پرداختهای تستی هرگز ثبت نمیشوند؛ پس با پول تستی نمیتوان خدمات واقعی را پرداخت کرد. بیشتر: چگونه پرداخت کریپتو را بدون پول واقعی تست کنیم.
مشتری چه میبیند
- در میان روشهای پرداخت برای شارژ یا سفارش: SnapEX Pay (crypto).
- صفحه پرداخت SnapEX Pay: USDT روی TRC20، ERC20 و BEP20 و کوینهای دیگر (در مجموع بیش از ۵۰)، اگر SnapEX Pay آنها را برای مبلغ فاکتور ارائه کند.
- پس از پرداخت، مشتری به سیستم صورتحساب برمیگردد. اگر پرداخت تأیید شده باشد، BILLmanager صفحه معمول پرداخت موفق را نشان میدهد؛ اگر هنوز نه، مشتری پیام "Thank you! Your payment is being confirmed on the blockchain" (متشکریم! پرداخت شما در حال تأیید در بلاکچین است) و لینک بازگشت به پرداختها را میبیند؛ موجودی خودکار شارژ میشود.
- اگر مشتری صفحه را ترک کند و در مهلت پرداخت دوباره پرداخت را باز کند، به همان صفحه میرسد و فاکتور دومی ساخته نمیشود.
در BILLmanager چه ثبت میشود
- مشتری پرداخت را باز میکند ← وضعیت پرداخت In payment میشود و شناسه خارجی آن، شناسه فاکتور SnapEX Pay (
inv_…) است. - پرداخت کامل ← پرداخت ثبت میشود؛ فیلد اطلاعات، کوین، شبکه و مبلغ دریافتی را نشان میدهد.
- پرداخت ناقص (مشتری کمتر فرستاده و بهموقع تکمیل نکرده) ← چیزی ثبت نمیشود و در لاگ این پیام میآید: closed with a PARTIAL payment (…) - review in SnapEX Pay and credit manually. مبلغ دریافتی در موجودی SnapEX Pay شماست. کمپرداخت چگونه کار میکند: مشتری کمتر از مبلغ فاکتور فرستاد.
- پرداختنشده در مهلت ← پرداخت در وضعیت In payment میماند تا مشتری دوباره تلاش کند؛ یک روز پس از انقضای آخرین فاکتور SnapEX Pay، پرداخت لغو میشود.
- پرداخت دوباره، پرداخت پس از لغو یا پرداخت اضافه پس از بسته شدن فاکتور ← یک ورودی در لاگ؛ پول در موجودی SnapEX Pay شماست.
اگر چیزی کار نکرد
- روش پرداخت ذخیره نمیشود. کلید API (نادرست یا باطلشده) و ارز را بررسی کنید: فقط USD پذیرفته میشود.
- مشتری پیام "Crypto payments are not available for this currency" را میبیند. ارز روش پرداخت USD نیست.
- مشتری پیام "Could not start the crypto payment" را میبیند. SnapEX Pay فاکتور را نپذیرفته؛ دلیل در
pmsnapexpay.logاست. - وبهوک 401 میگیرد. رمز وبهوک مطابقت ندارد یا ساعت سرور تنظیم نیست.
- وبهوک 503 با پیام "webhook secret is not configured" میگیرد. آدرس وبهوک در پنل تنظیم شده، اما فیلد Webhook secret در روش پرداخت خالی است.
- مشتری پرداخت کرده اما موجودی شارژ نشده. پرداخت را در
/usr/local/mgr5/var/pmsnapexpay.logپیدا کنید: پرداخت ناقص و پولی که پس از لغو پرداخت رسیده، خودکار ثبت نمیشوند.
برای حذف ماژول، از پوشه آرشیو بازشده sh install.sh --uninstall را اجرا کنید. تاریخچه پرداختها در /usr/local/mgr5/var/snapexpay.sqlite باقی میماند.
هزینه
۱٪ برای هر پرداخت، بدون هزینه راهاندازی و بدون هزینه ماهانه. ماژول رایگان است.
صفحه ماژول: BILLmanager. در حال انتخاب درگاه برای هاستینگ هستید؟ ببینید: چگونه درگاه پرداخت کریپتو برای شرکت هاستینگ انتخاب کنیم. مرور برای شرکتهای هاستینگ: پرداخت کریپتو برای شرکتهای هاستینگ. ثبتنام: pay.snapex.pro.