public function retorno(Request $request, Locator $service, Order $orderModel) { $transactionId = $request->get('transaction_id'); $transaction = $service->getByCode($transactionId); $orderId = $transaction->getDetails()->getReference(); return view('store.retorno', compact('orderId')); }
/** * @test */ public function getByNotificationShouldDoAGetRequestAddingCredentialsData() { $xml = simplexml_load_string('<?xml version="1.0" encoding="UTF-8"?><data />'); $this->client->expects($this->once())->method('get')->with('https://ws.test.com/v2/transactions/notifications/1?email=a%40a.com&token=t')->willReturn($xml); $this->decoder->expects($this->once())->method('decode')->with($xml)->willReturn($this->transaction); $service = new Locator($this->credentials, $this->client, $this->decoder); $this->assertSame($this->transaction, $service->getByNotification(1)); }
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 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); } }
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 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'); }