Платежи через Telegram Stars в GramIO 
Telegram Stars - виртуальная валюта для покупки цифровых товаров и услуг прямо в ботах. Это руководство покажет, как реализовать прием Stars в вашем боте на GramIO.
Обзор реализации 
1. Создание обработчика платежей 
typescript
bot.command("buy", async (context) => {
    const invoice = await context.bot.api.sendInvoice({
        chat_id: context.chat.id,
        title: "Премиум подписка",
        description: "1 месяц премиум-функций",
        payload: "sub_123",
        currency: "XTR",
        prices: [{ label: "1 Месяц", amount: 500 }], // 500 Stars = $5
    });
    return context.send("Счет создан!");
});2. Обработка pre-checkout запросов 
typescript
bot.on("pre_checkout_query", async (context) => {
    // Проверка наличия товара/услуги
    // answerPreCheckoutQuery
    return context.answer({
        ok: true,
    });
});3. Обработка успешных платежей 
typescript
bot.on("successful_payment", async (context) => {
    await context.send("Платеж получен! Доставляем товар...");
    // Логика доставки цифрового товара
});Ключевые детали реализации 
Создание инвойсов 
Кнопка оплаты 
typescript
// Подстроки "⭐" и "XTR" будут заменены на иконку Telegram Stars
const keyboard = new InlineKeyboard().pay("XTR Купить сейчас");
context.send("Премиум функции", {
    reply_markup: keyboard,
    // ... другие параметры сообщения
});Ссылка для оплаты 
ts
const link = await context.bot.api.createInvoiceLink({
    title: "Премиум подписка",
    description: "1 месяц премиум-функций",
    payload: "sub_123",
    currency: "XTR",
    subscription_period: 2592000, // 30 дней в секундах
    prices: [{ label: "1 Месяц", amount: 500 }],
});Инвойсы в inline-режиме 
ts
context.answer(
    [
        InlineQueryResult.article(
            "id-1",
            "Премиум подписка",
            InputMessageContent.invoice({
                title: "Премиум подписка",
                description: "1 месяц премиум-функций",
                payload: "sub_123",
                currency: "XTR",
                prices: [{ label: "1 Месяц", amount: 500 }],
            })
        ),
    ],
    {
        cache_time: 0,
    }
);Тестирование платежей 
Активируйте тестовый режим в конфигурации GramIO:
typescript
const bot = new Bot(process.env.BOT_TOKEN, {
    api: {
        useTest: true, // Используем тестовое окружение Telegram
    },
});Обработка возвратов 
Реализация возврата средств:
typescript
bot.command("refund", async (context) => {
    const result = await context.api.refundStarPayment({
        user_id: context.from.id,
        telegram_payment_charge_id: paymentId,
    });
});Актуальные курсы валют смотрите в официальной документации Telegram