0 تومان
PHP
Domain, Shared Hosting, PHP 7+
اسکریپت PHP فرم پرداخت زرینپال یه ابزار ساده و کاربردی برای راهاندازی یه درگاه پرداخت آنلاینه که بهت کمک میکنه بهراحتی پرداختهای کاربرانت رو از طریق زرینپال مدیریت کنی. این اسکریپت بهگونهای طراحی شده که کاربر بتونه تو یه فرم شیک و خوشگل، اطلاعاتی مثل شماره تلفن، مبلغ، توضیحات پرداخت و ایمیلش رو وارد کنه و بعد به درگاه پرداخت زرینپال هدایت بشه.
یک راهحل ساده، سبک و امن برای ساخت صفحه پرداخت آنلاین شخصی با استفاده از درگاه زرینپال.
طراحی شده بر پایه API نسخه ۴ (V4) و پروتکل REST — مخصوص کسانی که میخوان پرداخت آنلاین خودشون رو بدون دردسر راه بندازن.
ایدهآل برای فریلنسرها، سایتهای شخصی و فروشگاههای کوچک.
⚡ ویژگیهای کلیدی
فرم پرداخت با ورودیهای: شماره تماس، مبلغ، توضیحات و ایمیل
پیشنمایش فاکتور قبل از پرداخت
هدایت خودکار به درگاه زرینپال و بازگشت به سایت
ارسال فاکتور HTML به ایمیل کاربر پس از پرداخت موفق
ذخیره دادهها در Session (بدون نیاز به دیتابیس)
اتصال امن به API از طریق cURL
ارسال ایمیل با PHPMailer
طراحی کاملاً رسپانسیو با تم زرد و مشکی
فونت حرفهای Vazirmatn (وزیرمتن Medium / Bold)
انیمیشنهای نرم برای تجربه کاربری بهتر
امنیت بالا با فیلتر ورودیها و محدودیت سشن ۳۰ دقیقهای
🧩 پیشنیازها
PHP نسخه 7.4 یا بالاتر
فعال بودن cURL
دسترسی به SMTP (مثلاً Gmail یا Mailtrap)
در حالت واقعی: اتصال HTTPS الزامی است
📁 ساختار فایلها
zarinpal-payment/
│
├── index.php # صفحه اصلی فرم پرداخت
├── preview.php # پیشنمایش فاکتور
├── request.php # ارسال درخواست پرداخت به API
├── verify.php # بررسی نتیجه پرداخت و ارسال ایمیل
├── config.php # تنظیمات اصلی (Merchant ID، SMTP، لوگو و …)
├── email.php # تابع ارسال ایمیل با PHPMailer
├── style.css # طراحی و استایل (تم زرد و مشکی)
│
├── fonts/ # فونت Vazirmatn
├── icons/ # آیکونهای شبکههای اجتماعی (۳۲x۳۲)
└── vendor/ # کتابخانه PHPMailer (نصب با composer)
⚙️ نصب و راهاندازی گامبهگام
۱. بارگذاری پروژه
پوشهی zarinpal-payment را در مسیر دلخواه روی سرور خود کپی کنید.
۲. تنظیمات اولیه در config.php
فایل config.php قلب تنظیمات پروژه است. موارد زیر را ویرایش کنید:
define(\'MERCHANT_ID\', \'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\');
define(\'CALLBACK_URL\', \'https://yourdomain.com/verify.php\');
define(\'SANDBOX\', true); // در حالت واقعی false شود
در همین فایل، تنظیمات ایمیل را نیز مشخص کنید:
define(\'SMTP_HOST\', \'smtp.gmail.com\');
define(\'SMTP_USER\', \'youremail@gmail.com\');
define(\'SMTP_PASS\', \'yourpassword\');
define(\'SMTP_PORT\', 587);
و سپس مسیر لوگو و لینک شبکههای اجتماعی را وارد کنید:
define(\'PAGE_LOGO\', \'icons/logo.png\');
define(\'TELEGRAM_URL\', \'https://t.me/yourid\');
define(\'INSTAGRAM_URL\', \'https://instagram.com/yourid\');
define(\'WHATSAPP_URL\', \'https://wa.me/yourid\');
۳. ویرایش فایلهای ظاهری
🧾 style.css
رنگ، فونت و اندازهها را از این فایل میتوانید تغییر دهید.
تم اصلی زرد و مشکی است، ولی بهراحتی میشود با کدهای CSS سفارشیسازی کرد.
🧠 index.php
اگر میخواهید فیلدهای جدید (مثل کد سفارش یا نام مشتری) اضافه کنید، در این فایل فرم را گسترش دهید.
مقادیر فرم به $_SESSION منتقل میشوند، پس هر فیلدی اضافه کنید، باید در preview.php هم نمایش داده شود.
🧮 preview.php
نمایش فاکتور نهایی قبل از پرداخت.
اگر فیلد جدیدی در فرم اضافه کردید، در اینجا هم چاپش کنید.
💸 request.php
ارسال درخواست به API زرینپال انجام میشود.
در محیط واقعی، مقدار CURLOPT_SSL_VERIFYPEER را حتماً روی true بگذارید تا SSL بررسی شود.
✅ verify.php
بررسی نتیجه پرداخت و ارسال ایمیل فاکتور با PHPMailer.
RefID (شناسه پرداخت) در این مرحله دریافت میشود.
در صورت موفقیت، سشن پاک میشود.
۴. تست در حالت Sandbox
برای تست تراکنش، مقدار SANDBOX را در config.php روی true قرار دهید.
در محیط تست، میتوانید از کارت زیر استفاده کنید:
شماره کارت: 0000-0000-0000-0000
رمز: 1111
پس از پرداخت موفق، کاربر به صفحه تأیید (verify.php) برگردانده میشود و فاکتور برایش ایمیل میشود.
۵. انتقال به حالت واقعی (Production)
برای استفادهی واقعی:
Merchant ID واقعی خود را از پنل زرینپال دریافت کنید.
مقدار SANDBOX را در config.php برابر false قرار دهید.
آدرس CALLBACK_URL باید HTTPS داشته باشد (زرینپال HTTP را قبول نمیکند).
در request.php و verify.php گزینهی CURLOPT_SSL_VERIFYPEER را true کنید.
تست نهایی را انجام دهید تا از عملکرد صحیح اطمینان حاصل کنید.
🛡️ نکات امنیتی
از htmlspecialchars() و filter_var() برای ورودیها استفاده شده است.
سشنها پس از ۳۰ دقیقه بهصورت خودکار منقضی میشوند.
تمامی خطاهای API در فایل debug.log ثبت میشوند.
اتصال باید همیشه با HTTPS انجام شود.
برای پروژههای عمومی، میتوانید CAPTCHA اضافه کنید.
🧠 توسعه و شخصیسازی
میخواهید حرفهایترش کنید؟ این چند مسیر پیشنهادی برای توسعهی بعدی است:
اتصال به دیتابیس MySQL برای ذخیره تاریخچه پرداختها
افزودن ماژول گزارشگیری از تراکنشها
افزودن صفحه مدیریت فاکتورها
طراحی قالب اختصاصی برای ایمیلها
افزودن Webhook برای هماهنگی با سایر سیستمها
🎯 نتیجه نهایی
اسکریپت پرداخت شخصی زرینپال، راهی سریع و مطمئن برای راهاندازی صفحه پرداخت مستقل است.
سبک، قابل اعتماد، و کاملاً قابل توسعه — ابزاری که بدون نیاز به فریمورکهای سنگین، کار پرداخت آنلاین را برای شما ساده میکند. ⚡
🧩 سفارشسازی اختصاصی
اگر میخواهید نسخهای سفارشیسازیشده، برنددار یا توسعهیافته از این اسکریپت داشته باشید
(مثل افزودن ماژول مدیریت، گزارشگیری یا اتصال به سیستم داخلی)،
در قسمت ثبت پروژه درخواست خود را ارسال کنید تا نسخهای دقیقاً مطابق نیازتان طراحی شود. 🚀
برای ارسال نظر باید وارد شوید.
برای ارسال نظر باید وارد شوید.
هنوز نظری برای این محصول ثبت نشده است.