From f708203c7bdf983f76fe283b573e377479684f78 Mon Sep 17 00:00:00 2001 From: ctexthuang Date: Tue, 18 Mar 2025 14:58:31 +0800 Subject: [PATCH] feat : wechatPay callback --- app/Model/RefundOrder.php | 2 +- app/Service/Amqp/Refund/RefundService.php | 8 ++++---- app/Service/Api/Pay/PlacePayService.php | 5 ++--- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/app/Model/RefundOrder.php b/app/Model/RefundOrder.php index dc4cbc8..d698f87 100644 --- a/app/Model/RefundOrder.php +++ b/app/Model/RefundOrder.php @@ -67,7 +67,7 @@ class RefundOrder extends Model ])->sum('refund_money') ?? 0; } - public function getSuccessMoneyByOrderId(int $orderId, int $type): mixed + public function getSuccessMoneyByOrderId(int $orderId, int $type): float|int { return $this ->where('order_id', $orderId) diff --git a/app/Service/Amqp/Refund/RefundService.php b/app/Service/Amqp/Refund/RefundService.php index e5a0126..2e08506 100644 --- a/app/Service/Amqp/Refund/RefundService.php +++ b/app/Service/Amqp/Refund/RefundService.php @@ -81,9 +81,9 @@ class RefundService public float $refundAmount; /** - * @var float + * @var float|int */ - protected float $isRefundMoney; + protected float|int $isRefundMoney; /** * @return void @@ -199,9 +199,9 @@ class RefundService protected function checkRefundAmount(): void { // 等于支付金额 减去 已退款金额 减去 本次退款金额 小于 0 就是错误的 大于等于 0 就是正确的 - if ($this->orderInfo->actual_price - $this->isRefundMoney - $this->refundAmount < 0) throw new Exception('退款金额不能大于订单金额'); + if ($this->payInfo->pay_money - $this->isRefundMoney - $this->refundAmount < 0) throw new Exception('退款金额不能大于订单金额'); - $this->refundAmount = 0; + $this->refundAmount = min($this->payInfo->pay_money - $this->isRefundMoney, $this->refundAmount); } /** diff --git a/app/Service/Api/Pay/PlacePayService.php b/app/Service/Api/Pay/PlacePayService.php index d793977..7d31e8c 100644 --- a/app/Service/Api/Pay/PlacePayService.php +++ b/app/Service/Api/Pay/PlacePayService.php @@ -107,6 +107,8 @@ class PlacePayService extends BaseService if ($this->orderInfo->actual_price <= 0) return $this->directPayment(); $this->checkPayOrder(); + // 测试环境 0.01 + if (!SystemUtil::checkProEnv() && $this->orderInfo->actual_price > 0) $this->orderInfo->actual_price = '0.01'; $this->setPayInfo(); @@ -119,9 +121,6 @@ class PlacePayService extends BaseService $rechargeService->setConfig(); $rechargeService->setNotify(); - // 测试环境 0.01 - if (!SystemUtil::checkProEnv() && $this->orderInfo->actual_price > 0) $this->orderInfo->actual_price = '0.01'; - $payData = $rechargeService->pay( (float)$this->orderInfo->actual_price, // $this->request->input('body','订单支付'),