public function index() { $studentsCount = User::count(); $lessons = Lesson::where('published', 1)->orderBy('id', 'desc')->take(30)->get(); $available = Series::where('for_sale', 1)->where('preorder', 0)->get(); $presale = Series::where('for_sale', 1)->where('preorder', 1)->get(); //$series = Series::where('for_sale', 1)->orderBy('id')->take(10)->get(); return view('welcome', compact('studentsCount', 'available', 'presale', 'lessons')); }
/** * Run the database seeds. * * @return void */ public function run() { $schools = School::all(); User::truncate(); Role::truncate(); factory(User::class, 50)->create()->each(function ($users) use($schools) { $users->schools()->attach(mt_rand(1, 5)); }); }
public function handlePayment(Request $request) { if (Auth::check()) { $user = Auth::user(); } else { $userSearch = User::where('email', $request->email)->first(); if (!$userSearch) { $user = User::create(['name' => $request->name, 'email' => $request->email, 'password' => bcrypt($request->email)]); Auth::login($user); if ($request->provider == 'paypal') { return redirect('repurchase/' . $request->series_id); } } else { $user = $userSearch; Auth::login($user); if ($request->provider == 'paypal') { return redirect('repurchase/' . $request->series_id); } } } $series = Series::find($request->series_id); $amount = number_format($series->price / 100, 2); switch ($request->provider) { case 'stripe': $gateway = Omnipay::create('Stripe'); $token = $request->stripeToken; $params = ['amount' => $amount, 'currency' => 'USD', 'token' => $token, 'payment_type' => 'stripe', 'receipt_email' => $user->email, 'description' => $series->name]; $gateway->setApiKey(ENV('STRIPE_SECRET')); break; case 'paypal': $gateway = Omnipay::create('PayPal_Express'); $params = ['cancelUrl' => 'https://makerscabin.com/purchase', 'returnUrl' => ENV('PAYPAL_RETURN'), 'description' => $series->name, 'amount' => $amount, 'currency' => 'USD', 'series_id' => $series->id, 'payment_type' => 'paypal']; $gateway->setUsername(ENV('PAYPAL_USERNAME')); $gateway->setPassword(ENV('PAYPAL_PASSWORD')); $gateway->setSignature(ENV('PAYPAL_SIGNATURE')); $gateway->setTestMode(ENV('PAYPAL_TEST')); Session::put('params', $params); Session::save(); DB::table('paypal_tracking')->insert(['user_id' => $user->id, 'series_id' => $series->id]); break; default: # code... break; } //$response = $gateway->purchase($params)->send(); $payment = $gateway->purchase($params); $data = $payment->getData(); $data['receipt_email'] = $user->email; $data['metadata'] = ['email' => $user->email, 'user_id' => $user->id]; $response = $payment->sendData($data); if ($response->isSuccessful()) { $user->series()->save($series, ['payment_type' => $params['payment_type'], 'amount' => $params['amount']]); $this->dispatch(new SendPurchaseConfirmationEmail($user, $series)); return redirect()->route('thanks', $series->slug)->withSuccess('Your purchase of ' . $series->name . ' was successful.'); } elseif ($response->isRedirect()) { $response->redirect(); } else { $e = $response->getMessage(); //dd($e); return redirect('purchase/' . $series->slug)->with('errorMessage', $e); } }
/** * Create a new user instance after a valid registration. * * @param array $data * @return User */ protected function create(array $data) { return User::create(['name' => $data['name'], 'email' => $data['email'], 'password' => bcrypt($data['password'])]); }