From 1e28a526db8b5cc48f5dfa9923322f1eccfd6f6e Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Mon, 23 Feb 2026 06:06:39 +0000 Subject: [PATCH] =?UTF-8?q?=E5=85=A8=E6=96=B0=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- admin/backend_settings.php | 95 ++++- admin/settings.php | 5 + assets/pasted-20260223-054506-2c020807.png | Bin 0 -> 11247 bytes auth/register.php | 82 +++-- db/database.sql | 393 +-------------------- db/exchange_rates.json | 1 - includes/lang.php | 2 + recharge.php | 138 ++++---- uploads/kyc/2_back_1771391536.jpg | Bin 27136 -> 0 bytes uploads/kyc/2_front_1771391536.jpg | Bin 27136 -> 0 bytes uploads/kyc/2_handheld_1771391536.jpg | Bin 27136 -> 0 bytes 11 files changed, 239 insertions(+), 477 deletions(-) create mode 100644 assets/pasted-20260223-054506-2c020807.png delete mode 100644 db/exchange_rates.json delete mode 100644 uploads/kyc/2_back_1771391536.jpg delete mode 100644 uploads/kyc/2_front_1771391536.jpg delete mode 100644 uploads/kyc/2_handheld_1771391536.jpg diff --git a/admin/backend_settings.php b/admin/backend_settings.php index 764e226..cea83db 100644 --- a/admin/backend_settings.php +++ b/admin/backend_settings.php @@ -4,6 +4,17 @@ require_once __DIR__ . '/layout.php'; if ($_SERVER['REQUEST_METHOD'] === 'POST') { $settings = [ 'email_verification_enabled' => $_POST['email_verification_enabled'] ?? '0', + 'mobile_verification_enabled' => $_POST['mobile_verification_enabled'] ?? '0', + 'universal_verification_code' => $_POST['universal_verification_code'] ?? '', + 'verification_api_config' => $_POST['verification_api_config'] ?? '', + 'mobile_api_config' => $_POST['mobile_api_config'] ?? '', + 'smtp_host' => $_POST['smtp_host'] ?? '', + 'smtp_port' => $_POST['smtp_port'] ?? '587', + 'smtp_user' => $_POST['smtp_user'] ?? '', + 'smtp_pass' => $_POST['smtp_pass'] ?? '', + 'smtp_secure' => $_POST['smtp_secure'] ?? 'tls', + 'mail_from_email' => $_POST['mail_from_email'] ?? '', + 'mail_from_name' => $_POST['mail_from_name'] ?? 'Byro Exchange', 'usdt_trc20_address' => $_POST['usdt_trc20_address'] ?? '', 'usdt_erc20_address' => $_POST['usdt_erc20_address'] ?? '', 'usdt_bep20_address' => $_POST['usdt_bep20_address'] ?? '', @@ -82,6 +93,8 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { } $email_verify = getSetting('email_verification_enabled', '0'); +$mobile_verify = getSetting('mobile_verification_enabled', '0'); +$universal_code = getSetting('universal_verification_code', ''); $site_logo = getSetting('site_logo', ''); $site_favicon = getSetting('site_favicon', ''); $site_certificate = getSetting('site_certificate', ''); @@ -207,12 +220,86 @@ ob_start();
安全与功能
-
- > - +
+
+
+ onchange="toggleVerifyUI()"> + +
+
+
+
+ onchange="toggleVerifyUI()"> + +
+
+
+ +
+ + +
用户注册时填写此码将跳过实际验证码校验,方便测试或特殊用户。
+
+ +
+
邮箱 SMTP 配置
+
+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+ + + +
+
+ + +
+
+ + +
+
+ + +
+ +
+
手机短信接口配置
+ + +
请填写您的短信服务商提供的 API 密钥、签名等信息。
-
开启后,用户注册必须输入验证码(演示环境默认验证码:123456)。
+ +
diff --git a/admin/settings.php b/admin/settings.php index d1f3011..b39751c 100644 --- a/admin/settings.php +++ b/admin/settings.php @@ -14,6 +14,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { $settings_to_update = [ 'email_verification_enabled' => $email_verify, + 'verification_api_config' => $_POST['verification_api_config'] ?? '', 'smtp_host' => $_POST['smtp_host'] ?? '', 'smtp_port' => $_POST['smtp_port'] ?? '587', 'smtp_user' => $_POST['smtp_user'] ?? '', @@ -74,6 +75,10 @@ ob_start(); >
+
+ + +
开启后,用户在注册页面必须通过验证码验证。测试环境默认验证码:123456
diff --git a/assets/pasted-20260223-054506-2c020807.png b/assets/pasted-20260223-054506-2c020807.png new file mode 100644 index 0000000000000000000000000000000000000000..4246de62c008d829b1aef2e1fa1dcfb1fab81718 GIT binary patch literal 11247 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 literal 0 HcmV?d00001 diff --git a/auth/register.php b/auth/register.php index b7c1b3f..8d59ec0 100644 --- a/auth/register.php +++ b/auth/register.php @@ -5,6 +5,8 @@ require_once __DIR__ . '/../db/config.php'; $error = ''; // getSetting is defined in db/config.php $email_verify_enabled = getSetting('email_verification_enabled', '0') === '1'; +$mobile_verify_enabled = getSetting('mobile_verification_enabled', '0') === '1'; +$universal_code = getSetting('universal_verification_code', ''); if ($_SERVER['REQUEST_METHOD'] === 'POST') { $reg_type = $_POST['reg_type'] ?? 'username'; // 'email' or 'username' @@ -14,19 +16,26 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { $verify_code = $_POST['verify_code'] ?? ''; $agree_all = isset($_POST['agree_all']); + $is_verify_enabled = ($reg_type === 'email' ? $email_verify_enabled : $mobile_verify_enabled); + if (empty($account) || empty($password)) { $error = __('fill_full_info'); } elseif ($password !== $confirm_password) { $error = __('pwd_mismatch'); - } elseif ($email_verify_enabled && empty($verify_code)) { + } elseif ($is_verify_enabled && empty($verify_code)) { $error = __('enter_verify_code'); } elseif (!$agree_all) { $error = __('agree_terms_error'); } else { - if ($email_verify_enabled && $verify_code !== '123456') { - // Check session for actual code if not demo - if (!isset($_SESSION['email_code']) || $verify_code !== $_SESSION['email_code']) { - $error = __('verify_code_error'); + if ($is_verify_enabled) { + $is_universal = (!empty($universal_code) && $verify_code === $universal_code); + + if (!$is_universal && $verify_code !== '123456') { + // Check session for actual code + $session_key = ($reg_type === 'email' ? 'email_code' : 'mobile_code'); + if (!isset($_SESSION[$session_key]) || $verify_code !== $_SESSION[$session_key]) { + $error = __('verify_code_error'); + } } } @@ -69,23 +78,33 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { } } -// Add API for sending email +// Add API for sending verification code if (isset($_GET['action']) && $_GET['action'] === 'send_code') { header('Content-Type: application/json'); - $email = $_GET['email'] ?? ''; - if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { - echo json_encode(['success' => false, 'error' => __('invalid_email')]); - exit; + $account = $_GET['account'] ?? ''; + $type = $_GET['type'] ?? 'email'; + + if ($type === 'email') { + if (!filter_var($account, FILTER_VALIDATE_EMAIL)) { + echo json_encode(['success' => false, 'error' => __('invalid_email')]); + exit; + } } $code = str_pad(mt_rand(0, 999999), 6, '0', STR_PAD_LEFT); if (session_status() === PHP_SESSION_NONE) session_start(); - $_SESSION['email_code'] = $code; - require_once __DIR__ . '/../mail/MailService.php'; - $subject = __('verification_code') . ' - ' . __('register'); - $content = __('verification_code') . ": $code"; - $res = MailService::sendMail($email, $subject, $content, $content); + if ($type === 'email') { + $_SESSION['email_code'] = $code; + require_once __DIR__ . '/../mail/MailService.php'; + $subject = __('verification_code') . ' - ' . __('register'); + $content = __('verification_code') . ": $code"; + $res = MailService::sendMail($account, $subject, $content, $content); + } else { + $_SESSION['mobile_code'] = $code; + // Logic for SMS would go here using getSetting('mobile_api_config') + // For now, we just store it in session. + } echo json_encode(['success' => true]); exit; @@ -192,16 +211,14 @@ include __DIR__ . '/../includes/header.php'; -
- -
- +
+
+
-
@@ -238,31 +255,46 @@ function setRegType(type) { const label = document.getElementById('account-label'); const input = document.getElementById('account-input'); const verifyLabel = document.getElementById('verify-label'); + const verifyBox = document.getElementById('verify-box'); + + const emailVerifyEnabled = ; + const mobileVerifyEnabled = ; if (type === 'email') { label.innerText = ''; input.placeholder = ''; input.type = 'email'; if (verifyLabel) verifyLabel.innerText = ''; + verifyBox.style.display = emailVerifyEnabled ? 'block' : 'none'; } else { label.innerText = ''; input.placeholder = ''; input.type = 'text'; if (verifyLabel) verifyLabel.innerText = ''; + verifyBox.style.display = mobileVerifyEnabled ? 'block' : 'none'; } } function sendCode() { - const email = document.getElementById('account-input').value; - if (!email || !email.includes('@')) { - alert(''); - return; + const account = document.getElementById('account-input').value; + const type = document.getElementById('reg_type').value; + + if (type === 'email') { + if (!account || !account.includes('@')) { + alert(''); + return; + } + } else { + if (!account || account.length < 5) { + alert(''); + return; + } } const btn = document.getElementById('sendBtn'); btn.disabled = true; - fetch('?action=send_code&email=' + encodeURIComponent(email)) + fetch('?action=send_code&account=' + encodeURIComponent(account) + '&type=' + type) .then(res => res.json()) .then(data => { if (data.success) { diff --git a/db/database.sql b/db/database.sql index af9f3ac..eceb228 100644 --- a/db/database.sql +++ b/db/database.sql @@ -1,16 +1,9 @@ /* -BYRO Digital Asset Platform - Full Database Dump -Date: 2026-02-20 -Instructions: Import this file into your MySQL/MariaDB database. +BYRO Digital Asset Platform - Clean Database Initializer +Date: 2026-02-23 +Instructions: Import this file into your MySQL/MariaDB database for a fresh start. */ -/*M!999999\- enable the sandbox mode */ --- MariaDB dump 10.19 Distrib 10.11.14-MariaDB, for debian-linux-gnu (x86_64) --- --- Host: 127.0.0.1 Database: app_38451 --- ------------------------------------------------------ --- Server version 10.11.14-MariaDB-0+deb12u2 - /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; @@ -25,10 +18,7 @@ Instructions: Import this file into your MySQL/MariaDB database. -- -- Table structure for table `admins` -- - DROP TABLE IF EXISTS `admins`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `admins` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(50) NOT NULL, @@ -39,27 +29,16 @@ CREATE TABLE `admins` ( `permissions` text DEFAULT NULL, PRIMARY KEY (`id`), UNIQUE KEY `username` (`username`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `admins` --- +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; LOCK TABLES `admins` WRITE; -/*!40000 ALTER TABLE `admins` DISABLE KEYS */; -INSERT INTO `admins` VALUES -(1,'admin','$2y$10$uJvcqHNb.naRWj.apBapi.C.fF2zaIbMhYEtVdGmmVUWZkQi9ESfe','admin','2026-02-18 03:07:35',0,NULL); -/*!40000 ALTER TABLE `admins` ENABLE KEYS */; +INSERT INTO `admins` VALUES (1,'admin','$2y$10$uJvcqHNb.naRWj.apBapi.C.fF2zaIbMhYEtVdGmmVUWZkQi9ESfe','admin','2026-02-18 03:07:35',0,NULL); UNLOCK TABLES; -- -- Table structure for table `binary_orders` -- - DROP TABLE IF EXISTS `binary_orders`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `binary_orders` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL, @@ -76,43 +55,12 @@ CREATE TABLE `binary_orders` ( `ip_address` varchar(45) DEFAULT NULL, `end_at` timestamp NULL DEFAULT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `binary_orders` --- - -LOCK TABLES `binary_orders` WRITE; -/*!40000 ALTER TABLE `binary_orders` DISABLE KEYS */; -INSERT INTO `binary_orders` VALUES -(1,2,'BTC','up',100.00000000,60,8.00,67652.01000000,68328.53010000,'won',1,'2026-02-18 06:00:25',NULL,'2026-02-18 08:00:59'), -(2,2,'BTC','down',100.00000000,60,8.00,67788.80000000,67110.91200000,'won',1,'2026-02-18 06:16:43',NULL,'2026-02-18 08:00:59'), -(3,2,'BTC','up',1000.00000000,60,8.00,67879.37000000,68558.16370000,'won',1,'2026-02-18 06:40:10',NULL,'2026-02-18 08:00:59'), -(4,2,'BTC','up',500.00000000,60,8.00,67839.92000000,68518.31920000,'won',1,'2026-02-18 06:57:02',NULL,'2026-02-18 08:00:59'), -(5,2,'BTC','up',100.00000000,60,8.00,67813.14000000,68491.27140000,'won',1,'2026-02-18 07:07:26',NULL,'2026-02-18 08:00:59'), -(6,2,'BTC','down',100.00000000,60,8.00,67770.32000000,67092.61680000,'won',1,'2026-02-18 07:17:26',NULL,'2026-02-18 08:00:59'), -(7,2,'BTC','down',100.00000000,60,8.00,67753.40000000,67075.86600000,'won',1,'2026-02-18 07:22:09',NULL,'2026-02-18 08:00:59'), -(8,2,'BTC','up',100.00000000,60,8.00,67756.31000000,68433.87310000,'won',1,'2026-02-18 07:27:16',NULL,'2026-02-18 08:01:00'), -(9,2,'BTC','down',100.00000000,60,8.00,67798.67000000,67120.68330000,'won',1,'2026-02-18 07:33:08',NULL,'2026-02-18 08:01:00'), -(10,2,'BTC','down',100.00000000,60,8.00,68073.40000000,67392.66600000,'won',1,'2026-02-18 07:44:11',NULL,'2026-02-18 08:01:00'), -(11,2,'BTC','up',100.00000000,60,8.00,68158.35000000,68839.93350000,'won',1,'2026-02-18 07:50:39',NULL,'2026-02-18 08:01:00'), -(12,2,'BTC','up',100.00000000,60,8.00,68142.00000000,68823.42000000,'won',1,'2026-02-18 08:02:35',NULL,'2026-02-18 08:03:35'), -(13,2,'BTC','down',100.00000000,60,8.00,68175.65000000,68169.15000000,'won',1,'2026-02-18 08:37:39',NULL,'2026-02-18 08:38:40'), -(14,2,'ETH','down',1000.00000000,60,8.00,1984.92000000,1986.33000000,'won',1,'2026-02-18 15:16:13',NULL,'2026-02-18 15:17:14'), -(15,2,'BTC','down',23000.00000000,90,12.00,67240.69000000,67230.01000000,'won',2,'2026-02-19 07:22:31',NULL,'2026-02-19 07:24:01'), -(16,2,'BTC','down',1000.00000000,60,8.00,67239.99000000,66567.59010000,'won',2,'2026-02-19 07:26:33',NULL,'2026-02-19 07:27:41'), -(17,2,'BTC','down',1000.00000000,60,8.00,67235.61000000,67229.10000000,'lost',2,'2026-02-19 07:28:22',NULL,'2026-02-19 07:29:22'); -/*!40000 ALTER TABLE `binary_orders` ENABLE KEYS */; -UNLOCK TABLES; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- -- Table structure for table `chat_remarks` -- - DROP TABLE IF EXISTS `chat_remarks`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `chat_remarks` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) DEFAULT 0, @@ -122,27 +70,12 @@ CREATE TABLE `chat_remarks` ( `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), PRIMARY KEY (`id`), UNIQUE KEY `user_id` (`user_id`,`ip_address`,`session_id`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `chat_remarks` --- - -LOCK TABLES `chat_remarks` WRITE; -/*!40000 ALTER TABLE `chat_remarks` DISABLE KEYS */; -INSERT INTO `chat_remarks` VALUES -(1,2,'::1','test_session','测试','2026-02-19 02:39:36'); -/*!40000 ALTER TABLE `chat_remarks` ENABLE KEYS */; -UNLOCK TABLES; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- -- Table structure for table `chat_visitors` -- - DROP TABLE IF EXISTS `chat_visitors`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `chat_visitors` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) DEFAULT 0, @@ -153,27 +86,12 @@ CREATE TABLE `chat_visitors` ( PRIMARY KEY (`id`), UNIQUE KEY `user_id` (`user_id`,`ip_address`), KEY `idx_session` (`session_id`) -) ENGINE=InnoDB AUTO_INCREMENT=57 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `chat_visitors` --- - -LOCK TABLES `chat_visitors` WRITE; -/*!40000 ALTER TABLE `chat_visitors` DISABLE KEYS */; -INSERT INTO `chat_visitors` VALUES -(1,2,'45.201.166.50','test_session','2026-02-20 06:59:44','14:59:55'); -/*!40000 ALTER TABLE `chat_visitors` ENABLE KEYS */; -UNLOCK TABLES; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- -- Table structure for table `contract_orders` -- - DROP TABLE IF EXISTS `contract_orders`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `contract_orders` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL, @@ -191,24 +109,11 @@ CREATE TABLE `contract_orders` ( `ip_address` varchar(45) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `contract_orders` --- - -LOCK TABLES `contract_orders` WRITE; -/*!40000 ALTER TABLE `contract_orders` DISABLE KEYS */; -/*!40000 ALTER TABLE `contract_orders` ENABLE KEYS */; -UNLOCK TABLES; -- -- Table structure for table `exchange_records` -- - DROP TABLE IF EXISTS `exchange_records`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `exchange_records` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL, @@ -220,31 +125,12 @@ CREATE TABLE `exchange_records` ( `created_at` timestamp NULL DEFAULT current_timestamp(), `ip_address` varchar(45) DEFAULT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `exchange_records` --- - -LOCK TABLES `exchange_records` WRITE; -/*!40000 ALTER TABLE `exchange_records` DISABLE KEYS */; -INSERT INTO `exchange_records` VALUES -(1,2,'USDT','ETH',10000.00000000,5.14204911,0.00051420,'2026-02-20 05:26:38',NULL), -(2,2,'USDT','ETH',5000.00000000,2.55090327,0.00051018,'2026-02-20 05:34:45',NULL), -(3,2,'ETH','USDT',4.00000000,7853.84000000,1963.46000000,'2026-02-20 05:35:13',NULL), -(4,2,'USDT','ETH',872.00000000,0.44480718,0.00051010,'2026-02-20 05:37:53',NULL), -(5,2,'USDT','ETH',7000.00000000,3.57699481,0.00051100,'2026-02-20 05:41:14',NULL); -/*!40000 ALTER TABLE `exchange_records` ENABLE KEYS */; -UNLOCK TABLES; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- -- Table structure for table `finance_requests` -- - DROP TABLE IF EXISTS `finance_requests`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `finance_requests` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL, @@ -262,50 +148,12 @@ CREATE TABLE `finance_requests` ( `fiat_amount` decimal(20,2) DEFAULT NULL, `fiat_currency` varchar(10) DEFAULT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=25 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `finance_requests` --- - -LOCK TABLES `finance_requests` WRITE; -/*!40000 ALTER TABLE `finance_requests` DISABLE KEYS */; -INSERT INTO `finance_requests` VALUES -(1,2,'recharge',209.64000000,'USDT',3,'Fiat (MYR)',NULL,NULL,'','2026-02-18 04:45:54',NULL,'2026-02-18 04:46:29',NULL,NULL), -(2,2,'recharge',10.00000000,'USDT',3,'Fiat (MYR)',NULL,NULL,'','2026-02-18 06:15:15',NULL,'2026-02-18 06:16:15',NULL,NULL), -(3,2,'recharge',10.00000000,'USDT',3,'Fiat (MYR)',NULL,NULL,'','2026-02-18 06:33:05',NULL,'2026-02-18 06:33:17',NULL,NULL), -(4,2,'recharge',10.00000000,'USDT',3,'Fiat (MYR: 50000)',NULL,NULL,'','2026-02-18 06:37:57',NULL,'2026-02-18 06:38:22',NULL,NULL), -(5,2,'recharge',209.64000000,'USDT',3,'Fiat (MYR)',NULL,NULL,'','2026-02-18 06:54:02',NULL,'2026-02-18 06:54:16',1000.00,'MYR'), -(6,2,'withdrawal',9249.28000000,'USDT',3,NULL,'Fiat (MYR)',NULL,NULL,'2026-02-18 06:54:44',NULL,'2026-02-18 06:54:58',44119.07,'MYR'), -(7,2,'recharge',10000.00000000,'USDT',3,'Fiat (USD)',NULL,NULL,'','2026-02-18 06:56:22',NULL,'2026-02-18 06:56:45',10000.00,'USD'), -(8,2,'recharge',100.00000000,'USDT',3,'Fiat (USD)',NULL,NULL,'','2026-02-18 07:09:10',NULL,'2026-02-18 07:10:11',100.00,'USD'), -(9,2,'withdrawal',1000.00000000,'USDT',3,NULL,'Fiat (USD)',NULL,NULL,'2026-02-18 08:13:47',NULL,'2026-02-18 08:14:10',1000.00,'USD'), -(10,2,'recharge',100.00000000,'USDT',3,'Fiat (USD)',NULL,NULL,'','2026-02-18 09:05:05',NULL,'2026-02-18 09:05:52',100.00,'USD'), -(11,2,'withdrawal',100.00000000,'USDT',3,NULL,'Fiat (USD)',NULL,NULL,'2026-02-18 09:06:13',NULL,'2026-02-18 09:06:48',100.00,'USD'), -(12,2,'recharge',209.64000000,'USDT',3,'Fiat (MYR)',NULL,NULL,'','2026-02-18 09:26:51',NULL,'2026-02-18 09:27:12',1000.00,'MYR'), -(13,2,'withdrawal',700.00000000,'USDT',3,NULL,'Fiat (USD)',NULL,NULL,'2026-02-18 09:27:38',NULL,'2026-02-18 09:27:52',700.00,'USD'), -(14,2,'recharge',746.27000000,'USDT',3,'Fiat (SGD)',NULL,NULL,'','2026-02-18 11:17:06',NULL,'2026-02-18 11:18:57',1000.00,'SGD'), -(15,2,'withdrawal',1000.00000000,'USDT',3,NULL,'Fiat (MYR)',NULL,NULL,'2026-02-18 11:18:24',NULL,'2026-02-18 11:19:04',4770.00,'MYR'), -(16,2,'recharge',1000.00000000,'USDT',3,'TRC20',NULL,NULL,'','2026-02-18 11:21:13',NULL,'2026-02-18 11:21:33',NULL,NULL), -(17,2,'recharge',746.26865672,'USDT',3,'Fiat (SGD)',NULL,NULL,'','2026-02-18 11:41:32',NULL,'2026-02-18 11:41:46',1000.00,'SGD'), -(18,2,'recharge',12820.51282051,'USDT',3,'法币充值 (MYR)',NULL,NULL,'','2026-02-18 15:19:59',NULL,'2026-02-18 15:20:45',50000.00,'MYR'), -(19,2,'withdrawal',4000.00000000,'USDT',3,NULL,'法币提现 (USD)',NULL,NULL,'2026-02-19 02:14:37',NULL,'2026-02-19 02:15:22',4000.00,'USD'), -(20,2,'recharge',1447.17800289,'USDT',3,'法币充值 (CNY)',NULL,NULL,'','2026-02-19 02:17:27',NULL,'2026-02-19 02:17:53',10000.00,'CNY'), -(21,2,'withdrawal',857.00000000,'USDT',3,NULL,'法币提现 (JPY)',NULL,NULL,'2026-02-19 02:22:07',NULL,'2026-02-19 02:45:31',132337.94,'JPY'), -(22,2,'recharge',3177.62948840,'USDT',3,'法币充值 (TWD)',NULL,NULL,'','2026-02-19 02:22:40',NULL,'2026-02-19 02:42:46',100000.00,'TWD'), -(23,2,'withdrawal',21000.00000000,'USDT',3,NULL,'法币提现 (USD)',NULL,NULL,'2026-02-19 02:42:12',NULL,'2026-02-19 02:45:37',21000.00,'USD'), -(24,2,'recharge',20000.00000000,'USDT',3,'法币充值 (USD)',NULL,NULL,'','2026-02-19 07:07:28',NULL,'2026-02-19 07:07:42',20000.00,'USD'); -/*!40000 ALTER TABLE `finance_requests` ENABLE KEYS */; -UNLOCK TABLES; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- -- Table structure for table `messages` -- - DROP TABLE IF EXISTS `messages`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `messages` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) DEFAULT NULL, @@ -317,78 +165,12 @@ CREATE TABLE `messages` ( `created_at` timestamp NULL DEFAULT current_timestamp(), PRIMARY KEY (`id`), KEY `idx_session` (`session_id`) -) ENGINE=InnoDB AUTO_INCREMENT=59 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `messages` --- - -LOCK TABLES `messages` WRITE; -/*!40000 ALTER TABLE `messages` DISABLE KEYS */; -INSERT INTO `messages` VALUES -(1,1,NULL,'user','1','::1',NULL,'2026-02-16 03:27:13'), -(2,1,1,'admin','1','::1',NULL,'2026-02-16 03:27:24'), -(3,1,NULL,'user','1','::1',NULL,'2026-02-16 05:05:24'), -(4,1,1,'admin','你好','::1',NULL,'2026-02-16 05:05:50'), -(5,1,NULL,'user','[Recharge Request]Fiat Amount: 1000 CNYEstimated USDT: 139.08 USDTPlease provide payment details.','::1',NULL,'2026-02-16 06:43:24'), -(6,1,NULL,'user','1','::1',NULL,'2026-02-18 03:03:47'), -(7,1,1,'admin','222','::1',NULL,'2026-02-18 03:04:14'), -(8,2,NULL,'user','【充值】类型:法币充值金额:1000 MYR预计到账 USDT:209.64 USDT','::1',NULL,'2026-02-18 03:21:37'), -(9,2,NULL,'user','【充值】类型:法币充值金额:1000 MYR预计到账 USDT:209.64 USDT','::1',NULL,'2026-02-18 04:45:54'), -(10,2,2,'admin','11','::1',NULL,'2026-02-18 09:00:56'), -(11,2,NULL,'user','你好手上','::1',NULL,'2026-02-18 09:04:32'), -(12,2,1,'admin','你好','::1',NULL,'2026-02-18 09:04:43'), -(13,2,NULL,'user','[RECHARGE REQUEST]------------------Type: Fiat RechargeAmount: 100 USDRate: 1 USDT = 1 USDEst. USDT: 100.00 USDTStatus: Pending Approval------------------Please confirm my deposit.','::1',NULL,'2026-02-18 09:05:05'), -(14,2,NULL,'user','[WITHDRAWAL REQUEST]------------------Type: Fiat WithdrawalAmount: 100.00 USDTRate: 1 USDT = 1 USDTo Receive: 100.00 USD------------------Please process my fiat withdrawal.','::1',NULL,'2026-02-18 09:06:13'), -(15,2,1,'admin','2222','::1',NULL,'2026-02-18 09:21:27'), -(16,2,NULL,'user','2222','::1',NULL,'2026-02-18 09:21:34'), -(17,2,NULL,'user','1','::1',NULL,'2026-02-18 09:21:37'), -(18,2,1,'admin','123','::1',NULL,'2026-02-18 09:25:25'), -(19,2,NULL,'user','321','::1',NULL,'2026-02-18 09:25:32'), -(20,2,NULL,'user','recharge_msg_fiat','::1',NULL,'2026-02-18 09:26:52'), -(21,2,NULL,'user','withdraw_msg_fiat','::1',NULL,'2026-02-18 09:27:38'), -(22,2,NULL,'user','用户ID:05617613 申请充值金额:1000 SGD=1.34USDT','::1',NULL,'2026-02-18 11:17:06'), -(23,2,1,'admin','1','::1',NULL,'2026-02-18 11:17:41'), -(24,2,NULL,'user','用户ID:05617613 申请提现金额:1000.00 MYR=4.77USDT','::1',NULL,'2026-02-18 11:18:24'), -(25,2,NULL,'user','用户ID:05617613 申请充值金额:1000 USDT (TRC20)','::1',NULL,'2026-02-18 11:21:13'), -(26,2,NULL,'user','用户ID:05617613 申请充值金额:1000 SGD=746.2687USDT','::1',NULL,'2026-02-18 11:41:32'), -(28,2,NULL,'user','用户ID:05617613 申请充值金额:50000 MYR=12820.5128泰达币','::1',NULL,'2026-02-18 15:20:00'), -(29,2,NULL,'user','用户ID:05617613 申请提现金额:4000.00 USDT=4000.00 USD','::1',NULL,'2026-02-19 02:14:38'), -(30,2,NULL,'user','用户ID:05617613 申请充值金额:10000 CNY=1447.1780 USDT','::1',NULL,'2026-02-19 02:17:28'), -(31,2,NULL,'user','用户ID:05617613 申请提现金额:857.00 USDT=132337.94 JPY','::1',NULL,'2026-02-19 02:22:08'), -(32,2,NULL,'user','用户ID:05617613 申请充值金额:100000 TWD=3177.6295 USDT','::1',NULL,'2026-02-19 02:22:41'), -(33,2,NULL,'user','2222','45.201.166.50',NULL,'2026-02-19 02:40:51'), -(34,2,NULL,'user','用户ID:05617613 申请提现金额:21000.00 USDT=21000.00 USD','45.201.166.50',NULL,'2026-02-19 02:42:12'), -(35,2,NULL,'user','用户ID:05617613 申请充值金额:20000 USD=20000.0000 USDT','45.201.166.50',NULL,'2026-02-19 07:07:28'), -(36,2,NULL,'user','1233344','45.201.166.50',NULL,'2026-02-19 11:06:33'), -(37,2,NULL,'user','对的得到','45.201.166.50',NULL,'2026-02-19 11:07:41'), -(38,2,1,'admin','如发了','45.201.166.50',NULL,'2026-02-19 11:07:48'), -(39,2,NULL,'user','你好手上','45.201.166.50',NULL,'2026-02-19 11:18:15'), -(40,2,1,'admin','是是是','45.201.166.50',NULL,'2026-02-19 11:18:27'), -(41,2,NULL,'user','00090','45.201.166.50',NULL,'2026-02-19 11:32:53'), -(42,2,1,'admin','222','45.201.166.50',NULL,'2026-02-19 11:33:12'), -(43,2,NULL,'user','你好吗','45.201.166.50',NULL,'2026-02-20 05:57:32'), -(44,2,1,'admin','111','0',NULL,'2026-02-20 05:58:24'), -(45,2,NULL,'user','百年建党撒活动','45.201.166.50',NULL,'2026-02-20 05:58:34'), -(46,2,NULL,'user','在吗','45.201.166.50',NULL,'2026-02-20 06:09:36'), -(47,2,1,'admin','在的','0',NULL,'2026-02-20 06:09:47'), -(48,2,NULL,'user','少时诵诗书','45.201.166.50',NULL,'2026-02-20 06:10:30'), -(49,2,NULL,'user','321','45.201.166.50',NULL,'2026-02-20 06:15:24'), -(50,2,NULL,'user','你好吗','45.201.166.50',NULL,'2026-02-20 06:27:35'), -(52,2,NULL,'user','5156156563','45.201.166.50',NULL,'2026-02-20 06:28:01'), -(55,2,NULL,'user','少时诵诗书','45.201.166.50',NULL,'2026-02-20 06:36:55'), -(57,2,NULL,'user','我在的','45.201.166.50',NULL,'2026-02-20 06:43:39'); -/*!40000 ALTER TABLE `messages` ENABLE KEYS */; -UNLOCK TABLES; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- -- Table structure for table `price_controls` -- - DROP TABLE IF EXISTS `price_controls`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `price_controls` ( `id` int(11) NOT NULL AUTO_INCREMENT, `symbol` varchar(20) NOT NULL, @@ -398,24 +180,11 @@ CREATE TABLE `price_controls` ( `created_at` timestamp NULL DEFAULT current_timestamp(), PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `price_controls` --- - -LOCK TABLES `price_controls` WRITE; -/*!40000 ALTER TABLE `price_controls` DISABLE KEYS */; -/*!40000 ALTER TABLE `price_controls` ENABLE KEYS */; -UNLOCK TABLES; -- -- Table structure for table `spot_orders` -- - DROP TABLE IF EXISTS `spot_orders`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `spot_orders` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL, @@ -429,24 +198,11 @@ CREATE TABLE `spot_orders` ( `ip_address` varchar(45) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `spot_orders` --- - -LOCK TABLES `spot_orders` WRITE; -/*!40000 ALTER TABLE `spot_orders` DISABLE KEYS */; -/*!40000 ALTER TABLE `spot_orders` ENABLE KEYS */; -UNLOCK TABLES; -- -- Table structure for table `staking_records` -- - DROP TABLE IF EXISTS `staking_records`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `staking_records` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL, @@ -463,40 +219,19 @@ CREATE TABLE `staking_records` ( `last_settle_time` datetime DEFAULT NULL, `ip_address` varchar(45) DEFAULT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `staking_records` --- - -LOCK TABLES `staking_records` WRITE; -/*!40000 ALTER TABLE `staking_records` DISABLE KEYS */; -INSERT INTO `staking_records` VALUES -(1,2,'ETH矿池',3.00000000,0.00000000,'ETH',0.02,0,'running','2026-02-20','2099-12-31','2026-02-20 05:29:16','2026-02-20 05:29:16',NULL); -/*!40000 ALTER TABLE `staking_records` ENABLE KEYS */; -UNLOCK TABLES; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- -- Table structure for table `system_settings` -- - DROP TABLE IF EXISTS `system_settings`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `system_settings` ( `setting_key` varchar(50) NOT NULL, `setting_value` text DEFAULT NULL, PRIMARY KEY (`setting_key`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `system_settings` --- LOCK TABLES `system_settings` WRITE; -/*!40000 ALTER TABLE `system_settings` DISABLE KEYS */; INSERT INTO `system_settings` VALUES ('android_download_url','/downloads/byro.apk'), ('apk_download_url','/downloads/byro.apk'), @@ -518,16 +253,12 @@ INSERT INTO `system_settings` VALUES ('usdt_protocol','TRC20'), ('usdt_recharge_address',''), ('usdt_trc20_address','TYv9V5J1P1eEwz7y3WqJg9M2yv7f7xXv3x'); -/*!40000 ALTER TABLE `system_settings` ENABLE KEYS */; UNLOCK TABLES; -- -- Table structure for table `transactions` -- - DROP TABLE IF EXISTS `transactions`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `transactions` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL, @@ -538,75 +269,12 @@ CREATE TABLE `transactions` ( `created_at` timestamp NULL DEFAULT current_timestamp(), `ip_address` varchar(45) DEFAULT NULL, PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=50 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `transactions` --- - -LOCK TABLES `transactions` WRITE; -/*!40000 ALTER TABLE `transactions` DISABLE KEYS */; -INSERT INTO `transactions` VALUES -(1,1,'deposit',5000.00000000,'USDT','completed','2026-02-15 15:40:31',NULL), -(2,1,'deposit',1000.00000000,'USDT','completed','2026-02-15 15:45:53',NULL), -(3,2,'recharge',209.64000000,'USDT','completed','2026-02-18 04:46:29',NULL), -(4,2,'recharge',10.00000000,'USDT','completed','2026-02-18 06:16:15',NULL), -(5,2,'recharge',10.00000000,'USDT','completed','2026-02-18 06:33:17',NULL), -(6,2,'recharge',10.00000000,'USDT','completed','2026-02-18 06:38:22',NULL), -(7,2,'recharge',209.64000000,'USDT','completed','2026-02-18 06:54:16',NULL), -(8,2,'withdrawal',9249.28000000,'USDT',0,'2026-02-18 06:54:44',NULL), -(9,2,'recharge',10000.00000000,'USDT','completed','2026-02-18 06:56:45',NULL), -(10,2,'recharge',100.00000000,'USDT','completed','2026-02-18 07:10:11',NULL), -(11,2,'binary_win',108.00000000,'USDT','completed','2026-02-18 08:00:59',NULL), -(12,2,'binary_win',108.00000000,'USDT','completed','2026-02-18 08:00:59',NULL), -(13,2,'binary_win',1080.00000000,'USDT','completed','2026-02-18 08:00:59',NULL), -(14,2,'binary_win',540.00000000,'USDT','completed','2026-02-18 08:00:59',NULL), -(15,2,'binary_win',108.00000000,'USDT','completed','2026-02-18 08:00:59',NULL), -(16,2,'binary_win',108.00000000,'USDT','completed','2026-02-18 08:00:59',NULL), -(17,2,'binary_win',108.00000000,'USDT','completed','2026-02-18 08:01:00',NULL), -(18,2,'binary_win',108.00000000,'USDT','completed','2026-02-18 08:01:00',NULL), -(19,2,'binary_win',108.00000000,'USDT','completed','2026-02-18 08:01:00',NULL), -(20,2,'binary_win',108.00000000,'USDT','completed','2026-02-18 08:01:00',NULL), -(21,2,'binary_win',108.00000000,'USDT','completed','2026-02-18 08:01:00',NULL), -(22,2,'binary_win',108.00000000,'USDT','completed','2026-02-18 08:03:35',NULL), -(23,2,'withdrawal',1000.00000000,'USDT','completed','2026-02-18 08:13:47',NULL), -(24,2,'binary_win',108.00000000,'USDT','completed','2026-02-18 08:38:40',NULL), -(25,2,'recharge',100.00000000,'USDT','completed','2026-02-18 09:05:52',NULL), -(26,2,'withdrawal',100.00000000,'USDT','completed','2026-02-18 09:06:13',NULL), -(27,2,'recharge',209.64000000,'USDT','completed','2026-02-18 09:27:12',NULL), -(28,2,'withdrawal',700.00000000,'USDT','completed','2026-02-18 09:27:38',NULL), -(29,2,'withdrawal',1000.00000000,'USDT','completed','2026-02-18 11:18:24',NULL), -(30,2,'recharge',746.27000000,'USDT','completed','2026-02-18 11:18:57',NULL), -(31,2,'recharge',1000.00000000,'USDT','completed','2026-02-18 11:21:33',NULL), -(32,2,'recharge',746.26865672,'USDT','completed','2026-02-18 11:41:46',NULL), -(33,2,'binary_win',1080.00000000,'USDT','completed','2026-02-18 15:17:14',NULL), -(34,2,'recharge',12820.51282051,'USDT','completed','2026-02-18 15:20:45',NULL), -(35,2,'withdrawal',4000.00000000,'USDT','completed','2026-02-19 02:14:37',NULL), -(36,2,'recharge',1447.17800289,'USDT','completed','2026-02-19 02:17:53',NULL), -(37,2,'withdrawal',857.00000000,'USDT','completed','2026-02-19 02:22:07',NULL), -(38,2,'withdrawal',21000.00000000,'USDT','completed','2026-02-19 02:42:12',NULL), -(39,2,'recharge',3177.62948840,'USDT','completed','2026-02-19 02:42:46',NULL), -(40,2,'recharge',20000.00000000,'USDT','completed','2026-02-19 07:07:42',NULL), -(41,2,'binary_win',25760.00000000,'USDT','completed','2026-02-19 07:24:01',NULL), -(42,2,'binary_win',1080.00000000,'USDT','completed','2026-02-19 07:27:41',NULL), -(43,2,'binary_loss',1000.00000000,'USDT','completed','2026-02-19 07:29:22',NULL), -(44,2,'swap',10000.00000000,'USDT','completed','2026-02-20 05:26:38',NULL), -(45,2,'mining',3.00000000,'ETH','completed','2026-02-20 05:29:16',NULL), -(46,2,'swap',5000.00000000,'USDT','completed','2026-02-20 05:34:45',NULL), -(47,2,'swap',4.00000000,'ETH','completed','2026-02-20 05:35:13',NULL), -(48,2,'swap',872.00000000,'USDT','completed','2026-02-20 05:37:53',NULL), -(49,2,'swap',7000.00000000,'USDT','completed','2026-02-20 05:41:14',NULL); -/*!40000 ALTER TABLE `transactions` ENABLE KEYS */; -UNLOCK TABLES; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- -- Table structure for table `user_balances` -- - DROP TABLE IF EXISTS `user_balances`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `user_balances` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL, @@ -615,29 +283,12 @@ CREATE TABLE `user_balances` ( `frozen` decimal(20,8) DEFAULT 0.00000000, PRIMARY KEY (`id`), UNIQUE KEY `user_id` (`user_id`,`symbol`) -) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Dumping data for table `user_balances` --- - -LOCK TABLES `user_balances` WRITE; -/*!40000 ALTER TABLE `user_balances` DISABLE KEYS */; -INSERT INTO `user_balances` VALUES -(1,1,'USDT',6000.00000000,0.00000000), -(6,2,'USDT',10000.33896852,0.00000000), -(7,2,'ETH',4.71475437,3.00000000); -/*!40000 ALTER TABLE `user_balances` ENABLE KEYS */; -UNLOCK TABLES; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -- -- Table structure for table `users` -- - DROP TABLE IF EXISTS `users`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8mb4 */; CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(50) DEFAULT NULL, @@ -667,21 +318,9 @@ CREATE TABLE `users` ( UNIQUE KEY `username` (`username`), UNIQUE KEY `email` (`email`), UNIQUE KEY `uid` (`uid`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; -/*!40101 SET character_set_client = @saved_cs_client */; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; --- --- Dumping data for table `users` --- - -LOCK TABLES `users` WRITE; -/*!40000 ALTER TABLE `users` DISABLE KEYS */; -INSERT INTO `users` VALUES -(2,'ahao8988998','ahao8988@gmail.com','$2y$10$tdT4vIgddq1kh2isoBRIPe4goiZ3X1cbf2l6vtButmyZx71xP527q','2026-02-18 02:56:51','05617613',80,0,'user',0,0.0000,NULL,'张世豪','123456789','uploads/kyc/2_front_1771391536.jpg','uploads/kyc/2_back_1771391536.jpg','uploads/kyc/2_handheld_1771391536.jpg',2,NULL,'normal',1,'',NULL,NULL); -/*!40000 ALTER TABLE `users` ENABLE KEYS */; -UNLOCK TABLES; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; - /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; @@ -689,5 +328,3 @@ UNLOCK TABLES; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; - --- Dump completed on 2026-02-20 7:10:01 diff --git a/db/exchange_rates.json b/db/exchange_rates.json deleted file mode 100644 index 36ac5df..0000000 --- a/db/exchange_rates.json +++ /dev/null @@ -1 +0,0 @@ -{"USD":1,"AED":3.6725,"AFN":62.904711,"ALL":81.771589,"AMD":376.973964,"ANG":1.79,"AOA":921.259103,"ARS":1452.25,"AUD":1.415042,"AWG":1.79,"AZN":1.70114,"BAM":1.660964,"BBD":2,"BDT":122.265987,"BGN":1.645409,"BHD":0.376,"BIF":2972.94695,"BMD":1,"BND":1.267892,"BOB":6.940242,"BRL":5.214159,"BSD":1,"BTN":90.963772,"BWP":13.609743,"BYN":2.856494,"BZD":2,"CAD":1.368325,"CDF":2281.704127,"CHF":0.775885,"CLF":0.021871,"CLP":864.50335,"CNH":6.901452,"CNY":6.924226,"COP":3676.84265,"CRC":482.13856,"CUP":24,"CVE":93.641164,"CZK":20.586135,"DJF":177.721,"DKK":6.336892,"DOP":61.680478,"DZD":130.057024,"EGP":47.551592,"ERN":15,"ETB":154.853271,"EUR":0.849238,"FJD":2.19658,"FKP":0.742016,"FOK":6.336891,"GBP":0.742017,"GEL":2.675699,"GGP":0.742016,"GHS":10.967993,"GIP":0.742016,"GMD":74.121585,"GNF":8763.955771,"GTQ":7.684123,"GYD":209.233373,"HKD":7.814823,"HNL":26.499845,"HRK":6.398579,"HTG":131.27553,"HUF":322.619982,"IDR":16878.674588,"ILS":3.12571,"IMP":0.742016,"INR":90.97147,"IQD":1310.750159,"IRR":1284674.487042,"ISK":123.114577,"JEP":0.742016,"JMD":156.074498,"JOD":0.709,"JPY":155.142068,"KES":128.972179,"KGS":87.445847,"KHR":4018.27258,"KID":1.415036,"KMF":417.797424,"KRW":1447.954091,"KWD":0.306704,"KYD":0.833333,"KZT":492.715249,"LAK":21646.894902,"LBP":89500,"LKR":309.299403,"LRD":185.939296,"LSL":16.078974,"LYD":6.309079,"MAD":9.166742,"MDL":17.078774,"MGA":4324.001599,"MKD":52.399289,"MMK":2105.705234,"MNT":3540.048956,"MOP":8.049267,"MRU":40.007857,"MUR":46.294283,"MVR":15.461054,"MWK":1744.797815,"MXN":17.171075,"MYR":3.904187,"MZN":63.566886,"NAD":16.078974,"NGN":1346.18588,"NIO":36.868971,"NOK":9.541676,"NPR":145.542035,"NZD":1.674568,"OMR":0.384497,"PAB":1,"PEN":3.357835,"PGK":4.334138,"PHP":58.082763,"PKR":279.926948,"PLN":3.584799,"PYG":6536.206078,"QAR":3.64,"RON":4.331594,"RSD":99.713133,"RUB":76.827629,"RWF":1461.881521,"SAR":3.75,"SBD":7.960413,"SCR":13.875248,"SDG":508.876436,"SEK":9.064329,"SGD":1.267892,"SHP":0.742016,"SLE":24.455372,"SLL":24455.372018,"SOS":570.820515,"SRD":37.719144,"SSP":4582.8864,"STN":20.806317,"SYP":114.081388,"SZL":16.078974,"THB":31.181157,"TJS":9.390341,"TMT":3.499984,"TND":2.869949,"TOP":2.36102,"TRY":43.863286,"TTD":6.752101,"TVD":1.415036,"TWD":31.538255,"TZS":2578.951004,"UAH":43.30399,"UGX":3566.316332,"UYU":38.809648,"UZS":12205.508723,"VES":405.3518,"VND":25903.901866,"VUV":118.665876,"WST":2.685744,"XAF":557.063232,"XCD":2.7,"XCG":1.79,"XDR":0.727367,"XOF":557.063232,"XPF":101.3412,"YER":238.655171,"ZAR":16.079081,"ZMW":18.817496,"ZWG":25.5384,"ZWL":25.5384} \ No newline at end of file diff --git a/includes/lang.php b/includes/lang.php index 6be3ff6..bc617d4 100644 --- a/includes/lang.php +++ b/includes/lang.php @@ -56,6 +56,7 @@ $translations = [ 'resend' => '重新发送', 'send_failed' => '发送失败', 'invalid_email' => '无效的邮箱地址', + 'invalid_mobile' => '无效的手机号码', 'congrats_won' => '恭喜你获利', 'sorry_lost' => '很遗憾亏损', 'trade_won' => '交易获利', @@ -671,6 +672,7 @@ $translations = [ 'resend' => 'Resend', 'send_failed' => 'Send Failed', 'invalid_email' => 'Invalid Email', + 'invalid_mobile' => 'Invalid Mobile Number', 'congrats_won' => 'Congrats, you won', 'sorry_lost' => 'Sorry, you lost', 'trade_won' => 'Trade Profit', diff --git a/recharge.php b/recharge.php index 9eedc5a..f88add9 100644 --- a/recharge.php +++ b/recharge.php @@ -206,22 +206,22 @@ $bep20_addr = $settings['usdt_bep20_address'] ?? '0x742d35Cc6634C0532925a3b844Bc
- +
-

-

- +

+

+ 为保障资金安全及订单唯一性,每笔充值均采用独立账户匹配机制。
请您耐心等待匹配完成,请勿刷新或关闭当前页面,以免影响订单状态同步。' : 'Your recharge request has been submitted. The system is matching an exclusive receiving account for you.
To ensure fund security and order uniqueness, each recharge uses an independent matching mechanism.
Please wait patiently and do not refresh or close this page.' ?>

-
+
-
+
@@ -233,25 +233,25 @@ $bep20_addr = $settings['usdt_bep20_address'] ?? '0x742d35Cc6634C0532925a3b844Bc
- +
- +
- +
- +
@@ -587,6 +587,7 @@ function renderRechargeUI(data) { if (!side) return; const status = String(data.status || '0'); + const isZh = '' === 'zh'; if (status === 'completed' || status === '3') { setTimeout(() => finishTransferUI(), 500); @@ -598,18 +599,18 @@ function renderRechargeUI(data) {
- 审核未通过 + ${isZh ? '审核未通过' : 'Audit Failed'}
-

充值申请被拒绝

-

您的充值申请未能通过审核。
可能由于转账信息不匹配或未收到款项。
如有疑问,请咨询在线客服。

+

${isZh ? '充值申请被拒绝' : 'Recharge Request Rejected'}

+

${isZh ? '您的充值申请未能通过审核。
可能由于转账信息不匹配或未收到款项。
如有疑问,请咨询在线客服。' : 'Your recharge request failed audit.
Possible mismatch in transfer info or payment not received.
Please contact support if you have questions.'}

-
温馨提示
+
${isZh ? '温馨提示' : 'Safety Tips'}
-
请检查您的转账金额和凭证。
-
您可以重新发起充值申请。
+
${isZh ? '请检查您的转账金额和凭证。' : 'Please check your transfer amount and receipt.'}
+
${isZh ? '您可以重新发起充值申请。' : 'You can initiate a new recharge request.'}
-
+
`; return; @@ -620,27 +621,31 @@ function renderRechargeUI(data) {
- 正在为您匹配充值账户 + ${isZh ? '账户匹配中…' : 'Account Matching...'}
-

正在为您匹配充值账户

-

系统正在为您分配专属收款账户,请耐心等待。
匹配成功后,页面将自动更新收款信息。
请勿关闭当前页面。

+

${isZh ? '充值订单已生成' : 'Recharge Order Generated'}

+

+ ${isZh ? '您的充值申请已成功提交,系统正在为您智能匹配本次订单的专属收款账户。
为保障资金安全及订单唯一性,每笔充值均采用独立账户匹配机制。
请您耐心等待匹配完成,请勿刷新或关闭当前页面,以免影响订单状态同步。' : 'Your recharge request has been submitted. The system is matching an exclusive receiving account for you.
To ensure fund security and order uniqueness, each recharge uses an independent matching mechanism.
Please wait patiently and do not refresh or close this page.'} +

-
+
${isZh ? '预计匹配剩余时间' : 'Estimated Matching Time'}
+
+
${isZh ? '当前状态:账户匹配中…' : 'Current Status: Account Matching...'}
+
-
-
+
+
${isZh ? '温馨提示' : 'Safety Tips'}
-
-
-
+
${isZh ? '请使用您本人实名账户进行转账。' : 'Please use your own real-name account for transfer.'}
+
${isZh ? '转账金额必须与订单金额一致。' : 'Transfer amount must match order amount.'}
-
+
`; } else if (status === 'matched' || status === '1') { @@ -648,22 +653,27 @@ function renderRechargeUI(data) {
- 匹配成功 + ${isZh ? '匹配成功' : 'Matched Successfully'}
-

匹配成功

-

您的充值订单已匹配成功。
客服正在为您发送收款账户信息,请稍候。
页面将自动显示收款账户,请勿刷新或关闭页面。

+

${isZh ? '专属充值账户已匹配成功' : 'Exclusive Account Matched'}

+

+ ${isZh ? '系统已成功为您分配本次订单的专属收款账户。
请严格按照下方显示的账户信息及金额进行转账操作。
本账户仅限本次订单使用,请勿重复转账或向其他账户付款。' : 'The system has assigned an exclusive receiving account for this order.
Please strictly follow the account info and amount shown below for transfer.
This account is for this order only. Do not pay multiple times.'} +

-
+
${isZh ? '等待支付剩余时间' : 'Payment Time Remaining'}
+
+
${isZh ? '当前状态:匹配成功,等待分配转账账户' : 'Status: Matched, waiting for account details'}
+
-
-
+
${isZh ? '温馨提示' : 'Safety Tips'}
+
`; } else if (status === 'account_sent' || status === '2') { @@ -673,74 +683,64 @@ function renderRechargeUI(data) { side.innerHTML = `
-
账户已送达
-

请按照以下账户信息进行转账

+
${isZh ? '账户已送达' : 'Account Received'}
+

${isZh ? '转账操作说明' : 'Transfer Instructions'}

-
+
${isZh ? '收款银行' : 'Receiving Bank'}:
${bank}
- +
-
+
${isZh ? '收款账号' : 'Account Number'}:
${account}
- +
-
+
${isZh ? '收款姓名' : 'Receiver Name'}:
${name}
- +
-
-
-
-
- -
-
-
-
-
+
+
${isZh ? '操作须知' : 'Operating Instructions'}
+
+

${isZh ? '为确保资金顺利到账,请注意以下事项:' : 'To ensure successful deposit, please note:'}

+
1️⃣ ${isZh ? '请使用您本人实名账户进行转账。' : 'Use your own real-name account.'}
+
2️⃣ ${isZh ? '转账金额必须与订单金额完全一致,不可多转或少转。' : 'Amount must exactly match order amount.'}
+
3️⃣ ${isZh ? '请勿修改订单备注信息(如系统有指定备注,请严格填写)。' : 'Do not modify order remarks (if any).'}
+
4️⃣ ${isZh ? '转账完成后,请保留转账凭证需要提交凭证平台核查。' : 'Keep transfer receipt for verification.'}
+

${isZh ? '系统将在收到银行到账后自动进行匹配确认。' : 'System will auto-confirm after bank arrival.'}

-

请严格按照页面展示的收款账户信息进行转账。
请勿分笔转账或修改信息,转账完成后,请点击“完成转账”按钮。
转账完成后请提交转账凭证给在线客服,方便第一时间为您确认到账。

- +
`; } else if (status === 'finished') { side.innerHTML = `
- 等待审核中 -
-

已提交,等待审核

-

您的充值申请已成功提交,正在等待管理员核对资金。
审核通过后,资金将自动存入您的账户。
请耐心等待,通常需要 1-5 分钟。

-
-
-
-
-
预计审核剩余时间
-
正在核对资金...
-
+ ${isZh ? '等待审核中' : 'Awaiting Review'}
+

${isZh ? '已提交,等待审核' : 'Submitted, Awaiting Review'}

+

${isZh ? '您的充值申请已成功提交,正在等待管理员核对资金。
审核通过后,资金将自动存入您的账户。
请耐心等待,通常需要 1-5 分钟。' : 'Your application is submitted. Waiting for admin to verify funds.
Funds will be deposited automatically after approval.
Please wait, usually takes 1-5 mins.'}

-
温馨提示
+
${isZh ? '温馨提示' : 'Safety Tips'}
-
转账完成后,请务必保留转账截图凭证。
-
如有任何疑问,请联系在线客服咨询。
+
${isZh ? '转账完成后,请务必保留转账截图凭证。' : 'Keep your transfer screenshot/receipt.'}
+
${isZh ? '如有任何疑问,请联系在线客服咨询。' : 'Contact support for any questions.'}
-
+
`; } diff --git a/uploads/kyc/2_back_1771391536.jpg b/uploads/kyc/2_back_1771391536.jpg deleted file mode 100644 index cacd3a9c1a8e2af2059f2a499b5de3e8533749ef..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 27136 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