Skip to content

Instantly share code, notes, and snippets.

@irandargah-dev
Last active June 30, 2026 16:42
Show Gist options
  • Select an option

  • Save irandargah-dev/39a5a65cd29297179e92dd87374000b1 to your computer and use it in GitHub Desktop.

Select an option

Save irandargah-dev/39a5a65cd29297179e92dd87374000b1 to your computer and use it in GitHub Desktop.
راهنمای پلاگین «WHMCS» ایران درگاه

ماژول ایران‌درگاه برای WHMCS

ماژول رسمی درگاه پرداخت WHMCS برای ایران‌درگاه (IPG v2).

✨ امکانات

  • پرداخت فاکتور با تأیید قطعی سمت سرور (/v2/verifications) و مقایسهٔ مبلغ — بدون direct_verify.
  • هدایت Referer-safe: صفحهٔ واسطِ standalone روی دامنهٔ فروشگاه با Referrer-Policy: origin.
  • استرداد وجه از پنل مدیریت WHMCS (irandargah_refund/v2/refunds + /process).
  • محیط Sandbox/Production، امضای درخواست (HMAC)، تبدیل خودکار واحد پول.
  • جدول اختصاصی mod_irandargah_transactions (نگاشت فاکتور ↔ authority ↔ مبلغ) با توکن ضدِ دستکاری.
  • جلوگیری از ثبت دوبارهٔ پرداخت (checkCbTransID) و اعتبارسنجی فاکتور (checkCbInvoiceID).

🧱 ساختار

modules/gateways/
├── irandargah.php                 ماژول اصلی (MetaData/config/link/refund)
├── irandargah/
│   ├── api.php                    کلاینت API نسخهٔ ۲ (cURL، امضا، idempotency)
│   ├── helper.php                 توابع Capsule (جدول، تبدیل ارز، موبایل)
│   └── redirect.php               ایجاد تراکنش + صفحهٔ هدایت Referer-safe
└── callback/
    └── irandargah.php             بازگشت، تأیید سمت سرور، addInvoicePayment

⚙️ نصب

  1. محتوای پوشهٔ (modules/) را در ریشهٔ نصب WHMCS کپی کنید (با modules/ موجود ادغام می‌شود).
  2. از مسیر Configuration › System Settings › Payment Gateways (یا در نسخه‌های قدیمی Setup › Payments › Payment Gateways)، تب All Payment Gateways، گزینهٔ ایران‌درگاه (IranDargah) را فعال کنید.
  3. توکن API، محیط و واحد مبلغ را تنظیم و ذخیره کنید (جدول تراکنش‌ها به‌صورت خودکار ساخته می‌شود).
  4. در پنل ایران‌درگاه، دامنهٔ WHMCS را به‌عنوان دامنهٔ مجاز ترمینال ثبت کنید. ⚠️ الزامی.

🧪 تست (Sandbox)

محیط را «آزمایشی» بگذارید و با کارت تستی 6037997123456789 (CVV2 123، انقضا 05/12) پرداخت کنید.

🛠️ عیب‌یابی

  • گزارش‌ها: Configuration › System Logs › Gateway Log (نام ماژول irandargah).
  • خطای دامنه هنگام هدایت → دامنهٔ ثبت‌شدهٔ ترمینال را بررسی کنید.
  • مبلغ ۱۰ برابر/یک‌دهم → «واحد مبلغ ارسالی» را دستی روی ریال/تومان تنظیم کنید.
  • استرداد ۴۰۳ → قابلیت استرداد روی ترمینال فعال نیست؛ با پشتیبانی ایران‌درگاه تماس بگیرید.

مجوز

GPL-2.0-or-later

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment