diff --git a/apps/bot/src/bot/conversations/subscription.ts b/apps/bot/src/bot/conversations/subscription.ts index 6b7e8c3..701474d 100644 --- a/apps/bot/src/bot/conversations/subscription.ts +++ b/apps/bot/src/bot/conversations/subscription.ts @@ -5,6 +5,7 @@ import { formatMoney } from '@/utils/format'; import { combine } from '@/utils/messages'; import { type Conversation } from '@grammyjs/conversations'; import { fmt, i } from '@grammyjs/parse-mode'; +import { CustomersService } from '@repo/graphql/api/customers'; import { SubscriptionsService } from '@repo/graphql/api/subscriptions'; import * as GQL from '@repo/graphql/types'; import { InlineKeyboard } from 'grammy'; @@ -107,6 +108,9 @@ export async function subscription(conversation: Conversation, parse_mode: 'HTML', }); + const customerService = new CustomersService({ telegramId }); + const { customer } = await customerService.getCustomer({ telegramId }); + return ctx.replyWithInvoice( 'Оплата Pro доступа', combine( @@ -123,6 +127,27 @@ export async function subscription(conversation: Conversation, ], { protect_content: true, + provider_data: JSON.stringify({ + receipt: { + customer: { + phone: customer?.phone.replaceAll(/\D/gu, ''), + }, + items: [ + { + amount: { + currency: 'RUB', + value: selectedPrice.amount, + }, + description: selectedPrice.description || 'Pro доступ', + payment_mode: 'full_payment', + payment_subject: 'payment', + quantity: 1, + vat_code: 1, + }, + ], + tax_system_code: 1, + }, + }), provider_token: env.BOT_PROVIDER_TOKEN, start_parameter: 'get_access', },