StickerAI-Front/src/services/paymentService.ts

40 lines
1.2 KiB
TypeScript

import { TokenPack } from '../constants/tokenPacks';
export const paymentService = {
showBuyTokensPopup: (pack: TokenPack, onSuccess?: () => void) => {
// Проверяем наличие Telegram WebApp
if (!window.Telegram?.WebApp) {
console.error('Telegram WebApp не доступен');
return;
}
const webApp = window.Telegram.WebApp;
// Открываем окно оплаты Telegram
webApp.showPopup({
title: 'Покупка токенов',
message: `Вы собираетесь купить пакет "${pack.title}" за ${pack.price} Stars (${pack.priceRub} ₽)`,
buttons: [
{
type: 'ok',
text: 'Купить',
id: 'buy'
},
{
type: 'cancel',
text: 'Отмена'
}
]
}, (buttonId: string) => {
if (buttonId === 'buy') {
// Открываем встроенный платеж Telegram
webApp.openInvoice(`sticker_tokens_${pack.id}`, (status: 'paid' | 'cancelled' | 'failed' | 'pending') => {
if (status === 'paid' && onSuccess) {
onSuccess();
}
});
}
});
}
};