From 8ab91943e8888c42c9ca38da818424f00bde260c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E9=9D=99?= Date: Wed, 29 Dec 2021 10:25:04 +0800 Subject: [PATCH] Fix --- .../Http/Controllers/WeChatPayController.php | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/app/Endpoint/Callback/Http/Controllers/WeChatPayController.php b/app/Endpoint/Callback/Http/Controllers/WeChatPayController.php index 17240214..336806cf 100644 --- a/app/Endpoint/Callback/Http/Controllers/WeChatPayController.php +++ b/app/Endpoint/Callback/Http/Controllers/WeChatPayController.php @@ -36,21 +36,23 @@ class WeChatPayController extends Controller $payLog = DB::transaction(function () use ($message) { $payService = new PayService(); - if (data_get($message, 'result_code') !== 'SUCCESS') { + if (data_get($message, 'result_code') === 'SUCCESS') { return $payService->handleSuccessByPaySerialNumber($message['out_trade_no'], [ - 'pay_sn' => $message['transaction_id'] ?? null, + 'out_trade_no' => $message['transaction_id'], + 'pay_at' => Carbon::parse($message['time_end']), + ]); + } elseif (data_get($message, 'result_code') === 'FAIL') { + return $payService->handleFailedByPaySerialNumber($message['out_trade_no'], [ + 'out_trade_no' => $message['transaction_id'] ?? null, 'failed_reason' => '['.$message['err_code'].']'.$message['err_code_des'], ]); } - - return $payService->handleFailedByPaySerialNumber($message['out_trade_no'], [ - 'out_trade_no' => $message['transaction_id'], - 'pay_at' => Carbon::parse($message['time_end']), - ]); }); - if ($payLog->payable instanceof Order) { - OrderPaid::dispatchIf($payLog->payable->isPaid(), $payLog->payable); + $payable = $payLog?->payable; + + if ($payable instanceof Order) { + OrderPaid::dispatchIf($payable->isPaid(), $payable); } } catch (ModelNotFoundException | BizException $e) { } catch (Throwable $e) {