客戶管理 🔄 重新整理 註冊時間 客戶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;
}