PATH:
home
/
lab2454c
/
omvstudio.com
/
app
/
Http
/
Controllers
<?php namespace App\Http\Controllers; use App\Models\Movie; use App\Models\Payment; use Carbon\Carbon; use Illuminate\Http\Request; use Stripe\Charge; use Stripe\Customer; use Stripe\Stripe; use App\Models\ReferralPayment; class PaymentController extends Controller { // *********** start for 30 days payment ******* // public function showPaymentOption() { if (auth()->user() ->subscription('main')) { return redirect() ->route('dashboard'); } if (auth() ->user()->is_one_time == 1) { return redirect() ->route('dashboard'); } // $intent = auth()->user() // ->createSetupIntent(); // return view('front.payment.register-payment', compact('intent')); return view('front.payment.payment-option'); } public function paymentMode(Request $request) { $mode = $request->payment_option; $intent = auth()->user() ->createSetupIntent(); return view('front.payment.register-payment', compact('intent','mode')); // return view('front.payment.payment-option'); } public function registrationPayment(Request $request) { $user = auth()->user(); $paymentMethod = $request->payment_method; $planId = $request->plan; //dd($paymentMethod,$planId); try { //dd($user->referBy->bankDetail,$user->referBy->bankDetail->account_holder_name,$user->referBy->bankDetail->route_no,$user->referBy->bankDetail->account_no); Stripe::setApiKey(env('STRIPE_SECRET')); $user->newSubscription('main', $planId)->create($paymentMethod, ['name' => $user->first_name, /* 'address' => [ 'line1' => $user->address, 'city' => $user->city, 'state' => $user->state, 'country' => $user->country, 'postal_code' => $user->zipcode, ]*/ ]); if($planId == env('STRIPE_SPORT_PRICE_ID')){ $user->is_one_time = 2; $user->save(); } else if($planId == env('STRIPE_SPORT_MOVIE_PRICE_ID')){ $user->is_one_time = 3; $user->save(); } else if($planId == env('STRIPE_MUSIC_PRICE_ID')){ $user->is_one_time = 4; $user->save(); } else{ $user->is_one_time = 0; $user->save(); } if (isset($user->referBy)) { $commission_price = env('PAYMENT_PRICE_ONE_MONTH') * (env('COMMISSION_PERCENTAGE') / 100); \Stripe\Transfer::create([ 'amount' => round($commission_price*100), 'currency' => 'usd', 'destination' => env('STRIPE_CONNECTED_ACCOUNT'), 'transfer_group' => 'ORDER_80', ]); $connectedAccountBankToken = \Stripe\Token::create([ 'bank_account' => [ 'country' => 'US', 'currency' => 'usd', 'account_holder_type' => 'individual', 'account_holder_name' => $user->referBy->bankDetail->account_holder_name ?? '', 'routing_number' => $user->referBy->bankDetail->route_no ?? '', 'account_number' => $user->referBy->bankDetail->account_no ?? '', ], ]); //dd($connectedAccountBankToken); $connectedAccountBankAdd = \Stripe\Account::createExternalAccount( env('STRIPE_CONNECTED_ACCOUNT'), ['external_account' => $connectedAccountBankToken->id] ); $connectedAccountCreateUpdate = \Stripe\Account::update( env('STRIPE_CONNECTED_ACCOUNT') ); //dd($connectedAccountBankAdd); $payoutObj = \Stripe\Payout::create([ 'amount' => round($commission_price*100), 'currency' => 'usd', 'destination' => $connectedAccountBankAdd, 'method' => 'standard', 'description' => 'Commission to ' .$user->referBy->first_name .' for referral from ' .env('APP_NAME'), ], ["stripe_account" => $connectedAccountBankAdd->account]); //dd($payoutObj); if (isset($payoutObj)) { $referralPayment = new ReferralPayment(); $referralPayment->commission_price = $commission_price; $referralPayment->commission_percentage = env('COMMISSION_PERCENTAGE'); $referralPayment->payout_id = $payoutObj->id; $referralPayment->transaction_id = $payoutObj->balance_transaction; $referralPayment->referralPaymentsReceiver()->associate($user->referBy); $referralPayment->referralPaymentsGiver()->associate($user); $referralPayment->save(); /*$referralData = [ "first_name" =>$user->first_name, "user_name" => $user->username, "description"=>"first_name has purches movie refer by You" ]; */ \Mail::to($user->referBy) ->queue(new \App\Mail\ReferralMail($user)); } } //$commission_price = $price*($percentage/100); /* Mail::to($user->email)->queue(new RegisterNotify($user)); Mail::to(env('OFFICIAL_MAIL_ID'))->queue(new RegisterNotify($user));*/ /*toast('You have Successfully Registered!','success');*/ return response([ // 'success_url' => redirect()->intended('/home')->getTargetUrl(), 'success_url' => redirect() ->intended('/dashboard') ->getTargetUrl() , 'success' => 'Payment Success']); } catch(\Stripe\Exception\CardException $e) { /*$notify[] = ['error', $e->getError()->message]; return redirect()->back()->withNotify($notify);*/ //$notify = ['error', $e->getError()->message]; return redirect()->back() ->with('error', $e->getError() ->message); } } // *********** end for 30 days payment ******* // // *********** start for one time payment ******* // public function showMoviePayment($slug = '') { $movie = Movie::where('slug', $slug)->first(); $user = auth()->user(); if ($user->is_one_time == 0) { return redirect() ->route('dashboard'); } if (isset($user) and $movie ->payments ->contains('user_id', $user->id) and $movie ->payments ->where('user_id', $user->id) ->where('movie_id', $movie->id) ->sortByDesc('created_at') ->first()->payment_validity > \Carbon\Carbon::now()) { return redirect() ->route('dashboard') ->with('success', 'Payment has already done'); } //prx($movie); /*if((auth()->user()->is_one_time == 1) && auth()->user()->payment_status == 'active'){ return redirect()->route('dashboard'); } else if((auth()->user()->is_one_time == 0) && auth()->user()->payment_status == 'active'){ return redirect()->route('dashboard'); } else{*/ return view('front.payment.movie-payment', compact('movie')); /*}*/ } public function moviePaymentStore(Request $request) { try { Stripe::setApiKey(env('STRIPE_SECRET')); $customer = Customer::create(array( 'email' => $request->stripeEmail, 'source' => $request->stripeToken, )); $charge = Charge::create(array( 'customer' => $customer->id, // 'amount' => setting('site.rating_fees')*100, 'amount' => env('PAYMENT_PRICE_ONETIME') * 100, 'currency' => 'usd', )); if ($charge->status == 'succeeded') { $user = auth()->user(); //dd($user); $movie = Movie::find($request->movie_id); // START FOR PASSCODE //$string = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVQXYZ"; // $rand_string = substr(str_shuffle(\Str::random(20)), 0, 7); /*$rand_string = \Str::random(7); $movie_name = substr($movie->title, 0, 3); // returns "abcde" $passcode = $movie_name . "-" . $rand_string;*/ // END FOR PASSCODE $payment = new Payment(); $payment->unit_price = env('PAYMENT_PRICE_ONETIME'); $payment->payment_method = "STRIPE"; $payment->stripe_email = $request->stripeEmail; $payment->transaction_id = $charge->id; /*$payment->passcode = $passcode;*/ $payment->payment_status = "success"; $payment->user()->associate($user); $payment->movie()->associate($movie); //$payment->save(); // add payement validity after payment successfull $payment_validity = Carbon::Parse($payment->created_at)->addHours(24); $payment->payment_validity = $payment_validity; $result = $payment->save(); if ($result) { /*\Mail::to($user->email) ->queue(new \App\Mail\SendPasscode($payment));*/ return redirect()->route('dashboard')->with('success', 'One time payment has successfull done!!'); //return redirect()->intended(); } } else { //$notify = ['error', 'Failed!']; return redirect()->back()->with('error', 'Failed!'); } } catch (\Stripe\Exception\CardException$e) { //$notify = ['error', $e->getError()->message]; return redirect()->back() ->with('error', $e->getError() ->message); } } // *********** end for one time payment ******* // // *********** start for upgrade payment ******* // public function showUpgradeSubscriptionOption() { if (!auth()->user()->IsOneTime()) { return redirect()->route('dashboard'); } // if (auth() // ->user()->is_one_time == 1) // { // return redirect() // ->route('ShowUpgradeSubscriptionOption'); // } $intent = auth()->user() ->createSetupIntent(); return view('front.payment.upgrade-subscription', compact('intent')); } public function upgradeRegistrationPayment(Request $request) { $user = auth()->user(); $paymentMethod = $request->payment_method; $planId = $request->plan; //dd($paymentMethod,$planId); try { Stripe::setApiKey(env('STRIPE_SECRET')); $user->newSubscription('main', $planId)->create($paymentMethod, ['name' => $user->first_name, ]); $user->is_one_time = 0; $user->save(); // 'success_url' => redirect()->intended('/home')->getTargetUrl(), // return response([ 'success_url' => redirect() // ->intended('/dashboard') // ->getTargetUrl() , 'success' => 'Payment Success']); return response(['success_url' => redirect()->intended('/dashboard')->getTargetUrl(), 'success' => 'Payment Success']); } catch (\Stripe\Exception\CardException$e) { return redirect()->back() ->with('error', $e->getError() ->message); } } }
[+]
..
[-] PaymentController.php
[edit]
[-] Controller.php
[edit]
[+]
Music
[+]
Admin
[+]
Auth
[+]
API
[-] HomeController.php
[edit]
[+]
Front