40 lines
1.2 KiB
TypeScript
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();
|
|
}
|
|
});
|
|
}
|
|
});
|
|
}
|
|
};
|