Anons79 Mini Shell

Directory : /home/proudlyafrican/www/app/Http/Controllers/
Upload File :
Current File : /home/proudlyafrican/www/app/Http/Controllers/testingcontroller.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Validator;
use URL;
use Session;

use Input;
use App\User;
use DB;
Use Mail;
//use Cartalyst\Stripe\Laravel\Facades\Stripe;
use Stripe\Error\Card;
use Cartalyst\Stripe\Stripe;


class testingcontroller extends Controller
{
    //
    public function card_view(){
        return view('card_view');
    }
    public function create_payment_intent(Request $request){

        $email="";
        if($request->session()->get('user_id')==""){
            $email=$request['guest_email'];
        }
        else{
            $email=$request->session()->get('user_email');
        }
        $name=$request['name'];

//
            \Stripe\Stripe::setApiKey('sk_test_51HmHWVJHMNVpHtGY25Pm24xb8x7h6rpMsk86G58VdqHCrCIpzbMMgxI3T1WIXdFzsRM9WJIbNyuZZQIokNaVPbmA00Qyd2XN1Q');
//
//           $charge= \Stripe\PaymentIntent::create([
//                'amount' => 1099,
//                'currency' => 'eur',
//                'application_fee_amount' => 200,
//                'payment_method_types' => ['card'],
//           ], ["stripe_account" => "acct_1HoBbTFf3sA3e1Z8"]);


            $itemPriceCents = ($request['onlinepayment']*100);
            $currency = 'gbp';
            $fee=floor($itemPriceCents*(1.5)/100);
            try {
                $customer = \Stripe\Customer::create(array(
                    'email' => $email,
                    "description"=>'Proudlyafrican',
                    'name'  => $name
                ), ["stripe_account" => "acct_1HoBbTFf3sA3e1Z8"]);
                $c = $customer->jsonSerialize();
                // Charge a credit or a debit card
                $charge = \Stripe\PaymentIntent::create(array(
                    'payment_method_types' => ['card'],
                    "amount" => $itemPriceCents,
                    "customer"=>$c['id'],
                    "description"=>"Proudlyafrican",
                    "currency" => $currency,
                    "metadata"=>array("Owner"=>$name,"Owner email"=>$email),
                    "application_fee_amount" => floor($fee), // amount in cents
                ), ["stripe_account" => "acct_1HoBbTFf3sA3e1Z8"]);

                // Retrieve charge details
                $chargeJson = $charge->jsonSerialize();
                return $chargeJson;
            }catch(Exception $e) {
                return $e->getMessage();
            }
//            return $charge;
    }

    public function order_success(Request $request){

        $date=date("Y/m/d");
        $type="";
        if($request->session()->get('user_id')==""){
            $type="guest";
        }else{
            $type="user";
        }

        $email="";
        if($request->session()->get('user_id')==""){
            $email=$request['guest_email'];
        }
        else{
            $email=$request->session()->get('user_email');
        }

        $coupen_discount= $request['coupen_discount'];
        $shipping_charge= $request['shipping_charge'];
        $tax_percentage= $request['tax_percentage'];
        $tax_amount= $request['tax_amount'];

        $orders=DB::Table('orders')->OrderBy('order_id','DESC')->get();
        $invoice_number="";
        if(count($orders)>0){
            $string=$orders[0]->invoice_number;
            $stringParts = explode("CK", $string);
            $invoice_number = $stringParts[1]+1; // 21
            $invoice_number='CK00'.$invoice_number;
        }
        else{
            $invoice_number='CK001';
        }


        $data=array(
            'first_name'=>$request['first_name'],
            'invoice_number'=>$invoice_number,
            'last_name'=>$request['last_name'],
            'email'=>$email,
            'company'=>$request['company'],
            'address1'=>$request['address1'],
            'address2'=>$request['address2'],
            'city'=>$request['city'],
            'country_id'=>$request['country_id'],
            'zip'=>$request['zip'],
            'phone'=>$request['phone'],
            'subtotal'=>$request['subtotal'],
            'grandtotal'=>$request['grandtotal'],
            'discount'=>$coupen_discount,
            'coupen_user_id'=>$request['coupen_user_id'],
            'user_id'=>$request->session()->get('user_id'),
            'payment_intent_id'=>$request['payment_intent_id'],
            'type'=>$type,
            'shipping_charge'=>$shipping_charge,
            'tax_percentage'=>$tax_percentage,
            'tax_amount'=>$tax_amount,
        );

        $order_id=  DB::Table('orders')->insertGetId($data);
        session_start();
        foreach($_SESSION['cart'] as $cart){
            if(count($cart)>0){
                foreach($cart as $subcart){
                    $unit=$subcart['unit'];
                    $quantity=$subcart['quantity'];
                    $secondquantity=$subcart['secondquantity'];
                    $product_id=$subcart['product_id'];
                    $amount=$subcart['amount'];
                    $data=array(
                        'product_id'=>$product_id,
                        'unit'=>$unit,
                        'secondquantity'=>$secondquantity,
                        'quantity'=>$quantity,
                        'order_id'=>$order_id,
                        'amount'=>$amount,
                    );
                    DB::Table('order_details')->insert($data);
                }
            }
        }




        $products=DB::Table('order_details')
            ->select('order_details.*','products.name as product_name')
            ->leftjoin('products','products.product_id','order_details.product_id')
            ->where('order_details.order_id',$order_id)
            ->get();





        $bucket=DB::Table('bucket')->get();
        if(count($bucket)>0){
            $quantitycheck=$bucket[0]->qty;
            if($quantitycheck==0){

            }
            else{

                $baseurl=url('/');

                $url=($baseurl.'/viewinvoice/'.$order_id);
//                echo $url;
//                exit();

                $number="";
                $numbers=DB::Table('notification_numbers')->get();
                if(count($numbers)>0){
                    $number=$numbers[0]->number;
                }



//                $message='New Order have been placed in Royal Maroon Herbs. Kindly check your dashboard to view order or Click on the link '.$url;
                $message='New Order Alert! A new order from '. $request['first_name'] . ' with contact no' . $request['phone'] . ' have placed a PAID order on your website. Click to view order '.$url;
//                $message='The user ktkbilawal@gmail.com have place new order in Royal Maroon Herbs. Kindly check your dashboard to view order Or Click on the link';



                $curl = curl_init();
                curl_setopt_array($curl, array(
                    CURLOPT_URL => "https://api.sms.to/sms/send",
                    CURLOPT_RETURNTRANSFER => true,
                    CURLOPT_ENCODING => "",
                    CURLOPT_MAXREDIRS => 10,
                    CURLOPT_TIMEOUT => 0,
                    CURLOPT_FOLLOWLOCATION => true,
                    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                    CURLOPT_CUSTOMREQUEST => "POST",
                    CURLOPT_POSTFIELDS =>"{\n    \"message\": \"$message\",\n    \"to\": [\n        \"$number\"   ],\n    \"sender_id\": \"CKGROCERIES\",\n    \"callback_url\": \"https://example.com/callback/handler\"\n}",
                    CURLOPT_HTTPHEADER => array(
                        "Content-Type: application/json",
                        "Accept: application/json",
                        "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL2F1dGg6ODA4MC9hcGkvdjEvdXNlcnMvYXBpL2tleS9nZW5lcmF0ZSIsImlhdCI6MTY2MzI2MTE3MSwibmJmIjoxNjYzMjYxMTcxLCJqdGkiOiJ0UnBpTlNlelR5bmVMcUh6Iiwic3ViIjozODcxNywicHJ2IjoiMjNiZDVjODk0OWY2MDBhZGIzOWU3MDFjNDAwODcyZGI3YTU5NzZmNyJ9.AH29BZJGRP-KOjmspW_hqEqysMbc1fMyltrG_oa5MSU"
                    ),
                ));

                $response = curl_exec($curl);

                curl_close($curl);


                $bucket_data=array(
                    'qty'=>$quantitycheck-2,
                    'sent'=>$bucket[0]->sent+1
                );
                DB::Table('bucket')->where('id',2)->update($bucket_data);

                $bucket_history_data=array(
                    'sms'=>$message,
                    'smsto'=>$number
                );
                DB::Table('bucket_history')->insert($bucket_history_data);


//                echo "<pre>";
//                print_r($response);
//                exit();


            }
        }


        $data2 = [
            'invoice_number'=>$invoice_number,
            'first_name'=>$request['first_name'],
            'last_name'=>$request['last_name'],
            'email'=>$email,
            'company'=>$request['company'],
            'address1'=>$request['address1'],
            'address2'=>$request['address2'],
            'city'=>$request['city'],
            'country_id'=>$request['country_id'],
            'zip'=>$request['zip'],
            'phone'=>$request['phone'],
            'subtotal'=>$request['subtotal'],
            'grandtotal'=>$request['grandtotal'],
            'discount'=>$coupen_discount,
            'coupen_user_id'=>$request['coupen_user_id'],
            'user_id'=>$request->session()->get('user_id'),
            'type'=>$type,
            'shipping_charge'=>$shipping_charge,
            'tax_percentage'=>$tax_percentage,
            'tax_amount'=>$tax_amount,
            'products'=>$products
        ];

        Mail::send('general.test5', $data2, function($message) use ($data2)
        {
            $message->from('ktkbilawal@gmail.com');
            $message->to($data2['email']);
            $message->subject('Invoice Detail');
        });



        unset($_SESSION['cart']);

//        Session::flash('order_msg', $order_id);
//        return redirect('view_cart');
//

        return redirect()->to('order_place_page/'.$order_id);

    }

