public function place(Order $orderModel, OrderItem $orderItem) { //Método plcae order, quando acessar esse método ele ira acessar o carrinho de comprar e começar a executar //os pedidos if (!Session::has('cart')) { return false; } $cart = Session::get('cart'); // recupera o carrinho de compras if ($cart->getTotal() > 0) { //Order retorna um id que será o código da ORDER $order = $orderModel->create(['user_id' => Auth::user()->id, 'total' => $cart->getTotal()]); /*Método all corresponde ao método da classe Cart*/ foreach ($cart->all() as $k => $item) { //Toda vez que der o save tem que passar a instancia lá para dentro $order->itens()->create(['product_id' => $k, 'price' => $item['price'], 'qtd' => $item['qtd']]); } // Para limpar o carrinho de compras $cart->clear(); // Evento Checkout // Precisa passar o usuario, nome, order itens do pedido event(new CheckoutEvent(Auth::user(), $order)); //event(new CheckoutEvent()); return view('store.checkout', compact('order', 'cart')); } $categories = Category::all(); return view('store.checkout', ['cart' => 'empty', 'categories' => $categories]); }
public function place(Order $orderModel, OrderItem $orderItem, CheckoutService $checkoutService, Factory $factory) { if (!Session::has('cart')) { return false; } $cart = Session::get('cart'); if ($cart->getTotal() > 0) { $order = $orderModel->create(['user_id' => Auth::user()->id, 'total' => $cart->getTotal()]); // Criação da classe de checkout para integração com o pagseguro //$checkout = $checkoutService->createCheckoutBuilder(); foreach ($cart->all() as $k => $item) { $order->items()->create(['product_id' => $k, 'price' => $item['price'], 'qtd' => $item['qtd']]); //$checkout->addItem(new Item($k, $item['name'], number_format($item['price'], 2, '.', ''), $item['qtd'])); } $cart->clear(); event(new CheckoutEvent(Auth::user(), $order)); // Na verdade esse lugar não é exatamente o melhor lugar para se colocar o redirecionamento para // o pagseguro, porém por hora irá servir; //$response = $checkoutService->checkout($checkout->getCheckout()); //return view('store.checkout', compact('order')); return view('store.checkout', ['order' => $order, 'cart' => 'vazio']); //return redirect($response->getRedirectionUrl()); } return $factory->make('store.checkout', ['cart' => 'empty']); //return view('store.checkout', ['cart' => 'empty']); }
public function place(Order $orderModel, OrderItem $ordemItem, CheckoutService $checkoutService) { if (!Session::has('cart')) { return "FALSE"; } $cart = Session::get('cart'); $categories = Category::all(); if ($cart->getTotal() > 0) { $checkout = $checkoutService->createCheckoutBuilder(); //pagseguro $order = $orderModel->create(['user_id' => Auth::user()->id, 'total' => $cart->getTotal()]); //inclui na tabela foreach ($cart->all() as $k => $item) { $checkout->addItem(new Item($k, $item['name'], number_format($item['price'], 2, ".", ""), $item['qtd'])); //pagseguro $order->items()->create(['product_id' => $k, 'price' => $item['price'], 'qtd' => $item['qtd']]); //inclui na tabela } $cart->clear(); event(new CheckoutEvent(Auth::user(), $order)); $response = $checkoutService->checkout($checkout->getCheckout()); //pagseguro return redirect($response->getRedirectionUrl()); //pagseguro #return view('store.checkout', compact('cart', 'order', 'categories')); } else { return view('store.checkout', ['cart' => 'empty', 'categories' => $categories]); } }
public function place(Order $orderModel, OrderItem $orderItem) { if (!Session::has('cart')) { return false; } $cart = Session::get('cart'); if ($cart->getTotal() > 0) { $order = $orderModel->create(['user_id' => Auth::user()->id, 'total' => $cart->getTotal()]); foreach ($cart->all() as $k => $item) { $order->items()->create(['product_id' => $k, 'price' => $item['price'], 'qtd' => $item['qtd']]); } dd($order->items); } }
public function status_change(Request $request, \PHPSC\PagSeguro\Purchases\Transactions\Locator $locator, Order $orderModel) { $notification_code = $request->get('notificationCode'); $transaction = $locator->getByNotification($notification_code); $status = $transaction->getDetails()->getStatus(); $code = $transaction->getDetails()->getCode(); $order_id = $transaction->getDetails()->getReference(); echo 'Notificação: ' . $notification_code . '<br>'; echo 'Transação: ' . $code . '<br>'; echo 'Order id: ' . $order_id . '<br>'; echo 'Status: ' . $status . '<br>'; $order = $orderModel->find($order_id); $order->update(['status' => $status, 'payment_code' => $code]); }
public function payReturn(Request $request, Order $orderModel) { //Pega o código de retorno do pagseguro: $pagSeguroId = $request->input('pagSeguroId', 'empty'); //Pega o número da order que está na sessão: $orderId = $this->session->get('orderId'); //Associa o ID do pagseguro à order: if ($orderId) { $order = $orderModel->find($orderId); $order->pagSeguroId = $pagSeguroId; $order->save(); } Log::info('::.Pay.Return.::', ['request' => $request->all()]); return view('store.returnpay', ['pagSeguroId' => $pagSeguroId]); }
public function place(Order $orderModel, OrderItem $orderItem) { if (!Session::has('cart')) { return 'false'; } $cart = Session::get('cart'); if ($cart->getTotal() > 0) { $order = $orderModel->create(['user_id' => Auth::user()->id, 'total' => $cart->getTotal()]); foreach ($cart->all() as $key => $item) { $order->items()->create(['product_id' => $key, 'price' => $item['price'], 'qtd' => $item['qtd']]); } } Session::remove('cart'); return redirect()->route('store.index'); }
/** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { $order = \CodeCommerce\Order::find($id); $order->status_id = $request->get('status'); $order->save(); return redirect()->route('orders.index'); }
public function place() { if (!Session::has('cart')) { return false; } $cart = Session::get('cart'); if ($cart->getTotal() > 0) { $order = $this->orderModel->create(['user_id' => Auth::user()->id, 'total' => $cart->getTotal()]); foreach ($cart->all() as $k => $item) { $order->items()->create(['product_id' => $k, 'price' => $item['price'], 'qtd' => $item['qtd']]); } $cart->clear(); return view('store.checkout', compact('order')); } return view('store.checkout', ['cart' => 'empty']); }
public function alterarStatusPedido() { $id = Input::get('idPedido'); $status = Input::get('status'); $order = Order::find($id); $order->status = $status; $order->save(); }
public function end(Locator $locator, Request $request, Order $orderModel) { if (!Session::has('cart')) { return "Sessão inexistente"; } $cart = Session::get('cart'); $transaction_code = $request->get('id_pagseguro'); $transaction = $locator->getByCode($transaction_code); $status = $transaction->getDetails()->getStatus(); $payment_type = $transaction->getPayment()->getPaymentMethod()->getType(); $netAmount = $transaction->getPayment()->getNetAmount(); $order = $orderModel->create(['user_id' => Auth::user()->id, 'total' => $cart->getTotal(), 'status_id' => $status, 'transaction_code' => $transaction_code, 'payment_type_id' => $payment_type, 'netAmount' => $netAmount]); foreach ($cart->all() as $k => $item) { $order->items()->create(['product_id' => $k, 'price' => $item['price'], 'qtd' => $item['qtd']]); } $cart->clear(); return redirect()->route('home'); }
public function end(\Illuminate\Http\Request $request, Locator $service, Order $orderModel) { if (!Session::has('cart')) { return "Não existe sessão"; } $cart = Session::get('cart'); $transaction_code = $request->get('transaction_id'); $transaction = $service->getByCode($transaction_code); $status = $transaction->getDetails()->getStatus(); $payment_type = $transaction->getPayment()->getPaymentMethod()->getType(); $netAmount = $transaction->getPayment()->getNetAmount(); $order = $orderModel->create(['user_id' => Auth::user()->id, 'total' => $cart->getTotal(), 'status_id' => $status, 'transaction_code' => $transaction_code, 'payment_type_id' => $payment_type, 'netAmount' => $netAmount]); foreach ($cart->all() as $k => $item) { $order->items()->create(['product_id' => $k, 'price' => $item['price'], 'qtd' => $item['qtd']]); } $cart->clear(); return redirect()->route('account.orders'); }
public function place(Order $orderModel, OrderItem $orderItem) { if (!Session::has('cart')) { return false; } $cart = Session::get('cart'); if ($cart->getTotal() > 0) { $order = $orderModel->create(['user_id' => Auth::user()->id, 'total' => $cart->getTotal()]); foreach ($cart->all() as $k => $item) { $order->items()->create(['product_id' => $k, 'price' => $item['price'], 'qtd' => $item['qtd']]); } $cart->clear(); event(new CheckoutEvent(Auth::user(), $order)); return view('store.checkout', compact('order', 'cart')); } $categories = Category::all(); return view('store.checkout', compact('order'), ['cart' => 'empty', 'categories' => $categories]); }
public function place(Order $orderModel, OrderItem $cart) { if (!Session::has('cart')) { return false; } $cart = Session::get('cart'); if ($cart->getTotal() > 0) { $order = $orderModel->create(['user_id' => Auth::user()->id, 'total' => $cart->getTotal(), 'status_id' => 2]); foreach ($cart->all() as $k => $item) { $item = ['product_id' => $k, 'price' => $item['price'], 'quantity' => $item['qtd']]; $order->items()->create($item); } $cart->clear(); event(new CheckoutEvent($order)); return view('store.checkout', compact('order')); } return view('store.checkout'); }
public function place(\CodeCommerce\Order $orderModel, \CodeCommerce\OrderItem $ordemItem, \CodeCommerce\Category $category) { if (!Session::has('cart')) { return false; } $cart = Session::get('cart'); if ($cart->getTotal() > 0) { $order = $orderModel->create(['user_id' => Auth::user()->id, 'total' => $cart->getTotal()]); foreach ($cart->all() as $k => $item) { $items = $ordemItem->create(['order_id' => $order->id, 'product_id' => $k, 'price' => $item['price'], 'qtd' => $item['qtd']]); } $cart->clear(); event(new \CodeCommerce\Events\CheckoutEvent(Auth::user(), $order)); return view('store.checkout', compact('order')); } $categories = $category->all(); return view('store.checkout', ['cartEmpty' => true, 'categories' => $categories]); }
public function place(Order $orderModel, OrderItem $orderItem, CheckoutService $checkoutService) { // se não existir carrinho na sessão if (!Session::has('cart')) { // retorna false return false; } // pega os valores gravados na sessão cart $cart = Session::get('cart'); //carrego as categries para exibir na coluna lateral $categories = Category::all(); // se o total de items for maior que 0 if ($cart->getTotal() > 0) { // atribui a variavel $checkout o builder da API do pagseguro $checkout = $checkoutService->createCheckoutBuilder(); // cria o pedido passando um array com os items // Auth::user()->id pega o id od usuário logado $order = $orderModel->create(['user_id' => Auth::user()->id, 'total' => $cart->getTotal()]); // adiciona todos os items dentro da nossa ordem foreach ($cart->all() as $k => $item) { // adiciona os items do cart ao builder do pagseguro $checkout->addItem(new Item($item['id'], $item['name'], number_format($item['price'], 2, ".", ""), $item['qtd'], number_format(20, 2, ".", ""), 10)); // insere no bd os items do cart $order->items()->create(['product_id' => $item['name'], 'price' => $item['price'], 'qtd' => $item['qtd']]); } $Phone = new Phone(11, 999999999); $Address = new Address('SP', 'Indaiatuba', '13330120', 'Centro', '13 de Maio', '110', 'Apto. 45B'); //$Credentials = new Credentials('*****@*****.**', 'FE12A9050B864656A57AD8A315651DAE', 'sandbox'); $checkout->setCustomer(new Customer("*****@*****.**", "Nome do Cliente", $Phone, $Address))->setShipping(new Shipping(1, $Address, number_format(10, 2, ".", ""))); // chamo o metodo clear do model Cart.php para limpar o cart. // caso contrário, ele iria criar um novo pedido a cada refresh da página. $cart->clear(); // dispara o evento passando para o CheckoutEvent os dados do User e do Order Event(new \CodeCommerce\Events\CheckoutEvent(Auth::user(), $order)); // atribui a variavel $response os valores do builder, finalizando o checkout do pagseguro $response = $checkoutService->checkout($checkout->getCheckout()); // redireciono para a tela de pagamento do pagseguro, passando o $response que contém os dados para o checkout return redirect($response->getRedirectionUrl()); // retorno a view checkout com a order e as categories //return view('store.checkout', ['order'=>$order, 'categories'=>$categories]); } // retorno a view checkou com as categories return view('store.checkout', ['categories' => $categories]); }
public function place(Order $orderModel, CheckoutService $checkoutService) { if (!Session::has('cart')) { return false; } $cart = Session::get('cart'); if ($cart->getTotal() > 0) { $checkout = $checkoutService->createCheckoutBuilder(); $order = $orderModel->create(['user_id' => Auth::user()->id, 'total' => $cart->getTotal()]); foreach ($cart->all() as $k => $item) { $checkout->addItem(new Item($k, $item['name'], number_format($item['price'], 2, ".", ""), $item['qtd'])); $order->items()->create(['product_id' => $k, 'price' => $item['price'], 'qtd' => $item['qtd']]); } $cart->clear(); $response = $checkoutService->checkout($checkout->getCheckout()); return redirect($response->getRedirectionUrl()); } else { return redirect()->route('cart'); } }
public function place(Order $orderModel, OrderItem $orderItem, CheckoutService $checkoutService) { if (!Session::has('cart')) { return false; } $checkout = $checkoutService->createCheckoutBuilder(); $cart = Session::get('cart'); $categories = Category::all(); if ($cart->getTotal() > 0) { $order = $orderModel->create(['user_id' => Auth::user()->id, 'total' => $cart->getTotal(), 'status_id' => 1]); foreach ($cart->all() as $k => $item) { $checkout->addItem(new Item($k, $item['name'], number_format($item['price'], 2, ".", ""), $item['qtd'])); $order->items()->create(['product_id' => $k, 'price' => $item['price'], 'qtd' => $item['qtd']]); } $cart->clear(); event(new CheckoutEvent()); $response = $checkoutService->checkout($checkout->getCheckout()); return redirect($response->getRedirectionUrl()); // return redirect()->route('account.orders'); } return view('store.checkout', ['cart' => 'empty'], compact('categories')); }
public function retornoPagSeguro(\Illuminate\Http\Request $request, Locator $service, Order $orderModel) { if (!Session::has('cart')) { flash('carrinho vazio'); return redirect()->route('store.index'); return false; } $cart = Session::get('cart'); $transactionCode = $request->get('transaction_id'); $transaction = $service->getByCode($transactionCode); $status = $transaction->getDetails()->getStatus(); $paymentType = $transaction->getPayment()->getPaymentMethod()->getType(); $netAmount = $transaction->getPayment()->getNetAmount(); // pedido gravar $order = $orderModel->create(['user_id' => Auth::user()->id, 'total' => $cart->getTotal(), 'status' => $status, 'status_pg' => $status, 'transaction_code' => $transactionCode, 'payment_type_id' => $paymentType, 'netAmount' => $netAmount]); foreach ($cart->all() as $k => $item) { //itens de pedido $order->items()->create(['product_id' => $k, 'price' => $item['price'], 'qtd' => $item['qtd']]); } $cart->clear(); //limpar carrinho return redirect()->route('store.account.orders'); }
public function place(Order $orderModel, OrderItem $orderItem, \PHPSC\PagSeguro\Requests\Checkout\CheckoutService $checkoutService) { if (!Session::has('cart')) { return false; } if (Auth::check()) { $cart = Session::get('cart'); if ($cart->getTotal() > 0) { $checkout = $checkoutService->createCheckoutBuilder(); $order = $orderModel->create(['user_id' => Auth::User()->id, 'total' => $cart->getTotal()]); foreach ($cart->all() as $k => $item) { $checkout->addItem(new Item($k, $item['name'], number_format($item['price'], 2, ".", ""), $item['qtd'])); $order->items()->create(['product_id' => $k, 'price' => $item['price'], 'qtd' => $item['qtd'], 'order_id' => $order]); } $cart->clear(); event(new CheckoutEvent(Auth::User()->id, $order)); $response = $checkoutService->checkout($checkout->getCheckout()); return redirect($response->getRedirectionUrl()); //return view('store.checkout', compact('order', 'cart')); } } $categories = Category::all(); return view('store.checkout', ['cart' => 'empty', 'categories' => $categories]); }
public function place(Order $orderModel, OrderItem $orderItem) { if (!Session::has('cart')) { return false; } $cart = Session::get('cart'); if ($cart->getTotal() > 0) { $order = $orderModel->create(['user_id' => Auth::User()->id, 'total' => $cart->getTotal()]); foreach ($cart->all() as $key => $eachItem) { $order->items()->create(['product_id' => $key, 'price' => $eachItem['price'], 'qtd' => $eachItem['qtd'], 'total' => $eachItem['price'] * $eachItem['qtd']]); } /** * Clean cart. */ $cart->clean(); /** * Trigger Checkout Event. */ event(new CheckoutEvent(Auth::user(), $order)); } else { $order = null; } return view('store.checkout', compact('order')); }
public function updateStatus(Request $request, $id) { $status = $request['status']; try { if (!Order::validStatus($status)) { throw new Exception('erro ao atualizar pedido - Status inválido'); } $order = $this->order->find($id); $order->status = $status; $order->save(); flash()->success("Status do pedido N°" . $order->id . " do usuário: '" . $order->user->name . "' foi alterado para - '" . $order->statusName() . " ' "); //flash message } catch (Exception $e) { flash()->error($e->getMessage()); } return redirect()->route('admin.orders.index'); }
public function notification(Request $request) { try { $notificationCode = $request->get('notificationCode'); $notificationType = $request->get('notificationType'); if ($notificationType == 'transaction') { // Consultar detalhes da transação $transaction = $this->locator->getByNotification($notificationCode); // Pegar os detalhes $details = $transaction->getDetails(); // Consultar a order através da referência passada no checkout $order = Order::find($details->getReference()); // Atualizar o status da order para o status atual da transação $order->status = $details->getStatus(); // Inserir o id da transação if (empty($order->transaction)) { $order->transaction = $details->getCode(); } // Salvar dados alterados $order->save(); return response(null, 200); } else { throw new \Exception('Dados informados estão incorretos.'); } } catch (\Exception $error) { return response($error->getMessage(), 500); } }
/** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { Order::find($id)->delete(); return redirect()->route('admin.orders'); }
Route::get('/show/{id}', ['as' => 'show', 'uses' => 'AdminCategoriesController@show']); Route::get('/edit/{id}', ['as' => 'edit', 'uses' => 'AdminCategoriesController@edit']); Route::put('/update/{id}', ['as' => 'update', 'uses' => 'AdminCategoriesController@update']); Route::get('/destroy/{id}', ['as' => 'destroy', 'uses' => 'AdminCategoriesController@destroy']); }); Route::group(['prefix' => 'products', 'as' => 'products.'], function () { Route::get('/', ['as' => 'index', 'uses' => 'AdminProductsController@index']); Route::get('/create', ['as' => 'create', 'uses' => 'AdminProductsController@create']); Route::post('/store', ['as' => 'store', 'uses' => 'AdminProductsController@store']); Route::get('/show/{id}', ['as' => 'show', 'uses' => 'AdminProductsController@show']); Route::get('/edit/{id}', ['as' => 'edit', 'uses' => 'AdminProductsController@edit']); Route::put('/update/{id}', ['as' => 'update', 'uses' => 'AdminProductsController@update']); Route::get('/destroy/{id}', ['as' => 'destroy', 'uses' => 'AdminProductsController@destroy']); Route::group(['as' => 'images.'], function () { Route::get('/{id}/images', ['as' => 'index', 'uses' => 'AdminProductsController@images']); Route::get('/{id}/images/create', ['as' => 'create', 'uses' => 'AdminProductsController@createImage']); Route::post('/{id}/images/store', ['as' => 'store', 'uses' => 'AdminProductsController@storeImage']); Route::get('/{id}/images/destroy/{idImage}', ['as' => 'destroy', 'uses' => 'AdminProductsController@destroyImage']); }); }); Route::group(['prefix' => 'orders', 'as' => 'orders.'], function () { Route::get('/', ['as' => 'index', 'uses' => 'AdminOrdersController@index']); Route::get('/edit/{id}', ['as' => 'edit', 'uses' => 'AdminOrdersController@edit']); Route::patch('/update/{id}', ['as' => 'update', 'uses' => 'AdminOrdersController@update']); }); Route::get('/email', function () { $order = \CodeCommerce\Order::all()->last(); return view('emails.checkout', compact('order')); }); }); Route::controllers(['auth' => 'Auth\\AuthController', 'password' => 'Auth\\PasswordController']);
/** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { $this->order->find($id)->update($request->all()); return redirect()->route('admin.orders.index'); }
public function index() { $orders = Order::all(); return view('orders.index', compact('orders')); }
public function payment_status(Request $request) { if ($request->get('notificationType') == 'transaction') { $url = 'https://ws.sandbox.pagseguro.uol.com.br/v3/transactions/notifications/' . $request->get('notificationCode') . '?email=' . config('pagseguro.email') . '&token=' . config('pagseguro.token'); $curl = curl_init($url); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); $transaction = curl_exec($curl); curl_close($curl); if ($transaction == 'Unauthorized') { //MSG de ERRO! exit; } $transaction = simplexml_load_string($transaction); switch ($transaction->status) { case 1: $code = 2; break; //Aguardando pagamento //Aguardando pagamento case 2: $code = 2; break; //Em análise //Em análise case 3: $code = 3; break; //Paga //Paga case 4: $code = 3; break; //Disponível //Disponível case 5: $code = 1; break; //Em disputa //Em disputa case 6: $code = 6; break; //Devolvida //Devolvida case 7: $code = 6; break; //Cancelada //Cancelada case 8: $code = 6; break; //Chargeback debitado //Chargeback debitado case 9: $code = 6; break; //Em contestação //Em contestação default: $code = 1; } $order = Order::where('id', $transaction->reference)->firstOrFail(); $order->update(['stat_id' => $code, 'code_pagseguro' => $transaction->code]); } }