راکت

برگشت از درگاه پرداخت

2 پاسخ

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

Route::get('/zarinpalpay', [PaymentController::class , 'zarinpalpay']);
Route::get('/zarinpalVerify/{payment}',[PaymentController::class ,'zarinpalVerify']); 

این مربوط به controller هست...دو تا فانکشن توش نوشتم
اولی:


     function zarinpalpay(User $user) {

        $payment = Payment::create([
            // "order_id"=>$order->id,
            "bank"=>"zarinpal"
        ]);

        $zarinpal = new zarinPal([
            "merchantId" => "",
        ]);

        try {

            $request = $zarinpal->apiRequest([

                "callbackurl" => "http://127.0.0.1:8000/zarinpalVerify/",
                "amount" => 10000,
                "description" => "خرید اشتراک",
                    "email" => auth()->user()->email,
                    "mobile" => "09120000000",
            ]);

            $payment->requestInfo = $request;
            $payment->save();

            $requestDecoded = json_decode($request);
            return redirect()->intended($requestDecoded->url);

        } catch (\Exception $error) {
            var_dump(json_decode($error->getMessage()));
        }

    }

دومین فانکشن برای بعد از پرداخت:


    function zarinpalVerify(Payment $payment) {

        var_dump('yes');
        $zarinpal = new zarinPal([
            "merchantId" => "",
        ]);

        // $order = Order::find($payment->order_id);

        $reqinfo = json_decode($payment->requestInfo);

        try {

            $verify = $zarinpal->verify([
                "authority" => $reqinfo->authority,
                "amount" => 10000
            ]);

            $verifyDecoded = json_decode($verify);

            if ($verifyDecoded->code == 100 || $verifyDecoded->code == 101) {
                $payment->status = 1;
                 echo "پرداخت با موفقیت انجام شد.";
                session()->flash('خرید اشتراک با موفقیت انجام شد.');

            }

            $payment->verifyinfo = $verify;

        } catch (\Exception $err) {

            $payment->verifyinfo = $err->getMessage();
            // var_dump($err->getMessage());
            session()->flash('خطایی صورت گرفت! پرداخت موفقیت آمیز نبود.');

        }

        $payment->save();
        return view('account');

    }

اتفاقی که میافته این که اصلا فانکشن دوم (که فک میکنم مربوط به برگشت از درگاه پرداخت هست) اجرا نمیشه
vardump اصلا اجرا نشد
ممنون میشم راهنمایی کنین

ثبت پرسش جدید

پاسخ‌ها

2
رضا پارسیان
رضا پارسیان
@Rp76

تخصص: توسعه دهنده Php , Laravel

سلام وقتتون بخیر!
برگشت اصلا به method دوم مربوط نیست
توی method اول گفتی که CallbackUrl هست فلان چیز!
اگر روی حالت sandbox باشید نباید مشکلی وجود داشته باشه.

ادرس Callback هم به صورت داینامیک کنید.

امین
امین
@alavi.gavad

الان من گفتم بعد از خرید برگرده به url که بهش گفتم و به اون هم برمیگرده:
ادرسی که میره:
http://127.0.0.1:8000/zarinpalVerify?Authority=A00000000000000000000000000426127379&Status=OK
ولی الان مشکلم این که گفتم اگه به این روت منتقل شدی بیا فانکشن دوم رو اجرا کن

Route::get('/zarinpalVerify/{payment}',[PaymentController::class ,'zarinpalVerify']); 

ولی وقتی var dump اول فانکشن گذاشتم دیدم اصلا این فانکشن اجرا نمیشه

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

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

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