    public function order_refund_form(Request $request){
            $arr=array();
            if($_POST)
            {
                $order_id=$request['order_id'];
                $amount=$request['amount'];
                $order=DB::Table('orders')->where('order_id',$order_id)->get();
                if($amount <= $order[0]->grandtotal)
                {
                    try {

                        \Stripe\Stripe::setApiKey('sk_test_51HmHWVJHMNVpHtGY25Pm24xb8x7h6rpMsk86G58VdqHCrCIpzbMMgxI3T1WIXdFzsRM9WJIbNyuZZQIokNaVPbmA00Qyd2XN1Q');

                        $refund = \Stripe\Refund::create(array(
                            'payment_intent' => $order[0]->payment_intent_id,
                            'amount' =>floor($amount*100),
                            'refund_application_fee' => false

                        ), ["stripe_account" => "acct_1HoBbTFf3sA3e1Z8"]);


                        // Charge a credit or a debit card


                        // Retrieve charge details
                        $refund = $refund->jsonSerialize();
                        if($refund['status']=="succeeded")
                        {
                            $data=array(
                                'grandtotal'=>$order[0]->grandtotal-$amount,
                                'refunded_amount'=>$order[0]->refunded_amount+$amount,
                            );
                            DB::Table('orders')->where('order_id',$order_id)->update($data);

                            $data2=array(
                                'order_id'=>$order_id,
                                'amount'=>$amount
                            );
                            DB::Table('refunds')->insert($data2);

                            $arr['refund_status']=true;
                            $order=DB::Table('orders')->where('order_id',$order_id)->get();
                            $arr['refunded_amount']=number_format($order[0]->refunded_amount,2);
                            $arr['net_amount']=number_format($order[0]->grandtotal,2);
                            $arr['revised_amount']=number_format($order[0]->grandtotal-$order[0]->refunded_amount,2);
                        }

                    }catch(Exception $e) {
                        $this->api_error = $e->getMessage();
                        return false;
                    }

                }
                else
                {
                    $arr['status']=false;


                }



            }
            else
            {
                $arr['status']=false;

            }
            echo json_encode($arr);exit;

    }

}

Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]