public function transactionNotification(Order $order, Request $request, Locator $service) { $notificationType = $request->notificacationType; $notificationCode = $request->notificationCode; if ($notificationType == 'transaction') { $transactionDetails = $service->getByNotification($notificationCode)->getDetails(); if ($transactionDetails->getStatus() != 4) { $order->where('payment_transaction_code', $transactionDetails->getCode())->update(['status' => $transactionDetails->getStatus()]); } } }
public function changeStatus(Request $request, SubscriptionLocator $sLocator, TransactionLocator $tLocator, Order $orderModel) { header("access-control-allow-origin: *"); try { $service = $request['notificationType'] == 'preApproval' ? $sLocator : $tLocator; // Cria instância do serviço de acordo com o tipo da notificação $purchase = $service->getByNotification($request['notificationCode']); /* PAID = '3'; AVAILABLE = '4'; UNDER_CONTEST = '5'; RETURNED = '6'; CANCELLED = '7'; */ $order = $orderModel->find($purchase->getDetails()->getReference()); $order->status_id = $purchase->getDetails()->getStatus(); $order->save(); } catch (Exception $error) { // Caso ocorreu algum erro echo $error->getMessage(); // Exibe na tela a mensagem de erro } }
public function updateStatus($id, $status) { Order::find($id)->update(['status' => $status]); return redirect()->route('admin.orders'); }