روز برنامه‌نویس مبارک 🤩🎉 از هدایای روز برنامه‌نویس جا نمونی ⌛
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ هادی قاسمی
بهینه کردن کلاس PaymentController
امیر صالحی حل شده توسط امیر صالحی

سلام خسته نباشید ممنون از این پروژه عالی .

 

من برای بهینه‌تر و کوتاه‌تر شدن متد اومدم ، Order , orderItem , Payment , user  رو بردم توی متد‌های جداگانه و پرایوت توی کلاس PaymentController و داخل متد pay همه رو صدا زدم و مراحل به درستی کار کردن .

 

میخواستم بدونم درست انجام دادم ؟ 

public function pay (PayRequest $request)
    {        
        try {
            $user = $this->setUser($request);
            $orderItem = json_decode(Cookie::get('basket'),true);
            if(count($orderItem) <= 0){
                throw new \InvalidArgumentException('سبد خرید شما خالی میباشد');
            }
            $products = Product::findMany(array_keys($orderItem)) ;
            $totalPrice = $products->sum( 'price' ) ;
            $ref_code = Str::random(30) ;
            $createdOrder = $this->setOrder($totalPrice , $user , $ref_code);
            $this->setOrderItems($products,$createdOrder);
            $this->setPayment($createdOrder , $ref_code);
            $idPayRequest = new IDPayRequest([
                'amount'    => $totalPrice,
                'user'      => $user,
                'order_id'  => $ref_code,
                'apiKey'  => config('services.gateways.id_pay.api_key'),
            ]);
            $paymentService = new PaymentService(PaymentService::IDPAY , $idPayRequest);
            return $paymentService->pay();
        }catch (\Exception $e) {
            return back()->with('failed' , $e->getMessage());
        }
    }

سلام و احترام

بله موردی نداره

بهترین پاسخ
امیر صالحی ۳۰ مهر ۱۴۰۰، ۰۷:۴۶