fix: Старт 99₽, исправлена реферальная ссылка (полный username вместо split)
This commit is contained in:
28
app/page.tsx
28
app/page.tsx
@@ -144,8 +144,8 @@ export default function Home() {
|
||||
}
|
||||
};
|
||||
const shareReferralLink = async () => {
|
||||
// Генерируем реферальную ссылку (TODO: заменить на реальный user ID после авторизации)
|
||||
const userId = subscriptionToken?.split('_')[0] || 'DEMO';
|
||||
// Генерируем реферальную ссылку — используем полный subscriptionToken (= Marzban username)
|
||||
const userId = subscriptionToken || 'DEMO';
|
||||
const botUsername = process.env.NEXT_PUBLIC_TELEGRAM_BOT_USERNAME || 'Dorod_vps_bot';
|
||||
const referralUrl = `https://t.me/${botUsername}?start=ref_${userId}`;
|
||||
const shareText = `🚀 Попробуй Umbrix VPN - быстрый и безопасный VPN!\n\n✨ Получи 7 дней бесплатно по моей ссылке:\n${referralUrl}`;
|
||||
@@ -175,9 +175,19 @@ export default function Home() {
|
||||
const handleActivateTrial = async () => {
|
||||
setIsLoading(true);
|
||||
try {
|
||||
// Получаем referrerId из URL (если есть)
|
||||
// Получаем referrerId из URL query ИЛИ из Telegram start_param
|
||||
const urlParams = new URLSearchParams(window.location.search);
|
||||
const referrerId = urlParams.get('ref');
|
||||
let referrerId = urlParams.get('ref');
|
||||
|
||||
// Также проверяем Telegram start_param (приоритетнее)
|
||||
const telegramWebApp = (window as any).Telegram?.WebApp;
|
||||
const startParam = telegramWebApp?.initDataUnsafe?.start_param;
|
||||
if (startParam && startParam.startsWith('ref_')) {
|
||||
referrerId = startParam.replace('ref_', '');
|
||||
}
|
||||
|
||||
// Получаем реальные данные Telegram
|
||||
const tgUser = telegramWebApp?.initDataUnsafe?.user;
|
||||
|
||||
// Создаем trial подписку через API
|
||||
const response = await fetch('/api/create-user', {
|
||||
@@ -185,9 +195,9 @@ export default function Home() {
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
body: JSON.stringify({
|
||||
planType: 'trial',
|
||||
telegramId: Date.now(), // Временно, пока нет настоящего Telegram ID
|
||||
telegramUsername: 'demo_user',
|
||||
firstName: 'Demo',
|
||||
telegramId: tgUser?.id || Date.now(),
|
||||
telegramUsername: tgUser?.username || undefined,
|
||||
firstName: tgUser?.first_name || undefined,
|
||||
referrerId: referrerId || undefined,
|
||||
}),
|
||||
});
|
||||
@@ -520,13 +530,13 @@ export default function Home() {
|
||||
<ReferralModal
|
||||
isOpen={isReferralOpen}
|
||||
onClose={() => setIsReferralOpen(false)}
|
||||
referralUrl={`https://t.me/${process.env.NEXT_PUBLIC_TELEGRAM_BOT_USERNAME || 'Dorod_vps_bot'}?start=ref_${subscriptionToken?.split('_')[0] || 'DEMO'}`}
|
||||
referralUrl={`https://t.me/${process.env.NEXT_PUBLIC_TELEGRAM_BOT_USERNAME || 'Dorod_vps_bot'}?start=ref_${subscriptionToken || 'DEMO'}`}
|
||||
onShare={() => {
|
||||
shareReferralLink();
|
||||
setIsReferralOpen(false);
|
||||
}}
|
||||
onCopy={() => {
|
||||
const userId = subscriptionToken?.split('_')[0] || 'DEMO';
|
||||
const userId = subscriptionToken || 'DEMO';
|
||||
const botUsername = process.env.NEXT_PUBLIC_TELEGRAM_BOT_USERNAME || 'Dorod_vps_bot';
|
||||
const referralUrl = `https://t.me/${botUsername}?start=ref_${userId}`;
|
||||
copyToClipboard(referralUrl);
|
||||
|
||||
@@ -45,10 +45,10 @@ const PLANS: Record<PlanType, PlanConfig> = {
|
||||
maxLocations: 1,
|
||||
dataLimit: '50 ГБ',
|
||||
prices: {
|
||||
'1month': 149,
|
||||
'3months': 399, // -11% (133₽/мес)
|
||||
'6months': 719, // -20% (119₽/мес)
|
||||
'1year': 1349, // -25% (112₽/мес)
|
||||
'1month': 99,
|
||||
'3months': 269, // -9% (89₽/мес)
|
||||
'6months': 499, // -16% (83₽/мес)
|
||||
'1year': 949, // -20% (79₽/мес)
|
||||
},
|
||||
},
|
||||
plus: {
|
||||
|
||||
@@ -50,7 +50,8 @@ export default function ReferralPage() {
|
||||
return;
|
||||
}
|
||||
|
||||
const userId = token.split('_')[0];
|
||||
// subscriptionToken = Marzban username (полное имя, НЕ split по _)
|
||||
const userId = token;
|
||||
setUsername(userId);
|
||||
|
||||
// Generate referral URL
|
||||
|
||||
Reference in New Issue
Block a user