راکت
حل شده

شی گرایی php در لاراول

5 پاسخ

سلام وقتتون بخیر ، دوستان لطف بفرمایید کمکم کنید

   <form action="{{ route('wallet.store') }}" method="POST">
          <input type="number" class="form-control" name="wallet">
          <button> پرداخت </button>
   </form>

ما این فرم رو میفرستیم به متد store

    public function store(Request $request)
    {
        $wallet = $request->wallet;
        return $this->request_zarinpal();
    }
 public function request_zarinpal()
    {
        return $this->wallet;
        $MerchantID     = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";
        $Amount         = $this->wallet;
        $Description     = "تراکنش زرین پال";
        $Email             = "";
        $Mobile         = "";
        $CallbackURL     = route('pay.callback_zarinpal');
        $ZarinGate         = false;
        $SandBox         = true;
        $zp     = new zarinpal();
        $result = $zp->request($MerchantID, $Amount, $Description, $Email, $Mobile, $CallbackURL, $SandBox, $ZarinGate);

        if (isset($result["Status"]) && $result["Status"] == 100) {
            // Success and redirect to pay
            $zp->redirect($result["StartPay"]);
        } else {
            // error
            echo "خطا در ایجاد تراکنش";
        }
    }

حالا مورد اینجاست اگر من بخوام از اون $wallet در فانکشن request_zarinpal استفاده کنم چه شکلی میتونم این کارو بکنم یعنی از $wallet در فانکشن request_zarinpal استفاده کنم ؟ لطفا راهنمایی کنید

@endworld @juza66

ثبت پرسش جدید

پاسخ‌ها

5
محمدرضا افخمی
محمدرضا افخمی
@mhmdrezafk

تخصص: Laravel Backend Developer

بهترین پاسخ

شما باید یه جدول تراکنش داشته باشید (transactions)
موقعی که شما میخواید کاربر رو به درگاه بفرستید، زرین پال یه توکن به عنوان توکن uniqe مخصوص اون تراکنش در اختیار شما قرار میده ($MerchantID)
$MerchantID رو به همراه مبلغ و سایر اطلاعات مربوط به تراکنش توی جدول تراکنش ها ذخیره کنید.
بعد از انجام تراکنش و برگشت به سایت، رکورد مورد نظر رو میتونید با همون $MerchantID فراخوانی کنید و مبلغ و سایر اطلاعات رو از اون بگیرید و تراکنش رو وریفای کنید

سیدعلی موسوی
سیدعلی موسوی
@juza66

تخصص: سی شارپ و پی اچ پی

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

public function store(Request $request)
    {
        return $this->request_zarinpal($request->wallet);
    }

و توی متدت متغییر رو دریافت کن

public function request_zarinpal($wallet)
    {
        return $wallet;
        $MerchantID     = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";
        $Amount         = $this->wallet;
        $Description     = "تراکنش زرین پال";
        $Email             = "";
        $Mobile         = "";
        $CallbackURL     = route('pay.callback_zarinpal');
        $ZarinGate         = false;
        $SandBox         = true;
        $zp     = new zarinpal();
        $result = $zp->request($MerchantID, $Amount, $Description, $Email, $Mobile, $CallbackURL, $SandBox, $ZarinGate);

        if (isset($result["Status"]) && $result["Status"] == 100) {
            // Success and redirect to pay
            $zp->redirect($result["StartPay"]);
        } else {
            // error
            echo "خطا در ایجاد تراکنش";
        }
    }

پیشنهاد میکنم متدت رو اینجوری استفاده نکنی و ببریش توی یک کلاس جداگانه ، کلاس زرین پال توی مستنداتش هست شما کافیه اونو نگاه کنی و توی کنترلرها اون رو use کنی و ازش استفاده کنید

کوثر
کوثر
@kowsar

تخصص: برنامه نویس وب

سلام وقتتون بخیر ، ببخشید من مستندات دقیق زرین پال برای لاراول رو پیدانکردم میشه لینک کنید برام

شاید پاسخ شما همین‌جا باشد

سیدعلی موسوی
سیدعلی موسوی
@juza66

تخصص: سی شارپ و پی اچ پی

یک پکیج لاراول فکر کنم به اسم شتابیت داره برای زرین پال و ‌‌..

فریمورک لاراول یک چارچوب برای php هستش، شما نمونه کد php که در اصل یک کلاس هست رو میبری توی یک پوشه به فرض http و اونجا بهش namespace میدی که کجا قرار داره، و توی کنترلر کافیه use کنی و از کلاس یک شی بسازی و از متدهاش استفاده کنی.

توی مستندات توسعه دهندگان زرین پال ، بخش نمونه کدها

کوثر
کوثر
@kowsar

تخصص: برنامه نویس وب

دوستان مشکل اصلی اینجاست که من نمی دونم چطوری مبلغی که دارم از $request میگیرم رو هم در request زرین پال استفاده کنم و هم در verify اون چطوری میتونم کاری بکنم که $request من رو هردوشون بخونه ؟

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام