? درگاه زرین‌پال برای لاراول

توسعه‌دهنده لاراول هستین و یه جای کار به اضافه کردن قابلیت پرداخت برای برنامه‌تون احتیاج پیدا می‌کنین. کلی پکیج این وسط وجود داره برای زرین‌پال که در ادامه اونا رو مقایسه می‌کنیم و گزینه مناسب‌تر رو استفاده کنیم.


مقایسه پکیج‌های موجود

(براساس آخرین آپدیت: بهار 1400)

evryn/laravel-toman:

✅ پشتیبانی از چندین درگاه ✅ رابط‌های ظریف ✅ باثبات (دارای تست‌سوئیت خودکار)

✅ پشتیبانی از حالت Sandbox ✅ قابلیت Fake کردن (برای تست‌های شما)

shetabit/payment:

✅ پشتیبانی از چندین درگاه ⛔ رابط‌های ظریف ⛔ باثبات (دارای تست‌سوئیت خودکار)

✅ پشتیبانی از حالت Sandbox ⛔ قابلیت Fake کردن (برای تست‌های شما)

Saeed-Pooyanfar/zarinpal-laravel:

⛔ پشتیبانی از چندین درگاه ⛔ رابط‌های ظریف ✅ باثبات (دارای تست‌سوئیت خودکار)

✅ پشتیبانی از حالت Sandbox ⛔ قابلیت Fake کردن (برای تست‌های شما)

pishran/Zarinpal:

⛔ پشتیبانی از چندین درگاه ✅ رابط‌های ظریف ⛔ باثبات (دارای تست‌سوئیت خودکار)

✅ پشتیبانی از حالت Sandbox ⛔ قابلیت Fake کردن (برای تست‌های شما)


نحوه استفاده از پکیج Laravel Toman

این قسمت بر اساس داکیومنتش تو آدرس evryn.github.io/laravel-toman تهیه شده.

ابتدا پکیج رو با Composer نصب کنین:

composer require evryn/laravel-toman

و بعد فایل تنظیماتش رو منتشر کنین:

php artisan vendor:publish --provider=Evryn\LaravelToman\LaravelTomanServiceProvider --tag=config

تنظیماتش رو می‌تونین از فایل config/toman.php تغییر بدین.

حالا تو فایل .env متغیرهای محیطی زیر رو اضافه کنین:

TOMAN_GATEWAY=zarinpal
ZARINPAL_MERCHANT_ID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
ZARINPAL_SANDBOX=false

بجای ZARINPAL_MERCHANT_ID باید کد درگاه‌تون رو که از زرین‌پال گرفتین قرار بدین. اگه دارین تو محیط لوکال برنامه رو امتحان می‌کنین، مقدار ZARINPAL_SANDBOX رو true قرار بدین تا پرداخت‌های واقعی انجام نشه و در محیط شبیه‌سازی درگاه، هرچقدر می‌خواین تست بزنین.


ایجاد درخواست پرداخت

کافیه از کد زیر استفاده کنین و جاهایی که می‌خواین رو تغییر بدین. توجه کنین که مقدار amount به‌صورت پیش‌فرض تومانه که می‌تونین از فایل تنظیمات تغییرش بدین به ریال. توی داکیومنت‌ها می‌تونین بیشتر با این موارد آشنا بشین.

https://gist.github.com/AmirrezaNasiri/6755ff7379e589fb7ea31f6e86642c1a


تایید پرداخت

با استفاده از کد زیر هم می‌تونین Callback بازگشتی رو اعتبارسنجی و تایید کنین. برای تایید، حتماً باید مقدار amountای که باید پرداخت شده باشه رو وارد کنین.

https://gist.github.com/AmirrezaNasiri/ff12b8ccef89479d5a2a35365bc1b990



? استفاده از Fake در تست‌ها

اگه واسه نرم‌افزارتون تست می‌نویسین یا توسعه‌تون به روش TDD هست، این پکیج کلی کارتون رو راحت‌تر می‌کنه! نحوه تست کردن این که با پکیج به صورت مناسب تعامل می‌کنین تا درخواست پرداخت ایجاد کنین و پرداخت‌ها رو وریفای کنین به این صورته:

https://gist.github.com/AmirrezaNasiri/94cc7e327b2f63bc376edf5198a0fd20


? واسه توضیحات بیشتر می‌تونین داکیومنت Laravel Toman رو بخونین.

~10 ثانیه وقت دارین؟ می‌تونین تو مخزن گیت‌هاب تومَن واسمون یه ⭐ ستاره بندازین بالا :)