データダッシュボード
最近の顧客 登録日時 顧客ID ソース 取引量 貢献手数料 お客様がいません
顧客管理 🔄 更新 登録日時 顧客ID ソース 初回入金 総取引量 貢献手数料 お客様がいません
手数料管理 すべてのステータス 未決済 決済済み 時間 顧客 銘柄 ロット数 手数料率 手数料 種類 状態 手数料記録なし
出金センター 出金申請 出金履歴 申請日時 金額 方法 手数料 状態 備考 引き出し記録はありません
📋 ルール説明
📈 アップグレード条件
ランク
月間新規顧客
累計アクティブ顧客
月間取引量(ロット)
状態
💡 3つの条件をすべて満たすと自動的にアップグレードされます。システムは毎月第1営業日に自動評価します。2ヶ月連続で基準を満たさない場合、現在のレベルがダウングレードされます。
💰 リベート率
全カテゴリー
商品カテゴリー
銘柄
リベート($/ロット)
最低手数料
読み込み中...
プロモーションツール 📱 IBコード お客様が登録時にこのコードを入力することで、関連付けが行われます。
💬 カスタマーサービスとよくある質問
📋 よくある質問
💰 リベート金額の計算方法は?
返佣按1ロットあたりの固定金額 計算方法の例:あなたのランクがSilverの場合、EURUSDのリベートは1ロットあたり$2.00です。
顧客が0.01ロット取引→リベート$2.00×0.01=$0.02。
如果您有上级代理设置了分成比例,佣金会按比例分配。
具体的な手数料率は 📋 ルール説明 ページをご確認ください。
📈 代理ランクをアップグレードするには?
系统毎月最初の取引日に自動評価されます 、3つの条件すべてを満たせばアップグレードできます:
① 月新增客户 ≥ 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: "返金について:1ロットあたりの固定返金額は、お客様の代理等級と取引銘柄に基づいて決まります。\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取引日に自動評価し、3つの条件すべてを満たすと昇格します:\n① 月間新規顧客数 ≥ 3人(全等級共通)\n② 累積アクティブ顧客数:Silver≥5 / Gold≥30 / Platinum≥60 / Diamond≥100\n③ 月間取引量(ロット):Silver≥50 / Gold≥200 / Platinum≥800 / Diamond≥2000\n\n昇格後は1ヶ月の保護期間がロックされます。\n2ヶ月連続で現在の等級の基準を満たさない場合、自動的に降格されます(降格後は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;
}