false, "message" => "Terjadi kesalahan"]; if ($_SERVER['REQUEST_METHOD'] === 'POST') { $id = intval($_POST['id'] ?? 0); if ($id <= 0) { echo json_encode(["success" => false, "message" => "ID tidak valid"]); exit; } if (!isset($_FILES['bukti_success']) || $_FILES['bukti_success']['error'] !== UPLOAD_ERR_OK) { echo json_encode(["success" => false, "message" => "File gambar tidak ditemukan"]); exit; } $uploadDir = __DIR__ . "/../img/bukti_success/"; if (!is_dir($uploadDir)) { mkdir($uploadDir, 0777, true); } $ext = pathinfo($_FILES['bukti_success']['name'], PATHINFO_EXTENSION); $fileName = "bukti_" . $id . "_" . time() . "." . strtolower($ext); $filePath = $uploadDir . $fileName; if (move_uploaded_file($_FILES['bukti_success']['tmp_name'], $filePath)) { // Update status transaksi withdraw $sql = "UPDATE transaksi_withdraw SET status = 'success', bukti_success = :bukti, update_time = :update_time WHERE id = :id"; $stmt = $pdo->prepare($sql); $stmt->execute([ ":bukti" => "img/bukti_success/" . $fileName, ":update_time" => date('Y-m-d H:i:s'), ":id" => $id ]); // Ambil data transaksi_withdraw yang baru saja diupdate $stmt = $pdo->prepare("SELECT * FROM transaksi_withdraw WHERE id = :id"); $stmt->bindParam(':id', $id, PDO::PARAM_INT); $stmt->execute(); $row = $stmt->fetch(PDO::FETCH_ASSOC); // hanya satu baris if ($row) { // Generate nomor unik 10 digit $numid = date('Y_md').$id; $keterangan = "Withdraw Pendapatan Voucher Auto Pilot reff_" . $numid; // Cek apakah transaksi dengan keterangan tsb sudah ada $stmt = $pdo->prepare("SELECT keterangan FROM transaksi WHERE keterangan = :keterangan"); $stmt->bindParam(':keterangan', $keterangan, PDO::PARAM_STR); $stmt->execute(); $tagid = $stmt->fetchColumn(); if ($tagid === false) { $sql = "INSERT INTO transaksi (id_data_server, keterangan, pemasukan, start_time, metode_pembayaran, status) VALUES (:idds, :keterangan, :pemasukan, :start_time, :metode, 'Pendapatan Hotspot')"; $stmt = $pdo->prepare($sql); $stmt->bindParam(':idds', $row['id_data_server'], PDO::PARAM_INT); $stmt->bindParam(':keterangan', $keterangan, PDO::PARAM_STR); $stmt->bindParam(':pemasukan', $row['nominal'], PDO::PARAM_STR); $stmt->bindValue(':start_time', date('Y-m-d H:i:s')); $stmt->bindValue(':metode', 'API Payment'); $stmt->execute(); } } $response = ["success" => true, "message" => "Update berhasil"]; } else { $response = ["success" => false, "message" => "Gagal upload file"]; } } echo json_encode($response);