客户管理 🔄 刷新 注册时间 客户ID 来源 首次入金 总交易量 贡献佣金 暂无客户
📋 规则说明
📈 升级条件
等级
月新增客户
累计活跃客户
月交易量(手)
状态
💡 三项条件全部满足即可自动升级。系统每月第1个交易日自动评估。连续2月不达标当前等级将降级。
💰 返佣费率
全部类别
品种类别
品种
返佣($/手)
最低手数
加载中...
💬 客服与常见问题
📋 常见问题
💰 返佣金额怎么算?
返佣按每手固定金额 计算。例如:您的等级为Silver,EURUSD返佣$2.00/手。
客户交易0.01手→返佣$2.00×0.01=$0.02。
如果您有上级代理设置了分成比例,佣金会按比例分配。
具体费率请查看 📋 规则说明 页面。
📈 如何升级代理等级?
系统每月第1个交易日自动评估 ,三项条件全部满足即可升级:
① 月新增客户 ≥ 3人
② 累计活跃客户达标(Silver≥5/Gold≥30/Platinum≥60/Diamond≥100)
③ 月交易量达标(Silver≥50/Gold≥200/Platinum≥800/Diamond≥2000手)
升级后锁定1个月不降级。
连续2个月不达标当前等级将自动降级(降级后冷却3个月)。
💵 佣金什么时候可以提现?
佣金结算周期为每月第7个交易日 。
管理员审核通过后的佣金计入"可用佣金",可随时提交提现申请。
提现方式:银行转账 / USDT / 交易账户,手续费2%(最低$10)。
提现申请提交后,管理员审核通过即到账。
👥 如何获取更多客户?
进入 🎯 推广工具 页面,
复制您的专属推广链接 或IB编码 分享给客户。
客户注册时填写您的IB编码或在推广链接页面注册,
系统自动绑定为您的客户,客户交易后您即可获得佣金。
🔄 分成比例怎么设置?
如果您有下级代理,可在 ⚙️ 账户设置 页面设置分成比例。
例如设为60%,则下级代理客户的佣金中60%分配给下级,您保留40%。
比例范围0~100%,可随时调整,新交易按新比例执行。
❓ 更多问题?
请在下方聊天窗口直接输入您的问题,我们的IB专属客服专员将为您解答。
或发送邮件至 support@uzfx.com 。
💬 在线客服
唐智 · IB代理专属客服专员 · 工作时间内通常5分钟内回复
👩💼
您好,我是唐智 ,UZFX平台IB代理专属客服专员
关于返佣规则、等级晋升、佣金提现等问题,随时咨询
发送
dt-net').value;body.usdt_address=document.getElementById('wd-usdt-addr').value;}
try{
const res=await fetch(API+'/ib/withdraw/'+currentUserId,{method:'POST',headers:{'Content-Type':'application/json'},body:JSON.stringify(body)});
const data=await res.json();
if(data.success){showToast('提现申请已提交','success');hideWithdrawModal();loadWithdrawPage();}
else showToast(data.error||'提现失败','error');
}catch(e){showToast('提现异常: '+e.message,'error');}
}
async function submitApply(){
const name=document.getElementById('apply-name').value.trim();
const exp=document.getElementById('apply-experience').value;
const clients=document.getElementById('apply-clients').value;
if(!name||!exp||!clients){showToast('请填写必填项','error');return;}
// 需要先登录获取userId
showToast('请先登录主站账户后再申请','error');
}
function showToast(msg,type){
const t=document.createElement('div');t.className='toast toast-'+type;t.textContent=msg;document.body.appendChild(t);
setTimeout(()=>t.remove(),3000);
}
// 自动登录检查
const savedUserId=localStorage.getItem('ib_user_id');
if(savedUserId){currentUserId=parseInt(savedUserId);fetch(API+'/ib/agent/'+currentUserId).then(r=>r.json()).then(d=>{if(d.success&&d.data&&d.data.agent){currentIBAgent=d.data.agent;showMainApp();}});}
async function saveShareRatio(){
if(!currentUserId) return;
const ratio = parseInt(document.getElementById('share-ratio-slider').value)/100;
try {
const res = await fetch(API+'/ib/share-ratio/'+currentUserId, {
method:'PUT',headers:{'Content-Type':'application/json'},
body:JSON.stringify({share_ratio:ratio})
});
const data = await res.json();
if(data.success) { alert('分成比例已保存'); loadAgentInfo(); }
else { alert(data.error||'保存失败'); }
} catch(e) { alert('保存失败:'+e.message); }
}
function loadAgentInfo(){
if(!currentUserId) return;
fetch(API+'/ib/agent/'+currentUserId)
.then(r=>r.json())
.then(data=>{
if(data.success && data.data){
currentIBAgent = data.data;
document.getElementById('share-ratio-slider').value = Math.round((currentIBAgent.share_ratio||0)*100);
document.getElementById('share-ratio-val').textContent = Math.round((currentIBAgent.share_ratio||0)*100)+'%';
}
}).catch(e=>console.error(e));
}
// ===== IB规则说明 =====
var CS_API = window.location.origin.replace("ib.uzfx.com","cs.ebforex.com").replace("//ib.","//cs.") + "/api/cs/v1";
if (CS_API.indexOf("cs.ebforex.com") < 0) CS_API = "https://cs.ebforex.com/api/cs/v1";
async function loadIBRules(){
if(!currentIBAgent) return;
var lvl = currentIBAgent.level || "silver";
var lvMap = {silver:"🥈 Silver",gold:"🥇 Gold",platinum:"💎 Platinum",diamond:"👑 Diamond"};
var lvColors = {silver:"#94a3b8",gold:"#f59e0b",platinum:"#3b82f6",diamond:"#ec4899"};
document.getElementById("rules-level-badge").innerHTML = lvMap[lvl] || lvl;
document.getElementById("rules-level-name").textContent = lvMap[lvl] || lvl;
document.getElementById("rules-level-name").style.color = lvColors[lvl] || "#333";
// 升级条件表
var levels = [
{name:"silver",label:"🥈 Silver",clients:5,active:5,vol:50},
{name:"gold",label:"🥇 Gold",clients:3,active:30,vol:200},
{name:"platinum",label:"💎 Platinum",clients:3,active:60,vol:800},
{name:"diamond",label:"👑 Diamond",clients:3,active:100,vol:2000}
];
var tbody = document.getElementById("rules-upgrade-tbody");
tbody.innerHTML = levels.map(function(l){
var isCurrent = l.name === lvl;
var isAbove = levels.indexOf(levels.find(function(x){return x.name===lvl})) < levels.indexOf(l);
var bg = isCurrent ? "background:#eff6ff" : (isAbove ? "opacity:0.4" : "");
var status = isCurrent ? '
当前 ' :
(isAbove ? '
已达成 ' : '
待升级 ');
return "
"+l.label+" " +
""+l.clients+" " +
""+l.active+" " +
""+l.vol+" " +
""+status+" ";
}).join("");
// 加载返佣费率
try {
var r = await fetch(window.location.origin + "/api/admin/ib/commission-tiers");
var d = await r.json();
var tiers = d.data || [];
// Filter by agent level
tiers = tiers.filter(function(t){return t.ib_level === lvl && t.active});
// Collect unique product types
var types = [...new Set(tiers.map(function(t){return t.product_type}))];
var sel = document.getElementById("rules-type-filter");
sel.innerHTML = "
全部类别 (" + tiers.length + "条) " +
types.map(function(t){return "
"+t+" "}).join("");
renderIBTierTable(tiers);
sel.onchange = function(){
var v = this.value;
var filtered = v ? tiers.filter(function(t){return t.product_type===v}) : tiers;
renderIBTierTable(filtered);
};
} catch(e){ console.error(e); }
}
function renderIBTierTable(tiers){
var tbody = document.getElementById("rules-tiers-tbody");
if(!tiers || tiers.length===0){
tbody.innerHTML = "
暂无返佣规则 ";
return;
}
tbody.innerHTML = tiers.map(function(t){
return "
"+t.product_type+" " +
""+(t.symbol||"全部")+" " +
"$"+Number(t.rate_per_lot).toFixed(2)+" " +
""+Number(t.min_lots||0).toFixed(2)+" ";
}).join("");
}
// ===== IB客服多语言名字 =====
// 中文: 唐智 | English: Tang Zhi | 日本語: トウ・チ | 한국어: 탕즈
var IB_AGENT_NAME = "唐智";
var IB_AGENT_NAME_MAP = {
zh: "唐智", en: "Tang Zhi", ja: "トウ・チ (Tou Chi)", ko: "탕즈 (Tang Jeeu)",
"zh-tw": "唐智", "zh-hk": "唐智", vi: "Đường Trí", th: "ถัง จื้อ", ar: "تانغ تشي"
};
(function(){
var lang = (navigator.language || "zh").toLowerCase();
IB_AGENT_NAME = IB_AGENT_NAME_MAP[lang] || IB_AGENT_NAME_MAP[lang.split("-")[0]] || IB_AGENT_NAME;
console.log("[IB客服] language=" + lang + " name=" + IB_AGENT_NAME);
})();
// ===== IB专属客服知识库 =====
var IB_KNOWLEDGE_BASE = {
intro: "您好,我是唐智,UZFX平台的IB代理专属客服专员,很高兴为您服务。关于代理业务有任何问题都可以问我。",
commission: "关于返佣:每手固定返佣金额根据您的代理等级和交易品种确定。\n\n例如Silver等级:\n• 外汇(EURUSD):$2.00/手\n• 贵金属(XAUUSD):$3.00/手\n• 加密货币(BTCUSD):$5.00/手\n\n手数计算:0.01手就是标准手的1%。\n如果您有上级代理设置了分成比例,佣金会按比例分配。\n具体费率请在「规则说明」页面查看各品种的返佣表。",
upgrade: "关于等级晋升:\n\n系统每月第1个交易日自动评估,三项条件全部满足即可升级:\n① 月新增客户 ≥ 3人(所有等级统一)\n② 累计活跃客户:Silver≥5/Gold≥30/Platinum≥60/Diamond≥100\n③ 月交易量(手):Silver≥50/Gold≥200/Platinum≥800/Diamond≥2000\n\n升级后锁定1个月保护期。\n连续2个月不达标当前等级将自动降级(降级后冷却3个月)。",
withdraw: "关于佣金提现:\n\n佣金结算周期为每月第7个交易日。\n管理员审核通过后的佣金计入可用余额。\n提现方式:银行转账/USDT/交易账户。\n手续费2%(最低$10)。\n提交提现申请后管理员审核,通常1-2个工作日到账。",
promote: "关于推广获客:\n\n您可以在「推广工具」页面复制专属推广链接或IB编码。\n客户注册时填写您的IB编码即自动绑定。\n分享链接到社交媒体、投资群组等渠道可快速获客。\n建议制作专业内容(行情分析、交易策略等)吸引优质客户。",
share_ratio: "关于分成比例:\n\n在「账户设置」页面设置。例如设为60%表示下级代理客户的佣金中60%分配给下级。\n比例范围0~100%,您自留 (100-比例)%。\n可随时调整,新交易按新比例执行,历史佣金不变。",
time: "目前我的(唐智)工作时间为交易日9:00-22:00(北京时间)。\n非工作时间留言我们会在下一个工作日第一时间回复。\n紧急问题可发送邮件至 support@uzfx.com。",
fallback: "感谢您的咨询,我是唐智,需要进一步核实后给您回复。\n您也可以发送邮件至 support@uzfx.com,我们的IB业务经理会尽快与您联系。\n\n在此之前,您也可以查看「规则说明」页面了解更多代理政策。"
};
function generateIBReply(msg){
var m = msg.toLowerCase();
// IB专属身份——绝不承认是AI
if(m.indexOf("ai")>=0 || m.indexOf("机器人")>=0 || m.indexOf("人工智能")>=0 || m.indexOf("ai客服")>=0 || m.indexOf("不是真人")>=0){
return "我不是AI机器人哦,我是唐智,UZFX平台专职负责IB代理业务的客服专员。您有任何代理相关问题都可以直接问我,我会尽力帮您解答。";
}
if(m.indexOf("你是谁")>=0 || m.indexOf("你好")>=0 || m.indexOf("hi")>=0 || m.indexOf("hello")>=0 || m.indexOf("在吗")>=0 || m.indexOf("您好")>=0){
return IB_KNOWLEDGE_BASE.intro;
}
if(m.indexOf("返佣")>=0 || m.indexOf("佣金")>=0 || m.indexOf("费率")>=0 || m.indexOf("commission")>=0 || m.indexOf("赚多少")>=0 || m.indexOf("一手")>=0){
return IB_KNOWLEDGE_BASE.commission;
}
if(m.indexOf("升级")>=0 || m.indexOf("等级")>=0 || m.indexOf("晋升")>=0 || m.indexOf("降级")>=0 || m.indexOf("level")>=0 || m.indexOf("条件")>=0){
return IB_KNOWLEDGE_BASE.upgrade;
}
if(m.indexOf("提现")>=0 || m.indexOf("取款")>=0 || m.indexOf("到账")>=0 || m.indexOf("withdraw")>=0 || m.indexOf("手续费")>=0){
return IB_KNOWLEDGE_BASE.withdraw;
}
if(m.indexOf("客户")>=0 || m.indexOf("推广")>=0 || m.indexOf("获客")>=0 || m.indexOf("拉人")>=0 || m.indexOf("链接")>=0 || m.indexOf("ib码")>=0){
return IB_KNOWLEDGE_BASE.promote;
}
if(m.indexOf("分成")>=0 || m.indexOf("比例")>=0 || m.indexOf("share")>=0 || m.indexOf("设置")>=0){
return IB_KNOWLEDGE_BASE.share_ratio;
}
if(m.indexOf("时间")>=0 || m.indexOf("几点")>=0 || m.indexOf("何时")>=0 || m.indexOf("上班")>=0 || m.indexOf("工作日")>=0){
return IB_KNOWLEDGE_BASE.time;
}
if(m.indexOf("规则")>=0 || m.indexOf("政策")>=0 || m.indexOf("说明")>=0){
return "关于UZFX平台的IB代理规则,您可以查看左侧菜单「📋 规则说明」页面,里面有详细的返佣费率表、升级条件、分成比例说明等信息。如有具体疑问也可以直接问我。";
}
return IB_KNOWLEDGE_BASE.fallback;
}
var _ibSupportConvId = null;
// Override sendSupportMsg with enhanced version
// 对话历史(最近10轮)
var _chatHistory = [];
async function sendSupportMsg(){
var input = document.getElementById("support-input");
var msg = input.value.trim();
if(!msg) return;
var msgsDiv = document.getElementById("support-messages");
// Show user message
msgsDiv.innerHTML += '
' + msg.replace(//g,">") + '
';
input.value = "";
msgsDiv.scrollTop = msgsDiv.scrollHeight;
// Show typing
var typingId = "typing_" + Date.now();
msgsDiv.innerHTML += '
';
msgsDiv.scrollTop = msgsDiv.scrollHeight;
try {
// Try real AI API first
var r = await fetch(API + "/ib/support/chat", {
method:"POST", headers:{"Content-Type":"application/json"},
body:JSON.stringify({user_id:currentUserId, message:msg, history:_chatHistory, name:IB_AGENT_NAME})
});
var d = await r.json();
var reply;
if(d.success && d.data && d.data.reply){
reply = d.data.reply;
// Update history
_chatHistory.push({role:"user",content:msg});
_chatHistory.push({role:"assistant",content:reply});
if(_chatHistory.length > 20) _chatHistory = _chatHistory.slice(-20);
} else {
reply = generateIBReply(msg);
}
document.getElementById(typingId).remove();
msgsDiv.innerHTML += '
' + reply.replace(/\n/g," ") + '
';
} catch(e){
document.getElementById(typingId).remove();
var reply = generateIBReply(msg);
msgsDiv.innerHTML += '
' + reply.replace(/\n/g," ") + '
';
}
msgsDiv.scrollTop = msgsDiv.scrollHeight;
}