uid; $order = Db::name('order_info')->where('user_id',$user_id)->where('order_id',$order_id)->find(); if($order['pay_status'] != 0) { throw new Exception(self::getMessage('ERR_ORDER_STATUS_ERROR'), self::ERR_ORDER_STATUS_ERROR); } switch($payType) { case 1://货到付款 $data['pay_type'] = $payType; $data['status'] = 6; Db::name('order_info')->where('user_id',$user_id)->where('order_id',$order_id)->update($data); break; case 2://线下支付 $data['pay_type'] = $payType; $data['status'] = 6; Db::name('order_info')->where('user_id',$user_id)->where('order_id',$order_id)->update($data); break; case 3://小程序支付 break; case 4://微信支付 $data['wxPayInfo'] = model(PayService::class)->wxPayInfo($order); break; case 5://支付宝支付 $data['aliPayInfo'] = model(PayService::class)->aliPayInfo($order); break; default: throw new Exception('支付方式有误'); } $data['pay_type'] = $payType; $data['out_trade_no'] = $order['order_sn']; return self::returnMsg(self::SUCCESS, self::getMessage('SUCCESS'), $data); } catch (Exception $e) { return self::returnMsg(self::ERR_ORDER_STATUS_ERROR, $e->getMessage()); } } public function aliPayCallback(){ $result = false; try{ $params = $_POST; $result = model(PayService::class)->aliPayCallback($params); } catch (PayException $e) { Log::error('支付宝支付失败'); $result = false; } catch (\app\exceptions\Exception $e) { //TODO 进来的订单是待支付状态 Log::error('支付宝回调失败'); Log::error($e->getMessage()); $returnData = $e->getReturnData(); model(PayService::class)->aliPayRefund($returnData); $result = false; } finally { if($result) { echo "success"; }else{ echo "fail"; } } } public function wxPayCallback(){ try{ Log::info("进入微信支付回调"); $config = Config::pull('wxpay'); $wxConfig = new WxPayConfig($config); $notify = new WxPayNotify(); $notify->Handle($wxConfig); } catch (PayException $e) { //TODO 进来的订单是待支付状态 Log::record('微信支付失败'); echo ''; } catch (\app\exceptions\Exception $e) { Log::record('微信支付失败'); model(PayService::class)->wxPayRefund($e->getReturnData()); echo ''; } } }