Как создать Discord-бота с пейволом и Stripe
Discord-серверы стали большим, чем просто платформами для общения — это процветающие сообщества, которые часто предоставляют ценный контент и услуги. Поскольку владельцы серверов стремятся монетизировать свои сообщества, внедрение надежной системы пейволов становится критически важным. Именно здесь на помощь приходит наш Stripe Discord-бот. Он бесплатный и с открытым исходным кодом.
В отличие от традиционных решений, таких как Donatebot.io, наш бот связывается напрямую со Stripe, устраняя комиссии посредников и обеспечивая более плавный опыт как для владельцев серверов, так и для пользователей.
Стек технологий
[
{ "name": "Node.js", "version": "v16+" },
{ "name": "PostgreSQL", "version": "v13+" },
{ "name": "Discord.js", "version": "latest" },
{ "name": "Stripe API", "version": "latest" },
{ "name": "TypeORM", "version": "latest" },
{ "name": "Sentry", "version": "latest" }
]
Возможности
Наш бесплатный бот реализует надежную систему подписки, которая обрабатывает все, от регистрации пользователей до управления подписками:
- Мгновенное назначение роли при подписке
- Система верификации email с проверкой regex
- Поддержка как периодических, так и пожизненных подписок
- Автоматические проверки статуса подписки
- Прогрессивная система напоминаний об истекающих подписках
Discord-бот выполняет ежедневные проверки для обеспечения действительности подписки и автоматически управляет ролями пользователей на основе их статуса подписки.
Удобные команды
Мы разработали интуитивно понятную систему команд, которая позволяет пользователям легко управлять своими подписками. Бот поддерживает как слэш-команды, так и традиционные текстовые команды:
// Пример реализации команды subscribe
export const commands = [
{
name: "subscribe",
description: "Подпишитесь или получите вашу активную подписку!",
options: [
{
name: "email",
description: "Ваш email адрес",
type: ApplicationCommandOptionType.String,
required: false
}
]
}
];
Система команд включает:
/subscribe— Связать ваш аккаунт Discord с подпиской Stripe/status— Проверить статус вашей подписки/cancel— Отменить подписку/admin-access— Управление доступом администратора (только для админов)
Все команды ограничены каналами для поддержания порядка на сервере. Например, команды подписки можно использовать только в специально отведенных каналах.
Система верификации
Бот включает сложную систему верификации, которая запускает ежедневные проверки:
export const crons = [
'0 0 1 * * *'
];
const getExpiredEmbed = (daysLeft: 0 | 1 | 2): EmbedBuilder => {
const title = daysLeft > 0 ? 'Срок действия вашей подписки истекает' : 'Ваша подписка истекла';
const embed = new EmbedBuilder()
.setTitle(title)
.setURL(process.env.STRIPE_PAYMENT_LINK)
.setColor(process.env.EMBED_COLOR)
.setDescription(`Пожалуйста, посетите ${process.env.STRIPE_PAYMENT_LINK}, чтобы сохранить ваш эксклюзивный доступ! ${daysLeft > 0 ? `Ваша подписка истекает через ${daysLeft * 24} часа.` : ''}`);
return embed;
}
Особенности:
- Ежедневная проверка статуса подписки
- Прогрессивная система напоминаний (за 3 дня, 2 дня, 1 день до истечения)
- Автоматическое управление ролями
- Детальное логирование для админов
- Поддержка пожизненных подписок
Интеграция со Stripe
Наша прямая интеграция со Stripe обеспечивает надежную обработку платежей:
export const findSubscriptionsFromCustomerId = async (customerId: string) => {
const subscriptions = await queue.add(async () =>
await fetch(`https://api.stripe.com/v1/subscriptions?customer=${customerId}`, {
headers: {
Authorization: `Bearer ${process.env.STRIPE_API_KEY}`
}
}).json()
);
return subscriptions.data || [];
}
export const findActiveSubscriptions = (subscriptions: any[]) => {
return subscriptions.filter(sub =>
sub.status === 'active' ||
sub.status === 'trialing' ||
(sub.cancel_at && sub.current_period_end > Date.now() / 1000)
);
}
Установка
Настройка бота проста:
- Установите Node.js и PostgreSQL
- Создайте и настройте вашу базу данных
- Установите зависимости
- Соберите проект
- Настройте переменные окружения
- Разверните с помощью PM2 или вашего любимого менеджера процессов
Заключение
Наш Stripe Discord-бот предоставляет мощное, безопасное и эффективное решение для внедрения пейволов на Discord-серверах. Его прямая интеграция со Stripe, автоматизированная система верификации и комплексный контроль администратора делают его идеальным выбором для владельцев серверов, желающих монетизировать свои сообщества.
Вы можете получить исходный код по этой ссылке.