setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $stmt = $conn->prepare("SELECT * FROM deposits WHERE transaction_id=:ref LIMIT 1"); $stmt->execute(['ref' => $reference]); $deposit = $stmt->fetch(PDO::FETCH_ASSOC); if ($deposit) { if ($status === 'successful' || $status === 'completed' || $status === 'success') { if ($deposit['status'] !== 'approved') { $conn->prepare("UPDATE deposits SET status='approved' WHERE id=:id")->execute(['id' => $deposit['id']]); $conn->prepare("UPDATE users SET deposit_balance = deposit_balance + :amt WHERE id=:uid")->execute(['amt' => $deposit['amount'], 'uid' => $deposit['user_id']]); $dateStr = date('d-m-Y H:i'); $conn->prepare("INSERT INTO user_ledgers (user_id, reason, perticulation, amount, debit, credit, status, date, created_at, updated_at) VALUES (:uid, 'payment_approved', 'Your payment already approved.', :amt, :amt, 0, 'approved', :dstr, NOW(), NOW())")->execute([ 'uid' => $deposit['user_id'], 'amt' => $deposit['amount'], 'dstr' => $dateStr ]); file_put_contents($logFile, "SUCCESS: Funds Added\n", FILE_APPEND); } } elseif ($status === 'failed' || $status === 'cancelled' || $status === 'declined') { $conn->prepare("UPDATE deposits SET status='rejected' WHERE id=:id")->execute(['id' => $deposit['id']]); file_put_contents($logFile, "FAILED: Marked as rejected\n", FILE_APPEND); } } } catch (Exception $e) { file_put_contents($logFile, "DB ERR: " . $e->getMessage() . "\n", FILE_APPEND); } echo "OK"; ?>