public static function orderTradeStatus()
 {
     $order_id = Input::get('order_id');
     $order = AgencyOrder::find($order_id);
     if (!isset($order)) {
         return Response::json(array('errCode' => 21, 'message' => '该订单不存在'));
     }
     return Response::json(array('errCode' => 0, 'trade_status' => $order->trade_status));
 }
 public function pay()
 {
     $agency_order = AgencyOrder::find(Input::get('order_id'));
     if (!isset($agency_order)) {
         return Response::make('无效参数');
     }
     if ($agency_order->trade_status != '0') {
         return Response::make('该订单已付款');
     }
     return View::make('pages.serve-center.business.pay', ['order' => $agency_order]);
 }
 public function success()
 {
     $order_id = Input::get('order_id');
     $order = AgencyOrder::find($order_id);
     if (!isset($order)) {
         return Response::make('Invalid order');
     }
     if ($order->user_id != Sentry::getUser()->user_id) {
         return Response::make('Invalid order');
     }
     if ($order->trade_status == '2' || $order->trade_status == '3') {
         return Response::make('Invalid order');
     }
     return View::make('pages.serve-center.pay.success')->with(array('order' => $order));
 }
 public static function refund($order_id, $channel = 'WX')
 {
     $data = static::returnDataArray();
     $refund = RefundRecord::where('order_id', $order_id)->first();
     if (!isset($refund)) {
         return array('errCode' => 21, 'message' => '该订单不存在');
     }
     $order = AgencyOrder::find($order_id);
     $data["bill_no"] = $order->order_id;
     $data["refund_no"] = date('Ymd', time()) . time();
     $data["refund_fee"] = (int) (($order->capital_sum + $order->service_charge_sum + $order->express_fee) * 100);
     $data["channel"] = $channel;
     $data["optional"] = json_decode(json_encode(array("refund_id" => $refund->refund_id), true), true);
     try {
         DB::transaction(function () use($refund, $data) {
             $order_auth_info = new OrderAuthInfo();
             $order_auth_info->transactionId = $data["refund_no"];
             //交易单号
             $order_auth_info->transactionFee = $data["refund_fee"];
             //费用
             $order_auth_info->save();
             $refund->refund_no = $data["refund_no"];
             $refund->save();
         });
     } catch (Exception $e) {
         return array('errCode' => 21, 'message' => $e->getMessage());
     }
     try {
         $result = BCRESTApi::refund($data);
         if ($result->result_code != 0 || $result->result_msg != "OK") {
             return array('errCode' => 22, 'message' => $result->err_detail);
         }
     } catch (Exception $e) {
         return array('errCode' => 23, 'message' => $e->getMessage());
     }
     return array('errCode' => 0, 'message' => '退款已提交');
 }