یکی از موارد پرکاربرد در سامانهها و اپلیکیشنهای تحت وب، استفاده از درگاههای پرداخت آنلاین جهت دریافت وجه از کاربره. این دریافت وجه میتونه علتهای مختلفی از پرداخت حق اشتراک تا هزینه دانلود فایل و خرید یک محصول فیزیکی داشته باشه.
همونطور که میدونید جهت دریافت درگاه پرداخت از بانکهای کشور، نیاز به مدارک مختلف از جمله e-namad و برای دریافت e-namad هم نیاز به مدارک خاص خودش دارید؛ هرچند کار سخت و پیچیدهای نیست اما خیلی وقتها یا زمان اجازه طی این مراحل رو نمیده یا کسب و کار آنلاینتون طوری نیست که بشه این مراحل رو طی کرد. در این مواقع بهترین کار استفاده از درگاههای پرداخت واسط از جمله زرینپال هست که با درخواست مدارک کمتر و بدون نیاز به e-namad، در مدت زمان خیلی کوتاهتری میتونه شما رو به درگاه پرداخت شخصیه خودتون برسونه.
تو این نوشته میخوام شما رو با یک پکیج لاراول برای استفاده خیلی ساده و بیدردسر از درگاه پرداخت زرینپال آشنا کنم؛ توضیحات کامل پکیج به فارسی در گیتهاب هم موجوده:
https://github.com/pishran/Zarinpal
برای اضافه کردن پکیج به پروژه از دستور Composer زیر استفاده کنید:
composer require pishran/zarinpal
در مرحله بعد، جهت تنظیم پکیج کافیه کد درگاه (مرچنت کد) خودتون رو از که زرینپال دریافت کردید به فایل env اضافه کنید:
ZARINPAL_MERCHANT_ID=00000000-0000-0000-0000-000000000000
در صورتی که میخواید رو حالت تست (Sandbox) کار کنید، کافیه تنظیم زیر رو به فایل env اضافه کنید؛ حالت تست به صورت پیشفرض غیرفعاله:
ZARINPAL_SANDBOX_ENABLED=true
بسیار خب، حالا همه چیز آمادست. در ادامه نحوه استفاده از پکیج و نمونه کدها رو با هم مرور میکنیم.
به طور کلی پیادهسازی درگاه از دو مرحله تشکیل میشه؛ مرحله اول ارجاع کاربر به درگاه پرداخت بانکی هست و مرحله دوم احراز و بررسی نتیجه تراکنش.
برای فرستادن کاربر به درگاه پرداخت میتونید از کد زیر استفاده کنید:
بعد از اجرای این کدها، کاربر شما به درگاه پرداخت منتقل میشه و میتونه پرداخت رو با استفاده از کارت بانکی و رمز دوم انجام بده (و یا انجام نده!)؛ در هرصورت، چه با تکمیل و چه با انصراف از پرداخت، به آدرسی که در متد callback مشخص کردید برمیگرده.
در این مرحله لازمه که وضعیت تراکنش رو بررسی کنیم تا موفقیت یا عدم موفقیت برامون احراز بشه و کالا یا خدمات رو به کاربر ارائه بدیم. جهت بررسی وضعیت تراکنش از کد زیر استفاده میکنیم:
امیدوارم این نوشته مورد استفادتون قرار بگیره و دفعه بعدی که خواستید در پروژهای درگاه پرداخت آنلاین داشته باشید، این کار رو بدون نگرانی و دردسر انجام بدید.
نظر شما در مورد این پکیج چیه؟ شما درگاه پرداخت رو چطور در لاراول پیادهسازی میکنید؟ تو بخش نظرات منتظرتونم.