کوثر
1 سال پیش توسط کوثر مطرح شد
5 پاسخ

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

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

   <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


ثبت پرسش جدید
محمدرضا افخمی
تخصص : Laravel Backend Developer
@mhmdrezafk 1 سال پیش مطرح شد
1

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


سیدعلی موسوی
تخصص : سی شارپ و پی اچ پی
@juza66 1 سال پیش آپدیت شد
0

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

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 1 سال پیش مطرح شد
0

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


سیدعلی موسوی
تخصص : سی شارپ و پی اچ پی
@juza66 1 سال پیش مطرح شد
0

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

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

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


کوثر
تخصص : برنامه نویس وب
@kowsar 1 سال پیش مطرح شد
0

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


محمدرضا افخمی
تخصص : Laravel Backend Developer
@mhmdrezafk 1 سال پیش مطرح شد
1

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


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

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