全新修复

This commit is contained in:
Flatlogic Bot 2026-02-23 06:06:39 +00:00
parent 6bcffe35ea
commit 1e28a526db
11 changed files with 239 additions and 477 deletions

View File

@ -4,6 +4,17 @@ require_once __DIR__ . '/layout.php';
if ($_SERVER['REQUEST_METHOD'] === 'POST') { if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$settings = [ $settings = [
'email_verification_enabled' => $_POST['email_verification_enabled'] ?? '0', '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_trc20_address' => $_POST['usdt_trc20_address'] ?? '',
'usdt_erc20_address' => $_POST['usdt_erc20_address'] ?? '', 'usdt_erc20_address' => $_POST['usdt_erc20_address'] ?? '',
'usdt_bep20_address' => $_POST['usdt_bep20_address'] ?? '', 'usdt_bep20_address' => $_POST['usdt_bep20_address'] ?? '',
@ -82,6 +93,8 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
} }
$email_verify = getSetting('email_verification_enabled', '0'); $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_logo = getSetting('site_logo', '');
$site_favicon = getSetting('site_favicon', ''); $site_favicon = getSetting('site_favicon', '');
$site_certificate = getSetting('site_certificate', ''); $site_certificate = getSetting('site_certificate', '');
@ -207,12 +220,86 @@ ob_start();
<h6 class="fw-bold mb-3 text-primary"><i class="bi bi-shield-check me-2"></i>安全与功能</h6> <h6 class="fw-bold mb-3 text-primary"><i class="bi bi-shield-check me-2"></i>安全与功能</h6>
<div class="mb-4"> <div class="mb-4">
<div class="form-check form-switch"> <div class="row g-3">
<input class="form-check-input" type="checkbox" name="email_verification_enabled" value="1" id="emailSwitch" <?= $email_verify == '1' ? 'checked' : '' ?>> <div class="col-md-6">
<label class="form-check-label fw-bold" for="emailSwitch">注册时开启邮箱/手机验证码</label> <div class="form-check form-switch p-3 bg-light border rounded-3">
<input class="form-check-input ms-0 me-2" type="checkbox" name="email_verification_enabled" value="1" id="emailSwitch" <?= $email_verify == '1' ? 'checked' : '' ?> onchange="toggleVerifyUI()">
<label class="form-check-label fw-bold" for="emailSwitch">开启邮箱验证码</label>
</div> </div>
<div class="form-text">开启后用户注册必须输入验证码演示环境默认验证码123456</div>
</div> </div>
<div class="col-md-6">
<div class="form-check form-switch p-3 bg-light border rounded-3">
<input class="form-check-input ms-0 me-2" type="checkbox" name="mobile_verification_enabled" value="1" id="mobileSwitch" <?= $mobile_verify == '1' ? 'checked' : '' ?> onchange="toggleVerifyUI()">
<label class="form-check-label fw-bold" for="mobileSwitch">开启手机验证码</label>
</div>
</div>
</div>
<div class="mt-3">
<label class="form-label fw-bold text-danger"><i class="bi bi-star-fill me-1"></i> 万能验证码 (设置后注册输入此码直接通过)</label>
<input type="text" name="universal_verification_code" class="form-control" value="<?= htmlspecialchars($universal_code) ?>" placeholder="例如: 882937 (建议6位不规则数字)">
<div class="form-text">用户注册时填写此码将跳过实际验证码校验,方便测试或特殊用户。</div>
</div>
<div id="emailVerifyBox" class="mt-3 p-3 bg-white border rounded-3" style="display: <?= $email_verify == '1' ? 'block' : 'none' ?>;">
<h6 class="fw-bold mb-3 text-primary"><i class="bi bi-envelope-at me-1"></i> 邮箱 SMTP 配置</h6>
<div class="row g-2 mb-3">
<div class="col-md-8">
<label class="form-label small text-muted mb-1">SMTP 主机</label>
<input type="text" name="smtp_host" class="form-control form-control-sm" value="<?= htmlspecialchars(getSetting('smtp_host', '')) ?>" placeholder="如: smtp.gmail.com">
</div>
<div class="col-md-4">
<label class="form-label small text-muted mb-1">端口</label>
<input type="text" name="smtp_port" class="form-control form-control-sm" value="<?= htmlspecialchars(getSetting('smtp_port', '587')) ?>" placeholder="587">
</div>
<div class="col-md-6">
<label class="form-label small text-muted mb-1">账号 / 邮箱</label>
<input type="text" name="smtp_user" class="form-control form-control-sm" value="<?= htmlspecialchars(getSetting('smtp_user', '')) ?>" placeholder="your-email@example.com">
</div>
<div class="col-md-6">
<label class="form-label small text-muted mb-1">授权码 / 密码</label>
<input type="password" name="smtp_pass" class="form-control form-control-sm" value="<?= htmlspecialchars(getSetting('smtp_pass', '')) ?>" placeholder="********">
</div>
<div class="col-md-6">
<label class="form-label small text-muted mb-1">安全协议</label>
<?php $smtp_secure = getSetting('smtp_secure', 'tls'); ?>
<select name="smtp_secure" class="form-select form-select-sm">
<option value="tls" <?= $smtp_secure === 'tls' ? 'selected' : '' ?>>TLS</option>
<option value="ssl" <?= $smtp_secure === 'ssl' ? 'selected' : '' ?>>SSL</option>
<option value="none" <?= $smtp_secure === 'none' ? 'selected' : '' ?>>无</option>
</select>
</div>
<div class="col-md-6">
<label class="form-label small text-muted mb-1">发件人姓名</label>
<input type="text" name="mail_from_name" class="form-control form-control-sm" value="<?= htmlspecialchars(getSetting('mail_from_name', 'Byro Exchange')) ?>">
</div>
<div class="col-md-12">
<label class="form-label small text-muted mb-1">发件人邮箱</label>
<input type="email" name="mail_from_email" class="form-control form-control-sm" value="<?= htmlspecialchars(getSetting('mail_from_email', 'no-reply@yourdomain.com')) ?>">
</div>
</div>
<label class="form-label small fw-bold text-muted mb-1">邮箱备选接口配置 (可选)</label>
<textarea name="verification_api_config" class="form-control form-control-sm" rows="2" placeholder="在此填写其他验证逻辑所需的参数..."><?= htmlspecialchars(getSetting('verification_api_config', '')) ?></textarea>
</div>
<div id="mobileVerifyBox" class="mt-3 p-3 bg-white border rounded-3" style="display: <?= $mobile_verify == '1' ? 'block' : 'none' ?>;">
<h6 class="fw-bold mb-3 text-success"><i class="bi bi-phone me-1"></i> 手机短信接口配置</h6>
<label class="form-label small fw-bold text-muted mb-1">短信 API 配置内容</label>
<textarea name="mobile_api_config" class="form-control form-control-sm" rows="4" placeholder="在此填写手机短信接口的 JSON 或 Key 等配置信息..."><?= htmlspecialchars(getSetting('mobile_api_config', '')) ?></textarea>
<div class="form-text small mt-1">请填写您的短信服务商提供的 API 密钥、签名等信息。</div>
</div>
</div>
<script>
function toggleVerifyUI() {
const eBox = document.getElementById('emailVerifyBox');
const mBox = document.getElementById('mobileVerifyBox');
const eSw = document.getElementById('emailSwitch');
const mSw = document.getElementById('mobileSwitch');
eBox.style.display = eSw.checked ? 'block' : 'none';
mBox.style.display = mSw.checked ? 'block' : 'none';
}
</script>
<div class="mb-4"> <div class="mb-4">
<label class="form-label fw-bold">在线客服链接</label> <label class="form-label fw-bold">在线客服链接</label>

View File

@ -14,6 +14,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$settings_to_update = [ $settings_to_update = [
'email_verification_enabled' => $email_verify, 'email_verification_enabled' => $email_verify,
'verification_api_config' => $_POST['verification_api_config'] ?? '',
'smtp_host' => $_POST['smtp_host'] ?? '', 'smtp_host' => $_POST['smtp_host'] ?? '',
'smtp_port' => $_POST['smtp_port'] ?? '587', 'smtp_port' => $_POST['smtp_port'] ?? '587',
'smtp_user' => $_POST['smtp_user'] ?? '', 'smtp_user' => $_POST['smtp_user'] ?? '',
@ -74,6 +75,10 @@ ob_start();
<input class="form-check-input ms-0 me-3" type="checkbox" name="email_verification_enabled" id="email_verify" <?= $email_verify_enabled ? 'checked' : '' ?>> <input class="form-check-input ms-0 me-3" type="checkbox" name="email_verification_enabled" id="email_verify" <?= $email_verify_enabled ? 'checked' : '' ?>>
<label class="form-check-label" for="email_verify">开启邮箱/手机验证码 (注册时必须填写)</label> <label class="form-check-label" for="email_verify">开启邮箱/手机验证码 (注册时必须填写)</label>
</div> </div>
<div class="mt-3">
<label class="form-label small fw-bold text-muted">验证码接口/配置内容 (可在此填写 API Key 或提示信息)</label>
<textarea name="verification_api_config" class="form-control" rows="3" placeholder="例如:接入第三方短信接口的配置信息..."><?= htmlspecialchars(getSetting('verification_api_config', '')) ?></textarea>
</div>
<div class="form-text text-muted mt-2 small">开启后用户在注册页面必须通过验证码验证。测试环境默认验证码123456</div> <div class="form-text text-muted mt-2 small">开启后用户在注册页面必须通过验证码验证。测试环境默认验证码123456</div>
</div> </div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

View File

@ -5,6 +5,8 @@ require_once __DIR__ . '/../db/config.php';
$error = ''; $error = '';
// getSetting is defined in db/config.php // getSetting is defined in db/config.php
$email_verify_enabled = getSetting('email_verification_enabled', '0') === '1'; $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') { if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$reg_type = $_POST['reg_type'] ?? 'username'; // 'email' or 'username' $reg_type = $_POST['reg_type'] ?? 'username'; // 'email' or 'username'
@ -14,21 +16,28 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$verify_code = $_POST['verify_code'] ?? ''; $verify_code = $_POST['verify_code'] ?? '';
$agree_all = isset($_POST['agree_all']); $agree_all = isset($_POST['agree_all']);
$is_verify_enabled = ($reg_type === 'email' ? $email_verify_enabled : $mobile_verify_enabled);
if (empty($account) || empty($password)) { if (empty($account) || empty($password)) {
$error = __('fill_full_info'); $error = __('fill_full_info');
} elseif ($password !== $confirm_password) { } elseif ($password !== $confirm_password) {
$error = __('pwd_mismatch'); $error = __('pwd_mismatch');
} elseif ($email_verify_enabled && empty($verify_code)) { } elseif ($is_verify_enabled && empty($verify_code)) {
$error = __('enter_verify_code'); $error = __('enter_verify_code');
} elseif (!$agree_all) { } elseif (!$agree_all) {
$error = __('agree_terms_error'); $error = __('agree_terms_error');
} else { } else {
if ($email_verify_enabled && $verify_code !== '123456') { if ($is_verify_enabled) {
// Check session for actual code if not demo $is_universal = (!empty($universal_code) && $verify_code === $universal_code);
if (!isset($_SESSION['email_code']) || $verify_code !== $_SESSION['email_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'); $error = __('verify_code_error');
} }
} }
}
if (!$error) { if (!$error) {
try { try {
@ -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') { if (isset($_GET['action']) && $_GET['action'] === 'send_code') {
header('Content-Type: application/json'); header('Content-Type: application/json');
$email = $_GET['email'] ?? ''; $account = $_GET['account'] ?? '';
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $type = $_GET['type'] ?? 'email';
if ($type === 'email') {
if (!filter_var($account, FILTER_VALIDATE_EMAIL)) {
echo json_encode(['success' => false, 'error' => __('invalid_email')]); echo json_encode(['success' => false, 'error' => __('invalid_email')]);
exit; exit;
} }
}
$code = str_pad(mt_rand(0, 999999), 6, '0', STR_PAD_LEFT); $code = str_pad(mt_rand(0, 999999), 6, '0', STR_PAD_LEFT);
if (session_status() === PHP_SESSION_NONE) session_start(); if (session_status() === PHP_SESSION_NONE) session_start();
$_SESSION['email_code'] = $code;
if ($type === 'email') {
$_SESSION['email_code'] = $code;
require_once __DIR__ . '/../mail/MailService.php'; require_once __DIR__ . '/../mail/MailService.php';
$subject = __('verification_code') . ' - ' . __('register'); $subject = __('verification_code') . ' - ' . __('register');
$content = __('verification_code') . ": $code"; $content = __('verification_code') . ": $code";
$res = MailService::sendMail($email, $subject, $content, $content); $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]); echo json_encode(['success' => true]);
exit; exit;
@ -192,16 +211,14 @@ include __DIR__ . '/../includes/header.php';
<input type="text" name="account" id="account-input" class="form-control bg-black border-secondary text-white py-3 px-4 rounded-4" style="background: #0b0e11 !important; border-color: #2b3139 !important;" placeholder="<?= __('mobile_number') ?>" required> <input type="text" name="account" id="account-input" class="form-control bg-black border-secondary text-white py-3 px-4 rounded-4" style="background: #0b0e11 !important; border-color: #2b3139 !important;" placeholder="<?= __('mobile_number') ?>" required>
</div> </div>
<div id="verify-box" style="display: <?= $email_verify_enabled ? 'block' : 'none' ?>;"> <div id="verify-box" style="display: <?= ($email_verify_enabled || $mobile_verify_enabled) ? 'block' : 'none' ?>;">
<?php if ($email_verify_enabled): ?> <div class="mb-3" id="verify-field-box">
<div class="mb-3"> <label class="form-label text-muted small fw-bold" id="verify-label"><?= __('mobile_verify') ?></label>
<label class="form-label text-muted small fw-bold" id="verify-label"><?= __('email_verify') ?></label>
<div class="input-group"> <div class="input-group">
<input type="text" name="verify_code" class="form-control bg-black border-secondary text-white py-3 px-4 rounded-start-4" style="background: #0b0e11 !important; border-color: #2b3139 !important;"> <input type="text" name="verify_code" class="form-control bg-black border-secondary text-white py-3 px-4 rounded-start-4" style="background: #0b0e11 !important; border-color: #2b3139 !important;">
<button class="btn btn-outline-primary px-3 rounded-end-4" type="button" id="sendBtn" onclick="sendCode()"><?= __('send_code') ?></button> <button class="btn btn-outline-primary px-3 rounded-end-4" type="button" id="sendBtn" onclick="sendCode()"><?= __('send_code') ?></button>
</div> </div>
</div> </div>
<?php endif; ?>
</div> </div>
<div class="mb-3"> <div class="mb-3">
@ -238,31 +255,46 @@ function setRegType(type) {
const label = document.getElementById('account-label'); const label = document.getElementById('account-label');
const input = document.getElementById('account-input'); const input = document.getElementById('account-input');
const verifyLabel = document.getElementById('verify-label'); const verifyLabel = document.getElementById('verify-label');
const verifyBox = document.getElementById('verify-box');
const emailVerifyEnabled = <?= $email_verify_enabled ? 'true' : 'false' ?>;
const mobileVerifyEnabled = <?= $mobile_verify_enabled ? 'true' : 'false' ?>;
if (type === 'email') { if (type === 'email') {
label.innerText = '<?= __('email') ?>'; label.innerText = '<?= __('email') ?>';
input.placeholder = '<?= __('email_placeholder') ?>'; input.placeholder = '<?= __('email_placeholder') ?>';
input.type = 'email'; input.type = 'email';
if (verifyLabel) verifyLabel.innerText = '<?= __('email_verify') ?>'; if (verifyLabel) verifyLabel.innerText = '<?= __('email_verify') ?>';
verifyBox.style.display = emailVerifyEnabled ? 'block' : 'none';
} else { } else {
label.innerText = '<?= __('mobile_number') ?>'; label.innerText = '<?= __('mobile_number') ?>';
input.placeholder = '<?= __('mobile_number') ?>'; input.placeholder = '<?= __('mobile_number') ?>';
input.type = 'text'; input.type = 'text';
if (verifyLabel) verifyLabel.innerText = '<?= __('mobile_verify') ?>'; if (verifyLabel) verifyLabel.innerText = '<?= __('mobile_verify') ?>';
verifyBox.style.display = mobileVerifyEnabled ? 'block' : 'none';
} }
} }
function sendCode() { function sendCode() {
const email = document.getElementById('account-input').value; const account = document.getElementById('account-input').value;
if (!email || !email.includes('@')) { const type = document.getElementById('reg_type').value;
if (type === 'email') {
if (!account || !account.includes('@')) {
alert('<?= __('invalid_email') ?>'); alert('<?= __('invalid_email') ?>');
return; return;
} }
} else {
if (!account || account.length < 5) {
alert('<?= __('invalid_mobile') ?>');
return;
}
}
const btn = document.getElementById('sendBtn'); const btn = document.getElementById('sendBtn');
btn.disabled = true; btn.disabled = true;
fetch('?action=send_code&email=' + encodeURIComponent(email)) fetch('?action=send_code&account=' + encodeURIComponent(account) + '&type=' + type)
.then(res => res.json()) .then(res => res.json())
.then(data => { .then(data => {
if (data.success) { if (data.success) {

View File

@ -1,16 +1,9 @@
/* /*
BYRO Digital Asset Platform - Full Database Dump BYRO Digital Asset Platform - Clean Database Initializer
Date: 2026-02-20 Date: 2026-02-23
Instructions: Import this file into your MySQL/MariaDB database. 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_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!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` -- Table structure for table `admins`
-- --
DROP TABLE IF EXISTS `admins`; DROP TABLE IF EXISTS `admins`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `admins` ( CREATE TABLE `admins` (
`id` int(11) NOT NULL AUTO_INCREMENT, `id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL, `username` varchar(50) NOT NULL,
@ -39,27 +29,16 @@ CREATE TABLE `admins` (
`permissions` text DEFAULT NULL, `permissions` text DEFAULT NULL,
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
UNIQUE KEY `username` (`username`) UNIQUE KEY `username` (`username`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `admins`
--
LOCK TABLES `admins` WRITE; 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);
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 */;
UNLOCK TABLES; UNLOCK TABLES;
-- --
-- Table structure for table `binary_orders` -- Table structure for table `binary_orders`
-- --
DROP TABLE IF EXISTS `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` ( CREATE TABLE `binary_orders` (
`id` int(11) NOT NULL AUTO_INCREMENT, `id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL, `user_id` int(11) NOT NULL,
@ -76,43 +55,12 @@ CREATE TABLE `binary_orders` (
`ip_address` varchar(45) DEFAULT NULL, `ip_address` varchar(45) DEFAULT NULL,
`end_at` timestamp NULL DEFAULT NULL, `end_at` timestamp NULL DEFAULT NULL,
PRIMARY KEY (`id`) PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; ) ENGINE=InnoDB 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;
-- --
-- Table structure for table `chat_remarks` -- Table structure for table `chat_remarks`
-- --
DROP TABLE IF EXISTS `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` ( CREATE TABLE `chat_remarks` (
`id` int(11) NOT NULL AUTO_INCREMENT, `id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) DEFAULT 0, `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(), `updated_at` timestamp NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
UNIQUE KEY `user_id` (`user_id`,`ip_address`,`session_id`) UNIQUE KEY `user_id` (`user_id`,`ip_address`,`session_id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; ) ENGINE=InnoDB 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;
-- --
-- Table structure for table `chat_visitors` -- Table structure for table `chat_visitors`
-- --
DROP TABLE IF EXISTS `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` ( CREATE TABLE `chat_visitors` (
`id` int(11) NOT NULL AUTO_INCREMENT, `id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) DEFAULT 0, `user_id` int(11) DEFAULT 0,
@ -153,27 +86,12 @@ CREATE TABLE `chat_visitors` (
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
UNIQUE KEY `user_id` (`user_id`,`ip_address`), UNIQUE KEY `user_id` (`user_id`,`ip_address`),
KEY `idx_session` (`session_id`) KEY `idx_session` (`session_id`)
) ENGINE=InnoDB AUTO_INCREMENT=57 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; ) ENGINE=InnoDB 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;
-- --
-- Table structure for table `contract_orders` -- Table structure for table `contract_orders`
-- --
DROP TABLE IF EXISTS `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` ( CREATE TABLE `contract_orders` (
`id` int(11) NOT NULL AUTO_INCREMENT, `id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL, `user_id` int(11) NOT NULL,
@ -191,24 +109,11 @@ CREATE TABLE `contract_orders` (
`ip_address` varchar(45) DEFAULT NULL, `ip_address` varchar(45) DEFAULT NULL,
PRIMARY KEY (`id`) PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; ) 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` -- Table structure for table `exchange_records`
-- --
DROP TABLE IF EXISTS `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` ( CREATE TABLE `exchange_records` (
`id` int(11) NOT NULL AUTO_INCREMENT, `id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL, `user_id` int(11) NOT NULL,
@ -220,31 +125,12 @@ CREATE TABLE `exchange_records` (
`created_at` timestamp NULL DEFAULT current_timestamp(), `created_at` timestamp NULL DEFAULT current_timestamp(),
`ip_address` varchar(45) DEFAULT NULL, `ip_address` varchar(45) DEFAULT NULL,
PRIMARY KEY (`id`) PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; ) ENGINE=InnoDB 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;
-- --
-- Table structure for table `finance_requests` -- Table structure for table `finance_requests`
-- --
DROP TABLE IF EXISTS `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` ( CREATE TABLE `finance_requests` (
`id` int(11) NOT NULL AUTO_INCREMENT, `id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL, `user_id` int(11) NOT NULL,
@ -262,50 +148,12 @@ CREATE TABLE `finance_requests` (
`fiat_amount` decimal(20,2) DEFAULT NULL, `fiat_amount` decimal(20,2) DEFAULT NULL,
`fiat_currency` varchar(10) DEFAULT NULL, `fiat_currency` varchar(10) DEFAULT NULL,
PRIMARY KEY (`id`) PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=25 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; ) ENGINE=InnoDB 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;
-- --
-- Table structure for table `messages` -- Table structure for table `messages`
-- --
DROP TABLE IF EXISTS `messages`; DROP TABLE IF EXISTS `messages`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `messages` ( CREATE TABLE `messages` (
`id` int(11) NOT NULL AUTO_INCREMENT, `id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) DEFAULT NULL, `user_id` int(11) DEFAULT NULL,
@ -317,78 +165,12 @@ CREATE TABLE `messages` (
`created_at` timestamp NULL DEFAULT current_timestamp(), `created_at` timestamp NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
KEY `idx_session` (`session_id`) KEY `idx_session` (`session_id`)
) ENGINE=InnoDB AUTO_INCREMENT=59 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; ) ENGINE=InnoDB 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预计到账 USDT209.64 USDT','::1',NULL,'2026-02-18 03:21:37'),
(9,2,NULL,'user','【充值】类型法币充值金额1000 MYR预计到账 USDT209.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','用户ID05617613 申请充值金额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','用户ID05617613 申请提现金额1000.00 MYR=4.77USDT','::1',NULL,'2026-02-18 11:18:24'),
(25,2,NULL,'user','用户ID05617613 申请充值金额1000 USDT (TRC20)','::1',NULL,'2026-02-18 11:21:13'),
(26,2,NULL,'user','用户ID05617613 申请充值金额1000 SGD=746.2687USDT','::1',NULL,'2026-02-18 11:41:32'),
(28,2,NULL,'user','用户ID05617613 申请充值金额50000 MYR=12820.5128泰达币','::1',NULL,'2026-02-18 15:20:00'),
(29,2,NULL,'user','用户ID05617613 申请提现金额4000.00 USDT=4000.00 USD','::1',NULL,'2026-02-19 02:14:38'),
(30,2,NULL,'user','用户ID05617613 申请充值金额10000 CNY=1447.1780 USDT','::1',NULL,'2026-02-19 02:17:28'),
(31,2,NULL,'user','用户ID05617613 申请提现金额857.00 USDT=132337.94 JPY','::1',NULL,'2026-02-19 02:22:08'),
(32,2,NULL,'user','用户ID05617613 申请充值金额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','用户ID05617613 申请提现金额21000.00 USDT=21000.00 USD','45.201.166.50',NULL,'2026-02-19 02:42:12'),
(35,2,NULL,'user','用户ID05617613 申请充值金额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;
-- --
-- Table structure for table `price_controls` -- Table structure for table `price_controls`
-- --
DROP TABLE IF EXISTS `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` ( CREATE TABLE `price_controls` (
`id` int(11) NOT NULL AUTO_INCREMENT, `id` int(11) NOT NULL AUTO_INCREMENT,
`symbol` varchar(20) NOT NULL, `symbol` varchar(20) NOT NULL,
@ -398,24 +180,11 @@ CREATE TABLE `price_controls` (
`created_at` timestamp NULL DEFAULT current_timestamp(), `created_at` timestamp NULL DEFAULT current_timestamp(),
PRIMARY KEY (`id`) PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; ) 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` -- Table structure for table `spot_orders`
-- --
DROP TABLE IF EXISTS `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` ( CREATE TABLE `spot_orders` (
`id` int(11) NOT NULL AUTO_INCREMENT, `id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL, `user_id` int(11) NOT NULL,
@ -429,24 +198,11 @@ CREATE TABLE `spot_orders` (
`ip_address` varchar(45) DEFAULT NULL, `ip_address` varchar(45) DEFAULT NULL,
PRIMARY KEY (`id`) PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; ) 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` -- Table structure for table `staking_records`
-- --
DROP TABLE IF EXISTS `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` ( CREATE TABLE `staking_records` (
`id` int(11) NOT NULL AUTO_INCREMENT, `id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL, `user_id` int(11) NOT NULL,
@ -463,40 +219,19 @@ CREATE TABLE `staking_records` (
`last_settle_time` datetime DEFAULT NULL, `last_settle_time` datetime DEFAULT NULL,
`ip_address` varchar(45) DEFAULT NULL, `ip_address` varchar(45) DEFAULT NULL,
PRIMARY KEY (`id`) PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; ) ENGINE=InnoDB 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;
-- --
-- Table structure for table `system_settings` -- Table structure for table `system_settings`
-- --
DROP TABLE IF EXISTS `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` ( CREATE TABLE `system_settings` (
`setting_key` varchar(50) NOT NULL, `setting_key` varchar(50) NOT NULL,
`setting_value` text DEFAULT NULL, `setting_value` text DEFAULT NULL,
PRIMARY KEY (`setting_key`) PRIMARY KEY (`setting_key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; ) 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; LOCK TABLES `system_settings` WRITE;
/*!40000 ALTER TABLE `system_settings` DISABLE KEYS */;
INSERT INTO `system_settings` VALUES INSERT INTO `system_settings` VALUES
('android_download_url','/downloads/byro.apk'), ('android_download_url','/downloads/byro.apk'),
('apk_download_url','/downloads/byro.apk'), ('apk_download_url','/downloads/byro.apk'),
@ -518,16 +253,12 @@ INSERT INTO `system_settings` VALUES
('usdt_protocol','TRC20'), ('usdt_protocol','TRC20'),
('usdt_recharge_address',''), ('usdt_recharge_address',''),
('usdt_trc20_address','TYv9V5J1P1eEwz7y3WqJg9M2yv7f7xXv3x'); ('usdt_trc20_address','TYv9V5J1P1eEwz7y3WqJg9M2yv7f7xXv3x');
/*!40000 ALTER TABLE `system_settings` ENABLE KEYS */;
UNLOCK TABLES; UNLOCK TABLES;
-- --
-- Table structure for table `transactions` -- Table structure for table `transactions`
-- --
DROP TABLE IF EXISTS `transactions`; DROP TABLE IF EXISTS `transactions`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `transactions` ( CREATE TABLE `transactions` (
`id` int(11) NOT NULL AUTO_INCREMENT, `id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL, `user_id` int(11) NOT NULL,
@ -538,75 +269,12 @@ CREATE TABLE `transactions` (
`created_at` timestamp NULL DEFAULT current_timestamp(), `created_at` timestamp NULL DEFAULT current_timestamp(),
`ip_address` varchar(45) DEFAULT NULL, `ip_address` varchar(45) DEFAULT NULL,
PRIMARY KEY (`id`) PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=50 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; ) ENGINE=InnoDB 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;
-- --
-- Table structure for table `user_balances` -- Table structure for table `user_balances`
-- --
DROP TABLE IF EXISTS `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` ( CREATE TABLE `user_balances` (
`id` int(11) NOT NULL AUTO_INCREMENT, `id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL, `user_id` int(11) NOT NULL,
@ -615,29 +283,12 @@ CREATE TABLE `user_balances` (
`frozen` decimal(20,8) DEFAULT 0.00000000, `frozen` decimal(20,8) DEFAULT 0.00000000,
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
UNIQUE KEY `user_id` (`user_id`,`symbol`) UNIQUE KEY `user_id` (`user_id`,`symbol`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; ) ENGINE=InnoDB 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;
-- --
-- Table structure for table `users` -- Table structure for table `users`
-- --
DROP TABLE IF EXISTS `users`; DROP TABLE IF EXISTS `users`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8mb4 */;
CREATE TABLE `users` ( CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT, `id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(50) DEFAULT NULL, `username` varchar(50) DEFAULT NULL,
@ -667,21 +318,9 @@ CREATE TABLE `users` (
UNIQUE KEY `username` (`username`), UNIQUE KEY `username` (`username`),
UNIQUE KEY `email` (`email`), UNIQUE KEY `email` (`email`),
UNIQUE KEY `uid` (`uid`) UNIQUE KEY `uid` (`uid`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- 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 */; /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; /*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_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 CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2026-02-20 7:10:01

View File

@ -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}

View File

@ -56,6 +56,7 @@ $translations = [
'resend' => '重新发送', 'resend' => '重新发送',
'send_failed' => '发送失败', 'send_failed' => '发送失败',
'invalid_email' => '无效的邮箱地址', 'invalid_email' => '无效的邮箱地址',
'invalid_mobile' => '无效的手机号码',
'congrats_won' => '恭喜你获利', 'congrats_won' => '恭喜你获利',
'sorry_lost' => '很遗憾亏损', 'sorry_lost' => '很遗憾亏损',
'trade_won' => '交易获利', 'trade_won' => '交易获利',
@ -671,6 +672,7 @@ $translations = [
'resend' => 'Resend', 'resend' => 'Resend',
'send_failed' => 'Send Failed', 'send_failed' => 'Send Failed',
'invalid_email' => 'Invalid Email', 'invalid_email' => 'Invalid Email',
'invalid_mobile' => 'Invalid Mobile Number',
'congrats_won' => 'Congrats, you won', 'congrats_won' => 'Congrats, you won',
'sorry_lost' => 'Sorry, you lost', 'sorry_lost' => 'Sorry, you lost',
'trade_won' => 'Trade Profit', 'trade_won' => 'Trade Profit',

View File

@ -206,22 +206,22 @@ $bep20_addr = $settings['usdt_bep20_address'] ?? '0x742d35Cc6634C0532925a3b844Bc
<div class="mb-4 text-center"> <div class="mb-4 text-center">
<button type="button" class="btn-close position-absolute top-0 end-0 m-3 shadow-none" data-bs-dismiss="modal"></button> <button type="button" class="btn-close position-absolute top-0 end-0 m-3 shadow-none" data-bs-dismiss="modal"></button>
<div class="d-inline-flex align-items-center gap-2 px-3 py-2 rounded-pill bg-primary bg-opacity-10 text-primary small fw-bold mb-3 border border-primary border-opacity-10" style="color: #ff4d94 !important; border-color: #ff4d94 !important;"> <div class="d-inline-flex align-items-center gap-2 px-3 py-2 rounded-pill bg-primary bg-opacity-10 text-primary small fw-bold mb-3 border border-primary border-opacity-10" style="color: #ff4d94 !important; border-color: #ff4d94 !important;">
<span class="pulse-dot-pink"></span> <span style="letter-spacing: 1px;"><?= __('waiting_allocation') ?></span> <span class="pulse-dot-pink"></span> <span style="letter-spacing: 1px;"><?= $lang === 'zh' ? '账户匹配中…' : 'Account Matching...' ?></span>
</div> </div>
<h2 class="fw-bold text-dark mb-3" style="font-size: 2rem;"><?= __('matching_account') ?></h2> <h2 class="fw-bold text-dark mb-3" style="font-size: 2rem;"><?= $lang === 'zh' ? '充值订单已生成' : 'Recharge Order Generated' ?></h2>
<p class="text-muted fw-medium mb-0" style="font-size: 15px;"> <p class="text-muted fw-medium mb-0" style="font-size: 15px; line-height: 1.6;">
<?= __('matching_desc') ?> <?= $lang === 'zh' ? '您的充值申请已成功提交,系统正在为您智能匹配本次订单的专属收款账户。<br>为保障资金安全及订单唯一性,每笔充值均采用独立账户匹配机制。<br>请您耐心等待匹配完成,请勿刷新或关闭当前页面,以免影响订单状态同步。' : 'Your recharge request has been submitted. The system is matching an exclusive receiving account for you.<br>To ensure fund security and order uniqueness, each recharge uses an independent matching mechanism.<br>Please wait patiently and do not refresh or close this page.' ?>
</p> </p>
</div> </div>
<div class="mb-4 py-4 px-4 rounded-4 border border-light shadow-sm" style="background: #fff0f5;"> <div class="mb-4 py-4 px-4 rounded-4 border border-light shadow-sm" style="background: #fff0f5;">
<div class="row align-items-center text-center"> <div class="row align-items-center text-center">
<div class="col-12 mb-3"> <div class="col-12 mb-3">
<div class="text-muted small mb-1 fw-bold"><?= __('waiting_countdown') ?></div> <div class="text-muted small mb-1 fw-bold"><?= $lang === 'zh' ? '预计匹配剩余时间' : 'Estimated Matching Time' ?></div>
<div class="display-5 fw-bold text-primary mb-0" id="modal-countdown" style="font-family: 'Monaco', 'Consolas', monospace; color: #ff4d94 !important;">30:00</div> <div class="display-5 fw-bold text-primary mb-0" id="modal-countdown" style="font-family: 'Monaco', 'Consolas', monospace; color: #ff4d94 !important;">30:00</div>
</div> </div>
<div class="col-12 border-top border-white pt-3"> <div class="col-12 border-top border-white pt-3">
<div class="text-muted small mb-2 fw-bold"><?= __('secure_channel') ?></div> <div class="text-muted small mb-2 fw-bold"><?= $lang === 'zh' ? '当前状态:账户匹配中…' : 'Current Status: Account Matching...' ?></div>
<div class="d-flex justify-content-center gap-1"> <div class="d-flex justify-content-center gap-1">
<div class="rounded-pill" style="width: 25px; height: 6px; background: #ff4d94;"></div> <div class="rounded-pill" style="width: 25px; height: 6px; background: #ff4d94;"></div>
<div class="rounded-pill" style="width: 25px; height: 6px; background: #ff4d94;"></div> <div class="rounded-pill" style="width: 25px; height: 6px; background: #ff4d94;"></div>
@ -233,25 +233,25 @@ $bep20_addr = $settings['usdt_bep20_address'] ?? '0x742d35Cc6634C0532925a3b844Bc
<div class="p-4 rounded-4 bg-light border border-light"> <div class="p-4 rounded-4 bg-light border border-light">
<h6 class="text-dark fw-bold mb-3 d-flex align-items-center gap-2"> <h6 class="text-dark fw-bold mb-3 d-flex align-items-center gap-2">
<i class="bi bi-shield-lock-fill text-primary fs-5" style="color: #ff4d94 !important;"></i> <?= __('security_tips') ?> <i class="bi bi-shield-lock-fill text-primary fs-5" style="color: #ff4d94 !important;"></i> <?= $lang === 'zh' ? '温馨提示' : 'Safety Tips' ?>
</h6> </h6>
<div class="text-muted small lh-lg"> <div class="text-muted small lh-lg">
<div class="mb-2 d-flex gap-2"> <div class="mb-2 d-flex gap-2">
<i class="bi bi-check2-circle text-primary" style="color: #ff4d94 !important;"></i> <i class="bi bi-check2-circle text-primary" style="color: #ff4d94 !important;"></i>
<span><?= __('recharge_instruction_1') ?></span> <span><?= $lang === 'zh' ? '请使用您本人实名账户进行转账。' : 'Please use your own real-name account.' ?></span>
</div> </div>
<div class="mb-2 d-flex gap-2"> <div class="mb-2 d-flex gap-2">
<i class="bi bi-check2-circle text-primary" style="color: #ff4d94 !important;"></i> <i class="bi bi-check2-circle text-primary" style="color: #ff4d94 !important;"></i>
<span><?= __('recharge_instruction_2') ?></span> <span><?= $lang === 'zh' ? '转账金额必须与订单金额一致。' : 'Transfer amount must match order.' ?></span>
</div> </div>
<div class="d-flex gap-2"> <div class="d-flex gap-2">
<i class="bi bi-check2-circle text-primary" style="color: #ff4d94 !important;"></i> <i class="bi bi-check2-circle text-primary" style="color: #ff4d94 !important;"></i>
<span><?= __('recharge_instruction_3') ?></span> <span><?= $lang === 'zh' ? '请勿关闭当前页面,系统正在为您匹配。' : 'Do not close this page, system is matching.' ?></span>
</div> </div>
</div> </div>
<div class="mt-4"> <div class="mt-4">
<button type="button" class="btn btn-primary w-100 rounded-pill py-2 fw-bold opacity-50" disabled style="background: #ff4d94 !important; border: none;"> <button type="button" class="btn btn-primary w-100 rounded-pill py-2 fw-bold opacity-50" disabled style="background: #ff4d94 !important; border: none;">
<?= __('waiting_system_allocation') ?>... <?= $lang === 'zh' ? '等待系统分配账户' : 'Waiting for allocation' ?>...
</button> </button>
</div> </div>
</div> </div>
@ -587,6 +587,7 @@ function renderRechargeUI(data) {
if (!side) return; if (!side) return;
const status = String(data.status || '0'); const status = String(data.status || '0');
const isZh = '<?= $lang ?>' === 'zh';
if (status === 'completed' || status === '3') { if (status === 'completed' || status === '3') {
setTimeout(() => finishTransferUI(), 500); setTimeout(() => finishTransferUI(), 500);
@ -598,18 +599,18 @@ function renderRechargeUI(data) {
<div class="text-center text-lg-start position-relative" style="z-index: 2;"> <div class="text-center text-lg-start position-relative" style="z-index: 2;">
<div class="mb-4 text-center"> <div class="mb-4 text-center">
<div class="d-inline-flex align-items-center gap-2 px-3 py-2 rounded-pill bg-danger bg-opacity-10 text-danger small fw-bold mb-3 border border-danger border-opacity-10"> <div class="d-inline-flex align-items-center gap-2 px-3 py-2 rounded-pill bg-danger bg-opacity-10 text-danger small fw-bold mb-3 border border-danger border-opacity-10">
<i class="bi bi-x-circle-fill"></i> <span style="letter-spacing: 1px;">审核未通过</span> <i class="bi bi-x-circle-fill"></i> <span style="letter-spacing: 1px;">${isZh ? '审核未通过' : 'Audit Failed'}</span>
</div> </div>
<h2 class="fw-bold text-dark mb-3" style="font-size: 2rem;">充值申请被拒绝</h2> <h2 class="fw-bold text-dark mb-3" style="font-size: 2rem;">${isZh ? '充值申请被拒绝' : 'Recharge Request Rejected'}</h2>
<p class="text-muted fw-medium mb-0" style="font-size: 15px;">您的充值申请未能通过审核。<br>可能由于转账信息不匹配或未收到款项。<br>如有疑问,请咨询在线客服。</p> <p class="text-muted fw-medium mb-0" style="font-size: 15px;">${isZh ? '您的充值申请未能通过审核。<br>可能由于转账信息不匹配或未收到款项。<br>如有疑问,请咨询在线客服。' : 'Your recharge request failed audit.<br>Possible mismatch in transfer info or payment not received.<br>Please contact support if you have questions.'}</p>
</div> </div>
<div class="p-4 rounded-4 bg-light border border-light"> <div class="p-4 rounded-4 bg-light border border-light">
<h6 class="text-dark fw-bold mb-3 d-flex align-items-center gap-2"><i class="bi bi-shield-exclamation text-danger"></i> 温馨提示</h6> <h6 class="text-dark fw-bold mb-3 d-flex align-items-center gap-2"><i class="bi bi-shield-exclamation text-danger"></i> ${isZh ? '温馨提示' : 'Safety Tips'}</h6>
<div class="text-muted small lh-lg"> <div class="text-muted small lh-lg">
<div class="mb-2 d-flex gap-2"><i class="bi bi-info-circle text-danger"></i> <span>请检查您的转账金额和凭证。</span></div> <div class="mb-2 d-flex gap-2"><i class="bi bi-info-circle text-danger"></i> <span>${isZh ? '请检查您的转账金额和凭证。' : 'Please check your transfer amount and receipt.'}</span></div>
<div class="d-flex gap-2"><i class="bi bi-info-circle text-danger"></i> <span>您可以重新发起充值申请。</span></div> <div class="d-flex gap-2"><i class="bi bi-info-circle text-danger"></i> <span>${isZh ? '您可以重新发起充值申请。' : 'You can initiate a new recharge request.'}</span></div>
</div> </div>
<div class="mt-4"><button type="button" class="btn btn-secondary w-100 rounded-pill py-2 fw-bold" onclick="clearRechargeState(); location.reload();">我知道了</button></div> <div class="mt-4"><button type="button" class="btn btn-secondary w-100 rounded-pill py-2 fw-bold" onclick="clearRechargeState(); location.reload();">${isZh ? '我知道了' : 'I Understand'}</button></div>
</div> </div>
</div>`; </div>`;
return; return;
@ -620,27 +621,31 @@ function renderRechargeUI(data) {
<div class="text-center text-lg-start position-relative" style="z-index: 2;"> <div class="text-center text-lg-start position-relative" style="z-index: 2;">
<div class="mb-4 text-center"> <div class="mb-4 text-center">
<div class="d-inline-flex align-items-center gap-2 px-3 py-2 rounded-pill bg-primary bg-opacity-10 text-primary small fw-bold mb-3 border border-primary border-opacity-10" style="color: #ff4d94 !important; border-color: #ff4d94 !important;"> <div class="d-inline-flex align-items-center gap-2 px-3 py-2 rounded-pill bg-primary bg-opacity-10 text-primary small fw-bold mb-3 border border-primary border-opacity-10" style="color: #ff4d94 !important; border-color: #ff4d94 !important;">
<span class="pulse-dot-pink"></span> <span style="letter-spacing: 1px;">正在为您匹配充值账户</span> <span class="pulse-dot-pink"></span> <span style="letter-spacing: 1px;">${isZh ? '账户匹配中…' : 'Account Matching...'}</span>
</div> </div>
<h2 class="fw-bold text-dark mb-3" style="font-size: 2rem;">正在为您匹配充值账户</h2> <h2 class="fw-bold text-dark mb-3" style="font-size: 2rem;">${isZh ? '充值订单已生成' : 'Recharge Order Generated'}</h2>
<p class="text-muted fw-medium mb-0" style="font-size: 15px;">系统正在为您分配专属收款账户,请耐心等待。<br>匹配成功后,页面将自动更新收款信息。<br>请勿关闭当前页面。</p> <p class="text-muted fw-medium mb-0" style="font-size: 15px; line-height: 1.6;">
${isZh ? '您的充值申请已成功提交,系统正在为您智能匹配本次订单的专属收款账户。<br>为保障资金安全及订单唯一性,每笔充值均采用独立账户匹配机制。<br>请您耐心等待匹配完成,请勿刷新或关闭当前页面,以免影响订单状态同步。' : 'Your recharge request has been submitted. The system is matching an exclusive receiving account for you.<br>To ensure fund security and order uniqueness, each recharge uses an independent matching mechanism.<br>Please wait patiently and do not refresh or close this page.'}
</p>
</div> </div>
<div class="mb-4 py-4 px-4 rounded-4 border border-light shadow-sm" style="background: #fff0f5;"> <div class="mb-4 py-4 px-4 rounded-4 border border-light shadow-sm" style="background: #fff0f5;">
<div class="row align-items-center text-center"> <div class="row align-items-center text-center">
<div class="col-12 mb-3"> <div class="col-12 mb-3">
<div class="text-muted small mb-1 fw-bold"><?= __('waiting_countdown') ?></div> <div class="text-muted small mb-1 fw-bold">${isZh ? '预计匹配剩余时间' : 'Estimated Matching Time'}</div>
<div class="display-5 fw-bold text-primary mb-0" id="modal-countdown" style="font-family: monospace; color: #ff4d94 !important;">30:00</div> <div class="display-5 fw-bold text-primary mb-0" id="modal-countdown" style="font-family: monospace; color: #ff4d94 !important;">30:00</div>
</div> </div>
<div class="col-12 border-top border-white pt-3">
<div class="text-muted small mb-2 fw-bold">${isZh ? '当前状态:账户匹配中…' : 'Current Status: Account Matching...'}</div>
</div> </div>
</div> </div>
<div class="p-4 rounded-4 bg-light border border-light"> </div>
<h6 class="text-dark fw-bold mb-3 d-flex align-items-center gap-2"><i class="bi bi-shield-lock-fill text-primary" style="color: #ff4d94 !important;"></i> <?= __('security_tips') ?></h6> <div class="p-4 rounded-4 bg-light border border-light text-start">
<h6 class="text-dark fw-bold mb-3 d-flex align-items-center gap-2"><i class="bi bi-shield-lock-fill text-primary" style="color: #ff4d94 !important;"></i> ${isZh ? '温馨提示' : 'Safety Tips'}</h6>
<div class="text-muted small lh-lg"> <div class="text-muted small lh-lg">
<div class="mb-2 d-flex gap-2"><i class="bi bi-check2-circle text-primary" style="color: #ff4d94 !important;"></i> <span><?= __('recharge_instruction_1') ?></span></div> <div class="mb-2 d-flex gap-2"><i class="bi bi-check2-circle text-primary" style="color: #ff4d94 !important;"></i> <span>${isZh ? '请使用您本人实名账户进行转账。' : 'Please use your own real-name account for transfer.'}</span></div>
<div class="mb-2 d-flex gap-2"><i class="bi bi-check2-circle text-primary" style="color: #ff4d94 !important;"></i> <span><?= __('recharge_instruction_2') ?></span></div> <div class="mb-2 d-flex gap-2"><i class="bi bi-check2-circle text-primary" style="color: #ff4d94 !important;"></i> <span>${isZh ? '转账金额必须与订单金额一致。' : 'Transfer amount must match order amount.'}</span></div>
<div class="d-flex gap-2"><i class="bi bi-check2-circle text-primary" style="color: #ff4d94 !important;"></i> <span><?= __('recharge_instruction_3') ?></span></div>
</div> </div>
<div class="mt-4"><button type="button" class="btn btn-primary w-100 rounded-pill py-2 fw-bold opacity-50" disabled style="background: #ff4d94 !important; border: none;">正在获取账户详情...</button></div> <div class="mt-4"><button type="button" class="btn btn-primary w-100 rounded-pill py-2 fw-bold opacity-50" disabled style="background: #ff4d94 !important; border: none;">${isZh ? '正在获取账户详情...' : 'Getting Account Details...'}</button></div>
</div> </div>
</div>`; </div>`;
} else if (status === 'matched' || status === '1') { } else if (status === 'matched' || status === '1') {
@ -648,22 +653,27 @@ function renderRechargeUI(data) {
<div class="text-center text-lg-start position-relative" style="z-index: 2;"> <div class="text-center text-lg-start position-relative" style="z-index: 2;">
<div class="mb-4 text-center"> <div class="mb-4 text-center">
<div class="d-inline-flex align-items-center gap-2 px-3 py-2 rounded-pill bg-success bg-opacity-10 text-success small fw-bold mb-3 border border-success border-opacity-10"> <div class="d-inline-flex align-items-center gap-2 px-3 py-2 rounded-pill bg-success bg-opacity-10 text-success small fw-bold mb-3 border border-success border-opacity-10">
<i class="bi bi-check-circle-fill text-success"></i> 匹配成功 <i class="bi bi-check-circle-fill text-success"></i> ${isZh ? '匹配成功' : 'Matched Successfully'}
</div> </div>
<h2 class="fw-bold text-dark mb-3" style="font-size: 2rem;">匹配成功</h2> <h2 class="fw-bold text-dark mb-3" style="font-size: 2rem;">${isZh ? '专属充值账户已匹配成功' : 'Exclusive Account Matched'}</h2>
<p class="text-muted fw-medium mb-0" style="font-size: 15px;">您的充值订单已匹配成功。<br>客服正在为您发送收款账户信息,请稍候。<br>页面将自动显示收款账户,请勿刷新或关闭页面。</p> <p class="text-muted fw-medium mb-0" style="font-size: 15px; line-height: 1.6;">
${isZh ? '系统已成功为您分配本次订单的专属收款账户。<br>请严格按照下方显示的账户信息及金额进行转账操作。<br>本账户仅限本次订单使用,请勿重复转账或向其他账户付款。' : 'The system has assigned an exclusive receiving account for this order.<br>Please strictly follow the account info and amount shown below for transfer.<br>This account is for this order only. Do not pay multiple times.'}
</p>
</div> </div>
<div class="mb-4 py-4 px-4 rounded-4 border border-light shadow-sm" style="background: #fff0f5;"> <div class="mb-4 py-4 px-4 rounded-4 border border-light shadow-sm" style="background: #fff0f5;">
<div class="row align-items-center text-center"> <div class="row align-items-center text-center">
<div class="col-12 mb-3"> <div class="col-12 mb-3">
<div class="text-muted small mb-1 fw-bold"><?= __('waiting_countdown') ?></div> <div class="text-muted small mb-1 fw-bold">${isZh ? '等待支付剩余时间' : 'Payment Time Remaining'}</div>
<div class="display-5 fw-bold text-primary mb-0" id="modal-countdown" style="font-family: monospace; color: #ff4d94 !important;">30:00</div> <div class="display-5 fw-bold text-primary mb-0" id="modal-countdown" style="font-family: monospace; color: #ff4d94 !important;">30:00</div>
</div> </div>
<div class="col-12 border-top border-white pt-3">
<div class="text-muted small mb-2 fw-bold">${isZh ? '当前状态:匹配成功,等待分配转账账户' : 'Status: Matched, waiting for account details'}</div>
</div>
</div> </div>
</div> </div>
<div class="p-4 rounded-4 bg-light border border-light"> <div class="p-4 rounded-4 bg-light border border-light">
<h6 class="text-dark fw-bold mb-3 d-flex align-items-center gap-2"><i class="bi bi-shield-lock-fill text-primary" style="color: #ff4d94 !important;"></i> <?= __('security_tips') ?></h6> <h6 class="text-dark fw-bold mb-3 d-flex align-items-center gap-2"><i class="bi bi-shield-lock-fill text-primary" style="color: #ff4d94 !important;"></i> ${isZh ? '温馨提示' : 'Safety Tips'}</h6>
<div class="mt-4"><button type="button" class="btn btn-primary w-100 rounded-pill py-2 fw-bold opacity-50" disabled style="background: #ff4d94 !important; border: none;">等待客服发送账户...</button></div> <div class="mt-4"><button type="button" class="btn btn-primary w-100 rounded-pill py-2 fw-bold opacity-50" disabled style="background: #ff4d94 !important; border: none;">${isZh ? '等待客服发送账户...' : 'Waiting for Account Details...'}</button></div>
</div> </div>
</div>`; </div>`;
} else if (status === 'account_sent' || status === '2') { } else if (status === 'account_sent' || status === '2') {
@ -673,74 +683,64 @@ function renderRechargeUI(data) {
side.innerHTML = ` side.innerHTML = `
<div class="text-center text-lg-start"> <div class="text-center text-lg-start">
<div class="mb-4 text-center"> <div class="mb-4 text-center">
<div class="d-inline-flex align-items-center gap-2 px-3 py-1 rounded-pill bg-success bg-opacity-10 text-success small fw-bold mb-3 border border-success border-opacity-10"><i class="bi bi-check-circle-fill text-success"></i> 账户已送达</div> <div class="d-inline-flex align-items-center gap-2 px-3 py-1 rounded-pill bg-success bg-opacity-10 text-success small fw-bold mb-3 border border-success border-opacity-10"><i class="bi bi-check-circle-fill text-success"></i> ${isZh ? '账户已送达' : 'Account Received'}</div>
<h2 class="fw-bold text-dark mb-2" style="font-size: 1.8rem;">请按照以下账户信息进行转账</h2> <h2 class="fw-bold text-dark mb-2" style="font-size: 1.8rem;">${isZh ? '转账操作说明' : 'Transfer Instructions'}</h2>
</div> </div>
<div class="mb-3 p-4 rounded-4 shadow-sm border border-light" style="background: #fff0f5;"> <div class="mb-3 p-4 rounded-4 shadow-sm border border-light" style="background: #fff0f5;">
<div class="d-flex flex-column gap-3"> <div class="d-flex flex-column gap-3">
<div class="payment-item"> <div class="payment-item">
<div class="text-muted small mb-1 fw-bold text-start"><?= __("receiving_bank") ?></div> <div class="text-muted small mb-1 fw-bold text-start">${isZh ? '收款银行' : 'Receiving Bank'}</div>
<div class="d-flex justify-content-between align-items-center gap-2"> <div class="d-flex justify-content-between align-items-center gap-2">
<div class="h6 mb-0 fw-bold text-dark text-start" style="word-break: break-all; font-size: 1.1rem;">${bank}</div> <div class="h6 mb-0 fw-bold text-dark text-start" style="word-break: break-all; font-size: 1.1rem;">${bank}</div>
<button class="btn btn-sm rounded-pill px-3 fw-bold flex-shrink-0" style="font-size: 10px; background: #ff4d94; color: white;" onclick="copyText('${bank}')"><?= __("copy") ?></button> <button class="btn btn-sm rounded-pill px-3 fw-bold flex-shrink-0" style="font-size: 10px; background: #ff4d94; color: white;" onclick="copyText('${bank}')">${isZh ? '复制' : 'Copy'}</button>
</div> </div>
</div> </div>
<div class="payment-item border-top border-white border-opacity-50 pt-2"> <div class="payment-item border-top border-white border-opacity-50 pt-2">
<div class="text-muted small mb-1 fw-bold text-start"><?= __("receiving_account") ?></div> <div class="text-muted small mb-1 fw-bold text-start">${isZh ? '收款账号' : 'Account Number'}</div>
<div class="d-flex justify-content-between align-items-center gap-2"> <div class="d-flex justify-content-between align-items-center gap-2">
<div class="h5 mb-0 fw-bold text-start" style="word-break: break-all; font-family: monospace; font-size: 1.3rem; color: #ff4d94;">${account}</div> <div class="h5 mb-0 fw-bold text-start" style="word-break: break-all; font-family: monospace; font-size: 1.3rem; color: #ff4d94;">${account}</div>
<button class="btn btn-sm rounded-pill px-3 fw-bold flex-shrink-0" style="font-size: 10px; background: #ff4d94; color: white;" onclick="copyText('${account}')"><?= __("copy") ?></button> <button class="btn btn-sm rounded-pill px-3 fw-bold flex-shrink-0" style="font-size: 10px; background: #ff4d94; color: white;" onclick="copyText('${account}')">${isZh ? '复制' : 'Copy'}</button>
</div> </div>
</div> </div>
<div class="payment-item border-top border-white border-opacity-50 pt-2"> <div class="payment-item border-top border-white border-opacity-50 pt-2">
<div class="text-muted small mb-1 fw-bold text-start"><?= __("receiving_name") ?></div> <div class="text-muted small mb-1 fw-bold text-start">${isZh ? '收款姓名' : 'Receiver Name'}</div>
<div class="d-flex justify-content-between align-items-center gap-2"> <div class="d-flex justify-content-between align-items-center gap-2">
<div class="h6 mb-0 fw-bold text-dark text-start" style="word-break: break-all; font-size: 1.1rem;">${name}</div> <div class="h6 mb-0 fw-bold text-dark text-start" style="word-break: break-all; font-size: 1.1rem;">${name}</div>
<button class="btn btn-sm rounded-pill px-3 fw-bold flex-shrink-0" style="font-size: 10px; background: #ff4d94; color: white;" onclick="copyText('${name}')"><?= __("copy") ?></button> <button class="btn btn-sm rounded-pill px-3 fw-bold flex-shrink-0" style="font-size: 10px; background: #ff4d94; color: white;" onclick="copyText('${name}')">${isZh ? '复制' : 'Copy'}</button>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<div class="mb-3 py-3 px-4 rounded-4 shadow-sm border border-light" style="background: #ffffff;"> <div class="p-4 rounded-4 bg-light border border-light text-start mb-3">
<div class="row align-items-center text-center text-lg-start"> <h6 class="text-dark fw-bold mb-3 d-flex align-items-center gap-2"><i class="bi bi-info-circle-fill text-primary" style="color: #ff4d94 !important;"></i> ${isZh ? '操作须知' : 'Operating Instructions'}</h6>
<div class="col-12 col-lg-7 mb-2 mb-lg-0"> <div class="text-muted small lh-lg">
<div class="text-muted small mb-0 fw-bold"><?= __("remaining_time") ?></div> <p class="mb-2 fw-bold text-dark">${isZh ? '为确保资金顺利到账,请注意以下事项:' : 'To ensure successful deposit, please note:'}</p>
<div class="h2 fw-bold mb-0" id="modal-countdown" style="font-family: monospace; color: #ff4d94;">--:--</div> <div class="mb-1">1️⃣ ${isZh ? '请使用您本人实名账户进行转账。' : 'Use your own real-name account.'}</div>
</div> <div class="mb-1">2️⃣ ${isZh ? '转账金额必须与订单金额完全一致,不可多转或少转。' : 'Amount must exactly match order amount.'}</div>
<div class="col-12 col-lg-5 border-start-lg border-light ps-lg-3"> <div class="mb-1">3️⃣ ${isZh ? '请勿修改订单备注信息(如系统有指定备注,请严格填写)。' : 'Do not modify order remarks (if any).'}</div>
<div class="small fw-bold" style="color: #ff4d94;"><i class="bi bi-shield-check me-1"></i><?= __("secure_pay") ?></div> <div class="mb-2">4️⃣ ${isZh ? '转账完成后,请保留转账凭证需要提交凭证平台核查。' : 'Keep transfer receipt for verification.'}</div>
<div class="text-muted" style="font-size: 10px;"><?= __("encrypted_channel") ?></div> <p class="mb-0 mt-2 text-primary fw-bold">${isZh ? '系统将在收到银行到账后自动进行匹配确认。' : 'System will auto-confirm after bank arrival.'}</p>
</div> </div>
</div> </div>
</div> <button type="button" class="btn btn-primary w-100 rounded-pill py-3 fw-bold shadow-sm" onclick="finishTransfer()" style="background: #ff4d94 !important; border: none; color: white;">${isZh ? '【完成转账】' : '[Finish Transfer]'}</button>
<div class="p-2 text-center mb-3"><p class="text-muted small fw-bold mb-0">请严格按照页面展示的收款账户信息进行转账。<br>请勿分笔转账或修改信息,转账完成后,请点击“完成转账”按钮。<br>转账完成后请提交转账凭证给在线客服,方便第一时间为您确认到账。</p></div>
<button type="button" class="btn btn-primary w-100 rounded-pill py-3 fw-bold shadow-sm" onclick="finishTransfer()" style="background: #ff4d94 !important; border: none; color: white;">【完成转账】</button>
</div>`; </div>`;
} else if (status === 'finished') { } else if (status === 'finished') {
side.innerHTML = ` side.innerHTML = `
<div class="text-center text-lg-start position-relative" style="z-index: 2;"> <div class="text-center text-lg-start position-relative" style="z-index: 2;">
<div class="mb-4 text-center"> <div class="mb-4 text-center">
<div class="d-inline-flex align-items-center gap-2 px-3 py-2 rounded-pill bg-warning bg-opacity-10 text-warning small fw-bold mb-3 border border-warning border-opacity-10"> <div class="d-inline-flex align-items-center gap-2 px-3 py-2 rounded-pill bg-warning bg-opacity-10 text-warning small fw-bold mb-3 border border-warning border-opacity-10">
<span class="pulse-dot-pink"></span> <span style="letter-spacing: 1px;">等待审核中</span> <span class="pulse-dot-pink"></span> <span style="letter-spacing: 1px;">${isZh ? '等待审核中' : 'Awaiting Review'}</span>
</div>
<h2 class="fw-bold text-dark mb-3" style="font-size: 2rem;">已提交,等待审核</h2>
<p class="text-muted fw-medium mb-0" style="font-size: 15px;">您的充值申请已成功提交,正在等待管理员核对资金。<br>审核通过后,资金将自动存入您的账户。<br>请耐心等待,通常需要 1-5 分钟。</p>
</div>
<div class="mb-4 py-4 px-4 rounded-4 border border-light shadow-sm" style="background: #fff0f5;">
<div class="row align-items-center text-center">
<div class="col-12 mb-3">
<div class="text-muted small mb-1 fw-bold">预计审核剩余时间</div>
<div class="display-6 fw-bold text-primary mb-0" style="font-family: monospace; color: #ff4d94 !important;">正在核对资金...</div>
</div>
</div> </div>
<h2 class="fw-bold text-dark mb-3" style="font-size: 2rem;">${isZh ? '已提交,等待审核' : 'Submitted, Awaiting Review'}</h2>
<p class="text-muted fw-medium mb-0" style="font-size: 15px;">${isZh ? '您的充值申请已成功提交,正在等待管理员核对资金。<br>审核通过后,资金将自动存入您的账户。<br>请耐心等待,通常需要 1-5 分钟。' : 'Your application is submitted. Waiting for admin to verify funds.<br>Funds will be deposited automatically after approval.<br>Please wait, usually takes 1-5 mins.'}</p>
</div> </div>
<div class="p-4 rounded-4 bg-light border border-light"> <div class="p-4 rounded-4 bg-light border border-light">
<h6 class="text-dark fw-bold mb-3 d-flex align-items-center gap-2"><i class="bi bi-shield-lock-fill text-primary" style="color: #ff4d94 !important;"></i> 温馨提示</h6> <h6 class="text-dark fw-bold mb-3 d-flex align-items-center gap-2"><i class="bi bi-shield-lock-fill text-primary" style="color: #ff4d94 !important;"></i> ${isZh ? '温馨提示' : 'Safety Tips'}</h6>
<div class="text-muted small lh-lg"> <div class="text-muted small lh-lg">
<div class="mb-2 d-flex gap-2"><i class="bi bi-check2-circle text-primary" style="color: #ff4d94 !important;"></i> <span>转账完成后,请务必保留转账截图凭证。</span></div> <div class="mb-2 d-flex gap-2"><i class="bi bi-check2-circle text-primary" style="color: #ff4d94 !important;"></i> <span>${isZh ? '转账完成后,请务必保留转账截图凭证。' : 'Keep your transfer screenshot/receipt.'}</span></div>
<div class="mb-2 d-flex gap-2"><i class="bi bi-check2-circle text-primary" style="color: #ff4d94 !important;"></i> <span>如有任何疑问,请联系在线客服咨询。</span></div> <div class="d-flex gap-2"><i class="bi bi-check2-circle text-primary" style="color: #ff4d94 !important;"></i> <span>${isZh ? '如有任何疑问,请联系在线客服咨询。' : 'Contact support for any questions.'}</span></div>
</div> </div>
<div class="mt-4"><button type="button" class="btn btn-secondary w-100 rounded-pill py-2 fw-bold" onclick="location.reload()">确定并返回</button></div> <div class="mt-4"><button type="button" class="btn btn-secondary w-100 rounded-pill py-2 fw-bold" onclick="location.reload()">${isZh ? '确定并返回' : 'Confirm & Back'}</button></div>
</div> </div>
</div>`; </div>`;
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB