public function requestRefund() { $order_id = Input::get('order_id'); $order = AgencyOrder::find($order_id); if (!isset($order)) { return Response::json(array('errCode' => 21, 'message' => '该订单不存在')); } $refund_record = RefundRecord::where('order_id', '=', $order_id)->get(); if (count($refund_record) != 0) { return Response::json(array('errCode' => 22, 'message' => '申请已提交')); } if ($order->trade_status != 1 || $order->process_status != 1) { return Response::json(array('errCode' => 23, 'message' => '该订单不可申请退款')); } try { DB::transaction(function () use($order) { $order->trade_status = 2; $order->save(); $refund_record = new RefundRecord(); $refund_record->order_id = $order->order_id; $refund_record->user_id = Sentry::getUser()->user_id; $refund_record->save(); }); } catch (Exception $e) { return Response::json(array('errCode' => 24, 'message' => '退款申请失败,请重新申请')); } return Response::json(array('errCode' => 0, 'message' => '申请成功')); }
public static function getRefundStatus($refund_id, $channel = 'WX') { $data = static::returnDataArray(); // if( $channel != 'WX' || $channel != 'ALI' ); // return Response::json(array( 'errCode'=>21, 'message'=>'支付方式只能选去微信或支付宝') ); $data["channel"] = $channel; $refund = RefundRecord::find($refund_id); if (!isset($refund)) { return array('errCode' => 21, 'message' => '该订单不存在'); } $data["refund_no"] = $refund->refund_no; try { $result = BCRESTApi::refundStatus($data); if ($result->result_code != 0 || $result->result_msg != "OK") { return array('errCode' => 22, 'message' => $result->err_detail); } } catch (Exception $e) { return ['errCode' => 23, 'message' => $e->getMessage()]; } $results = static::refundStatus($data["refund_no"], $channel); return $results; }
public function refundApplicationList() { $type = Input::get("type", "all"); $perPage = 15; if ($type == "approving") { $refundIndents = RefundRecord::where("status", "=", "0")->orderBy("updated_at", "desc")->with(["order", "user_info"])->paginate($perPage); } else { if ($type == "pass") { $refundIndents = RefundRecord::where("status", "=", "1")->orWhere("status", "=", "2")->orWhere("status", "=", "4")->orderBy("updated_at", "desc")->with(["order", "user_info"])->paginate($perPage); } else { if ($type == "unpass") { $refundIndents = RefundRecord::where("status", "=", "3")->orderBy("updated_at", "desc")->with(["order", "user_info"])->paginate($perPage); } else { $refundIndents = RefundRecord::orderBy("created_at", "desc")->with(["order", "user_info"])->paginate($perPage); } } } return View::make('pages.admin.business-center.refund-application-list', ["refundIndents" => $refundIndents, "count" => $refundIndents->count(), "totalCount" => $refundIndents->getTotal()]); }
/** * 插入随机数据 */ protected function create_refund_records($total = 50) { echo 'Creating refund_records...'; $orders = AgencyOrder::all(); foreach ($orders as $order) { if ($order->process_status == "1" && $order->trade_status == "2") { // 已受理且申请退款 $refund_record = new RefundRecord(); $refund_record->order_id = $order->order_id; $refund_record->user_id = $order->user_id; $flag = rand(0, 1); if ($flag == 0) { $refund_record->status = '0'; // 审核中 $refund_record->approval_at = $this->get_random_datetime(); } else { $refund_record->status = '3'; // 审核不通过 $refund_record->approval_at = $this->get_random_datetime(); } $refund_record->save(); } else { if ($order->process_status == "4") { // 已关闭 $refund_record = new RefundRecord(); $refund_record->order_id = $order->order_id; $refund_record->user_id = $order->user_id; $refund_flag = rand(0, 2); if ($refund_flag == 0) { $refund_record->status = '1'; // 审核退款通过 $refund_record->approval_at = $this->get_random_datetime(); } else { if ($refund_flag == 1) { $refund_record->status = '2'; // 退款成功 $refund_record->approval_at = $this->get_random_datetime(); } else { $refund_record->status = '4'; // 退款失败 $refund_record->approval_at = $this->get_random_datetime(); } } $refund_record->save(); } } } echo 'Done' . PHP_EOL; }
public function refund_record() { $paginator = RefundRecord::where('user_id', Sentry::getUser()->user_id)->paginate(static::$default_per_page); return View::make('pages.finance-center.cost-manage.refund-record', ['records' => $paginator->getCollection(), 'paginator' => $paginator]); }