diff --git a/app/Http/Controllers/Api/BalanceController.php b/app/Http/Controllers/Api/BalanceController.php index 7549ed6..2c8898b 100644 --- a/app/Http/Controllers/Api/BalanceController.php +++ b/app/Http/Controllers/Api/BalanceController.php @@ -83,7 +83,7 @@ public function show(Balance $balance) $pay = Pay::alipay()->web([ 'out_trade_no' => $balance->order_id, - 'total_amount' => 10, + 'total_amount' => $balance->amount, 'subject' => config('app.display_name') . ' 充值', ]); @@ -140,6 +140,10 @@ public function checkAndCharge(Balance $balance, $check = false) } } + if ($balance->paid_at !== null) { + return true; + } + try { (new Transaction)->addAmount($balance->user_id, 'alipay', $balance->amount); diff --git a/app/Jobs/CheckAndChargeBalance.php b/app/Jobs/CheckAndChargeBalance.php index ddd9f64..26532cd 100644 --- a/app/Jobs/CheckAndChargeBalance.php +++ b/app/Jobs/CheckAndChargeBalance.php @@ -30,7 +30,7 @@ public function handle() Balance::where('paid_at', null)->chunk(100, function ($balances) use ($bc) { foreach ($balances as $balance) { - if (!$bc->checkAndCharge($balance)) { + if (!$bc->checkAndCharge($balance, true)) { if (now()->diffInDays($balance->created_at) > 1) { $balance->delete(); }