/** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { $series = Series::find($id); $series->name = $request->name; $series->language = $request->language; $series->summary = $request->summary; $series->description = $request->description; $series->thank_you_page = $request->thank_you_page; $series->thank_you_email = $request->thank_you_email; $series->save(); $series->tag($request->tags); }
/** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $lesson = new Lesson(); $lesson->name = $request->name; $lesson->setDescriptionAttribute($request->description); $lesson->github = $request->github; $lesson->video = $request->video; $lesson->download = $request->download; $lesson->length = $request->length; $lesson->series_id = $request->series_id; $lesson->section_id = $request->section_id; $lesson->save(); $series = Series::find($lesson->series_id); $series->length = (int) $series->length + (int) $request->length; $series->lessons = $series->lessons + 1; $series->save(); return redirect('/admin/lessons/create'); }
public function stacksocial(Request $request) { if ($request['confirmed'] && $request['confirmed'] == 'purchased') { $data = ['name' => $request['purchaseName'], 'email' => $request['purchaseEmail'], 'password' => 'makerscabin']; $user = $this->create($data); //dd($user); // Assign Product to User $series = Series::find(2); $user->series()->save($series, ['payment_type' => 'stacksocial', 'amount' => '39.00']); // foreach($product->schools as $school) { // $user->schools()->save($school); // } // Assign Student Role to User // if (! $user->hasRole('student')) // $user->assignRole('student'); return view('user/stacksocial', compact('data', 'series', 'user')); } return 'https://makerscabin.com/ios/stacksocial?purchaseEmail=' . $request['purchaseEmail'] . '&purchaseName=' . urlencode($request['purchaseName']) . '&confirmed=purchased'; }
public function getSuccessPayment() { $gateway = Omnipay::create('PayPal_Express'); $gateway->setUsername(ENV('PAYPAL_USERNAME')); $gateway->setPassword(ENV('PAYPAL_PASSWORD')); $gateway->setSignature(ENV('PAYPAL_SIGNATURE')); $gateway->setTestMode(ENV('PAYPAL_TEST')); //dd(Auth::user()); $tracker = DB::table('paypal_tracking')->where('user_id', Auth::user()->id)->where('purchased', 0)->first(); $series = Series::find($tracker->series_id); $amount = number_format($series->price / 100, 2); $params = ['cancelUrl' => 'https://makerscabin.com/purchase', 'returnUrl' => ENV('PAYPAL_RETURN'), 'description' => $series->name, 'amount' => $amount, 'currency' => 'USD', 'series_id' => $series->id, 'payment_type' => 'paypal']; //$params = Session::get('params'); //dd($params); $response = $gateway->completePurchase($params)->send(); //dd($response); $paypalResponse = $response->getData(); if (isset($paypalResponse['PAYMENTINFO_0_ACK']) && $paypalResponse['PAYMENTINFO_0_ACK'] === 'Success') { $user = Auth::user(); DB::table('paypal_tracking')->where('user_id', $user->id)->where('series_id', $series->id)->update(['purchased' => 1]); //dd($params); // Assign Product to User $series = Series::find($params['series_id']); $user->series()->save($series, ['payment_type' => $params['payment_type'], 'amount' => $params['amount']]); // foreach($product->schools as $school) { // $user->schools()->save($school); // } // Assign Student Role to User // if (! $user->hasRole('student')) // $user->assignRole('student'); $this->dispatch(new SendPurchaseConfirmationEmail($user, $series)); //Session::flush(); return redirect()->route('thanks', $series->slug)->withSuccess('Your purchase of ' . $series->name . ' was successful.'); } else { return redirect('purchase')->withErrors('Purchase failed.'); } }
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); } }