? درگاه آیدی‌پی (IDPay) برای لاراول

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


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

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

evryn/laravel-toman:

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

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

<br/>shetabit/payment:

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

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

mastani/laravel-idpay:

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

✅ پشتیبانی از حالت 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=idpay
IDPAY_API_KEY=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
IDPAY_SANDBOX=false

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


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

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

مقدار `orderId` هم باید سمت شما ساخته بشه و برای هر درخواست پرداخت، یه چیز یکتا باشه.

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


تایید پرداخت

با استفاده از کد زیر هم می‌تونین Callback بازگشتی رو اعتبارسنجی و تایید کنین.

https://gist.github.com/AmirrezaNasiri/497979ef29f5700e6d44f681d0735b79


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

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

https://gist.github.com/AmirrezaNasiri/04759123d16e788faabfd919d1925386


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

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