$out_trade_no,'pay_status'=>10]; //查询支付记录的 switch ($attach['order_type']) { case OrderTypeEnum::MASTER: $update_data = ['trade_no'=>$out_trade_no]; //更新订单的 这里的更新要按照实际支付时变动的订单好字段 有些时order_no $payment = $payment_model->where($where)->find(); if($payment){ //存在支付记录 $order = new OrderModel(); $is_pay = $order::detail(['order_id'=>$payment['order_id'],'pay_status'=>20]); if($is_pay){ log_write('master订单已支付'.$out_trade_no); return 0; } $res = $order->update($update_data,['order_id'=>$payment['order_id']]); if($res){ return $payment['app_id']; } return 0; }else{ log_write('master没找到支付记录'.json_encode($out_trade_no)); return 0; } break; case OrderTypeEnum::CASH; // 实例化订单模型 $update_data = ['order_no'=>$out_trade_no]; //更新订单的 $payment = $payment_model->where($where)->find(); if($payment){ //存在支付记录 $order = new DepositOrderModel(); $is_pay = $order::detail(['order_id'=>$payment['order_id'],'pay_status'=>20]); if($is_pay){ log_write('deposit订单已支付'.$out_trade_no); return 0; } $res = $order->update($update_data,['order_id'=>$payment['order_id']]); if($res){ return $payment['app_id']; } return 0; }else{ log_write('deposit没找到支付记录'.json_encode($out_trade_no)); return 0; } break; case OrderTypeEnum::PLAN; // 实例化订单模型 $update_data = ['order_no'=>$out_trade_no]; //更新订单的 $payment = $payment_model->where($where)->find(); if($payment){ //存在支付记录 $order = new PlanOrderModel(); $is_pay = $order::detail(['order_id'=>$payment['order_id'],'pay_status'=>20]); if($is_pay){ log_write('plan订单已支付'.$out_trade_no); return 0; } $res = $order->update($update_data,['order_id'=>$payment['order_id']]); if($res){ return $payment['app_id']; } return 0; }else{ log_write('plan没找到支付记录'.json_encode($out_trade_no)); return 0; } break; case OrderTypeEnum::BALANCE; // 实例化订单模型 $update_data = ['order_no'=>$out_trade_no]; //更新订单的 $payment = $payment_model->where($where)->find(); if($payment){ //存在支付记录 $order = new BalanceOrderModel(); $is_pay = $order::detail(['order_id'=>$payment['order_id'],'pay_status'=>20]); if($is_pay){ log_write('balance订单已支付'.$out_trade_no); return 0; } $res = $order->update($update_data,['order_id'=>$payment['order_id']]); if($res){ return $payment['app_id']; } return 0; }else{ log_write('balance没找到支付记录'.json_encode($out_trade_no)); return 0; } break; case OrderTypeEnum::CARD; // 实例化订单模型 $update_data = ['order_no'=>$out_trade_no]; //更新订单的 $payment = $payment_model->where($where)->find(); if($payment){ //存在支付记录 $order = new CardOrderModel(); $is_pay = $order::detail(['order_id'=>$payment['order_id'],'pay_status'=>20]); if($is_pay){ log_write('card订单已支付'.$out_trade_no); return 0; } $res = $order->update($update_data,['order_id'=>$payment['order_id']]); if($res){ return $payment['app_id']; } return 0; }else{ log_write('card没找到支付记录'.json_encode($out_trade_no)); return 0; } break; case OrderTypeEnum::REGACTIVITY; // 实例化订单模型 $update_data = ['order_no'=>$out_trade_no]; //更新订单的 $payment = $payment_model->where($where)->find(); if($payment){ //存在支付记录 $order = new regactivityOrderModel(); $is_pay = $order::detail(['order_id'=>$payment['order_id'],'pay_status'=>20]); if($is_pay){ log_write('regactivity订单已支付'.$out_trade_no); return 0; } $res = $order->update($update_data,['order_id'=>$payment['order_id']]); if($res){ return $payment['app_id']; } return 0; }else{ log_write('regactivity没找到支付记录'.json_encode($out_trade_no)); return 0; } break; } } //保存支付信息 public function savePaymentLog($data) { if (is_object($data)) { $data = $data->toArray(); } $save_data = [ 'app_id' => $data['app_id'], 'out_trade_no' => !empty($data['order_no'])?$data['order_no']:'', 'order_id' => $data['order_id'], 'online_money' => $data['online_money'], 'order_source' => $data['order_source'] ]; if (isset($data['trade_no'])) { $save_data['out_trade_no'] = $data['trade_no']; } (new static())->save($save_data); } //支付完成后修改支付记录的状态 public function updatePaymentLog($data) { $save_data = ['pay_status'=>20]; $update_date = ['out_trade_no'=>$data['order_no']]; (new static())->update($save_data,$update_date); } //按照支付的订单号查找订单id 要找已支付成功的 public function getLogInfo($data) { $where = ['out_trade_no'=>$data['order_no'],'pay_status'=>20]; return (new static())->where($where)->find(); } }