PATH: //proc/thread-self/cwd/classes
FILE_BARU
CREATE
FOLDER_BARU
MKDIR
UPLOAD_FILE
GO
[ .. KEMBALI ]
📄 class.idnclubs.php
↓
X
📄 class.lnplay.php
↓
X
📄 class.nexusggr.php
↓
X
📄 class.nexusggr.php##
↓
X
📄 class.nexusggr.php123#
↓
X
📄 class.pga.php
↓
X
📄 class.phpmailer.php
↓
X
📄 class.smtp.php
↓
X
📄 connectAPI.php##
↓
X
📄 debug_api_log.txt
↓
X
📄 index.php
↓
X
SAVING...
BERHASIL DIUBAH!
EDITING: class.nexusggr.php
<?php if (session_status() === PHP_SESSION_NONE) { session_start(); } include(__DIR__ . '/../config/koneksi.php'); // 1️⃣ Jika form dari menu API di-setting panel admin dikirim: if (isset($_POST['submit_api'])) { $code_agent = mysqli_real_escape_string($conn, $_POST['code_agent']); $signature = mysqli_real_escape_string($conn, $_POST['signature']); // Cek apakah sudah ada data API $cek = mysqli_query($conn, "SELECT * FROM tb_api WHERE id = 1"); if (mysqli_num_rows($cek) > 0) { mysqli_query($conn, "UPDATE tb_api SET code_agent='$code_agent', signature='$signature' WHERE id=1"); } else { mysqli_query($conn, "INSERT INTO tb_api (id, code_agent, signature) VALUES (1, '$code_agent', '$signature')"); } echo "<script>alert('API berhasil disimpan!');window.location.href='../setting/';</script>"; exit; } // 2️⃣ Ambil data Code Agent & Signature dari database agar class di bawah bisa otomatis pakai $get_api = mysqli_query($conn, "SELECT code_agent, signature FROM tb_api WHERE id = 1 LIMIT 1"); if (mysqli_num_rows($get_api) > 0) { $api_data = mysqli_fetch_assoc($get_api); $user_agent = $api_data['code_agent']; $signature = $api_data['signature']; } else { $user_agent = ""; $signature = ""; } // include(__DIR__ . '/connectAPI.php'); class API { private $user_agent; private $signature; private $base_url = "https://api.nexusggr.com"; public function __construct($user_agent, $signature) { $this->user_agent = $user_agent; $this->signature = $signature; } private function postdata($method, $additional_data = []) { $base_data = [ 'agent_code' => $this->user_agent, 'agent_token' => $this->signature, 'method' => $method ]; return array_merge($base_data, $additional_data); } public function money_info() { $postdata = $this->postdata('money_info'); $url = $this->base_url; return $this->send_request($postdata, $url); } public function money_info_user($user_code) { $postdata = $this->postdata('money_info', [ 'user_code' => $user_code ]); $url = $this->base_url; return $this->send_request($postdata, $url); } public function user_deposit($user_code, $amount) { $postdata = $this->postdata('user_deposit', [ 'user_code' => $user_code, 'amount' => $amount ]); $url = $this->base_url; return $this->send_request($postdata, $url); } public function create_user($user_code) { $postdata = $this->postdata('create_user', [ 'user_code' => $user_code ]); return $this->send_request($postdata, $this->base_url); } public function game_launch($user_code, $provider_code, $game_code, $lang = 'en') { $postdata = $this->postdata('game_launch', [ 'user_code' => $user_code, 'provider_code' => $provider_code, 'game_code' => $game_code, 'lang' => $lang ]); $url = $this->base_url; return $this->send_request($postdata, $url); } public function get_balance($user_code) { $postdata = $this->postdata('user_balance', [ 'user_code' => $user_code ]); return $this->send_request($postdata, $this->base_url); } public function user_withdraw($user_code, $amount) { $postdata = $this->postdata('user_withdraw', [ 'user_code' => $user_code, 'amount' => $amount ]); $url = $this->base_url; return $this->send_request($postdata, $url); } public function provider_list() { $postdata = $this->postdata('provider_list'); $url = $this->base_url; return $this->send_request($postdata, $url); } public function game_list($provider_code) { $postdata = $this->postdata('game_list', [ 'provider_code' => $provider_code ]); $url = $this->base_url; return $this->send_request($postdata, $url); } public function get_all_games() { // Ambil daftar semua provider dulu $providers = $this->provider_list(); if (!isset($providers['msg']) || $providers['msg'] != 'SUCCESS') { return [ 'msg' => 'FAILED', 'error' => 'Tidak bisa mengambil daftar provider', 'response' => $providers ]; } $allGames = []; // Loop setiap provider dan ambil daftar gamenya foreach ($providers['data'] as $prov) { $providerCode = $prov['provider_code']; $games = $this->game_list($providerCode); if (isset($games['msg']) && $games['msg'] == 'SUCCESS' && !empty($games['data'])) { foreach ($games['data'] as $g) { $allGames[] = [ 'provider' => $providerCode, 'game_code' => $g['game_code'], 'name' => $g['game_name'] ?? 'Unknown', 'type' => $g['game_type'] ?? '-' ]; } } } return [ 'msg' => 'SUCCESS', 'data' => $allGames ]; } public function history_bet() { $currentDate = date('Y-m-d'); $postdata = $this->postdata('get_game_log', [ 'game_type' => 'slot', 'start' => $currentDate . ' 00:00:00', 'end' => $currentDate . ' 23:59:59', 'page' => 0, 'perPage' => 1000 ]); $url = $this->base_url; return $this->send_request($postdata, $url); } public function sync_history_game($conn) { $data = $this->history_bet(); if(!isset($data['status']) || $data['status'] !== true) return false; if(empty($data['data'])) return false; foreach($data['data'] as $row) { $userID = mysqli_real_escape_string($conn, $row['username']); $gameID = mysqli_real_escape_string($conn, $row['game_id']); $bet = floatval($row['bet']); $win = floatval($row['win']); $result = mysqli_real_escape_string($conn, $row['result']); // WIN / LOSE $provider = mysqli_real_escape_string($conn, $row['provider']); $trxTime = $row['datetime']; $note = "Game $gameID - $result"; // Cek supaya tidak double insert $cek = mysqli_query($conn, "SELECT id FROM tb_history_game WHERE userID='$userID' AND gameID='$gameID' AND datetime='$trxTime' LIMIT 1"); if(mysqli_num_rows($cek) == 0) { mysqli_query($conn, " INSERT INTO tb_history_game (userID, gameID, bet, win, result, provider, note, datetime) VALUES ('$userID', '$gameID', '$bet', '$win', '$result', '$provider', '$note', '$trxTime') "); } } return true; } public function send_request($postdata, $url){ $jsonData = json_encode($postdata); $headerArray = ['Content-Type: application/json']; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData); curl_setopt($ch, CURLOPT_HTTPHEADER, $headerArray); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Mengaktifkan penggunaan cookies curl_setopt($ch, CURLOPT_COOKIEFILE, ''); $res = curl_exec($ch); if ($res === false) { $error = curl_error($ch); curl_close($ch); throw new Exception("Kesalahan cURL: " . $error); } curl_close($ch); // DEBUG: simpan respon asli untuk dianalisa file_put_contents(__DIR__ . "/debug_api_log.txt", "URL: $url\nRESPON API:\n$res\n\n", FILE_APPEND); if (strpos($res, 'error code: 500') !== false) { throw new Exception("API sedang gangguan (500). Coba beberapa saat lagi."); } // Decode JSON $decodedResponse = json_decode($res, true); if (json_last_error() !== JSON_ERROR_NONE) { throw new Exception("Kesalahan dalam mendekode JSON: " . json_last_error_msg()); } return $decodedResponse; } } // Inisialisasi objek API $FLASHERDEV = new API($user_agent, $signature); // === Tangkap input dari form setting API === if (isset($_POST['submit_api'])) { include('../config/koneksi.php'); $code_agent = mysqli_real_escape_string($conn, $_POST['code_agent']); $signature = mysqli_real_escape_string($conn, $_POST['signature']); // Simpan ke database $cek = mysqli_query($conn, "SELECT * FROM tb_api WHERE id = 1"); if (mysqli_num_rows($cek) > 0) { mysqli_query($conn, "UPDATE tb_api SET code_agent='$code_agent', signature='$signature' WHERE id=1"); } else { mysqli_query($conn, "INSERT INTO tb_api (id, code_agent, signature) VALUES (1, '$code_agent', '$signature')"); } echo "<script>alert('Code Agent & Signature berhasil disimpan!');window.location.href='../setting/';</script>"; exit; } ?>
SIMPAN PERUBAHAN