=', $startTime) ->where('create_time', '<', $endTime) ->where('status', 0) ->where('type', 0) ->select(); //3余额 18采购款 7微信小程序 9微信条码 13 支付宝条码支付 foreach ($result as $row) { switch ($row['pay_type']) { case 3: case 18: $this->dealCapital($row['pay_type'],$row); break; case 7: case 9: $this->wechat_refund($row['pay_type'],$row); break; case 13: $this->ali_pay_refund($row['pay_type'],$row); break; } } //7微信小程序 9微信条码 13 支付宝条码支付 } public function dealCapital($pay_type, $order) { $user = User::where('id', $order['user_id'])->find(); if ($pay_type == 18) { $category_title = 'system_purchase_add'; $title = '系统增加采购款'; $mark = '系统增加采购款'; $filed = 'purchase_funds'; $user->purchase_funds = bcadd($user['purchase_funds'], $order['number'], 2); } else { $category_title = 'system_balance_add'; $title = '系统增加余额'; $mark = '系统反余额冻结'; $filed = 'now_money'; $user->now_money = bcadd($user['now_money'], $order['number'], 2); } $user->save(); $newArr['uid'] = $order['user_id']; $newArr['category'] = $category_title; $newArr['link_type'] = 'order'; $newArr['link_id'] = $order['order_id']; $newArr['amount'] = $order['number']; $newArr['before_balance'] = $user[$filed]; $newArr['balance'] = bcadd($user[$filed], $order['number'], 2); $newArr['create_time'] = date('Y-m-d H:i:s'); $newArr['type'] = 'in'; $newArr['title'] = $title . "{$order['number']}元"; $newArr['mark'] = $mark; CapitalFlow::create($newArr); } public function wechat_refund($pay_type, $row){ $pay_price=StoreOrder::where('id',$row['order_id'])->value('pay_price'); $order = [ 'out_trade_no' => (string)$row['order_sn'], 'out_refund_no' => time(), 'reason' => '待返还金返还', 'amount' => [ 'refund' => bcmul($row['number'], 100), 'total' => bcmul($pay_price, 100), 'currency' => 'CNY', ], ]; try{ $this->payService->wechat->refund($order); VipFlow::where('id',$row['id'])->update(['status'=>1]); }catch (\Exception $e){ Log::error('微信退款失败'.$e->getMessage(),$row->toArray()); } } public function ali_pay_refund($pay_type, $row){ $order = [ 'out_trade_no' => (string)$row['order_sn'], 'refund_reason' => '待返还金返还', 'refund_amount' => $row['number'], ]; try{ $this->payService->alipay->refund($order); VipFlow::where('id',$row['id'])->update(['status'=>1]); }catch (\Exception $e){ Log::error('支付宝退款失败'.$e->getMessage(),$row->toArray()); } } }