آموزش اتصال Laravel به شبکه پرداخت پِی

از اونجایی که خودم برنامه نویس شبکه پرداخت پِی هستم ، تیکت های زیادی دیدم که برخی از دوستان برنامه نویس با راه اندازی این سیستم با زبان هایی مثل PHP, ASP.NET, … مشکل داشتن و عمدتا با فریمورک Laravel بوده ، برای همین تصمیم گرفتم که اولین پست آموزشی رو با این مورد شروع کنم تا شاید کمک خیلیا بشه.

نسخه لاراولی که در این پست در نظر گرفته شده ۵.۷ هستش.

پیش نیاز ها

Database

خوب اولین موردی که باید بریم سراغش دیتابیس و ایجاد جداول هست.

توی این مورد نیازه که یه جدول داشته باشیم به اسم transactions که تراکنش ها رو توی اون ذخیره کنیم.

به مسیر پروژه رفته و دستور زیر رو توی ترمینال یا cmd اجرا کنید :

فایل ایجاد شده توی مسیر database/migrations باز کنید و به صورت زیر تغییر بدید :

حالا دستور زیر رو اجرا کنید تا جدول تراکنش ها ساخته بشه

خوب جدول مورد نظرمون ساخته شد. بریم مرحله بعدی

Model

با استفاده از دستور زیر model تراکنش رو ایجاد کنید

خوب حالا فایل app/Transaction.php رو باز کنید به صورت زیر تغییر بدید :

Routes

توی این مرحله مسیر آدرس بازگشتی از درگاه پرداخت رو ایجاد میکنیم. همچنین یه مسیر برای تست تراکنش.

فایل routes/web.php رو باز کنید و کد های زیر رو به انتها اضافه کنید :

Views

2 تا فایل view توی مسیر resources/views به اسم های payir-form.blade.php و payir-receipt.blade.php ایجاد کنید :

Controller

مرحله نهایی ایجاد کنترلر هستش که با دستور زیر ساخته میشه :

حالا فایل کنترلر رو از مسیر app/Http/Controllers/PayirTransactionController.php باز کنید و به صورت زیر تغییر بدید :

کل پروژه رو میتونید از Github من دانلود کنید.

پکیج لاراول

اگه دنبال یه پکیج برای لاراول میگردید میتونید از پکیجی که آقای محمد محمدی نوشتن استفاده کنید توی لینک زیر گذاشتم

دانلود پکیج لاراول از گیت هاب

امیدوارم این پست مفید بوده باشه.

سوالی داشتین از طریق بخش نظرات بپرسید…

درباره نویسنده: سعید وزیری

یه برنامه نویس ساده...

مطالب زیر را حتما بخوانید

۱۲ دیدگاه

  1. سلام . وقت بخیر
    آیا شناسه توکنی که توسط سرویس دهنده ها از نوع uuid تعریف میشه . در سطح دیتابیس سرویس دهنده یونیک هستش یا در سطح دیگر سرویس دهنده ها هم یونیک هستش ؟
    مثلا من از یه جدول میتونم برای ذخیره توکن چندین سرویس دهنده اعم از بانک ها و درگاه های واسط استفاده کنم ؟

    1. سلام. وقت شما هم بخیر.
      اگه منظورتون توکنی هستش که با اون به درگاه پرداخت هدایت میشید ، بله این مورد در شبکه پرداخت پی یونیک هستش.
      در سرویس دهنده های دیگه هم معمولا یونیک هستش ولی ممکنه طولش و یا حتی نوعش متفاوت باشه. بنابراین پیشنهاد نمیشه که اطلاعات سرویس دهنده های مختلف رو توی یه جدول از دیتابیس نگهداری کنید. فقط مواردی که با هم مشترک هستن (مانند شماره کارت و …) رو در یک جدول مشترک نگهداری کنید.

  2. سلام. یه نگاهی به پکیج زیر هم بندازید. اگه اموزش هم بزارید ازش عالی میشه

    https://github.com/shetabit/payment

    داکیومنت فارسیش

    https://github.com/shetabit/payment/blob/master/README-FA.md

    تمام درگاه های بانکی رو با یکبار کدنویسی پشتیبانی میکنه! نیاز نیست به ازای هر درگاه یکبار کد نویسی کرد.

  3. سلام میتونستید از پکیج زیر استفاده کنید. تمامی درگاه های بانکی رو ساپورت میکنه و یکبار اگه یه درگاه رو وصل کنید میتونید از تمامی درگاه ها استفاده کنید.

    https://github.com/shetabit/payment

    پیشنهاد میکنم یه اموزش در موردش بزارید. پکیج خوبیه 🙂

  4. با عرض سلام
    از توضیحات کامل شما ممنونم.
    من هنگام پرداخت با خطای ” آدرس بازگشتی با آدرس درگاه پرداخت ثبت شده همخوانی ندارد ” مواجه شدم.
    در تابع ()getToken مقدار خاصیت redirect را برابر url(‘/profile’) تنظیم کرده (البه route مربوطه را تعریف کردم) تا کاربر برای verify در پروفایل خود اطلاعات پرداخت را دریافت کند. (البته در لوکال)
    مشکل کجاست؟
    با تشکر

    1. سلام. در صورتی توی ساب دامین دارید استفاده میکنید باید برای ساب دامین جدا درخواست درگاه بدید.
      برای اطلاعات بیشتر با pay.ir تماس بگیرید

پاسخ دادن به سعید وزیری لغو پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *