Tutorial

Stripe로 Discord 페이월 봇을 만드는 방법

Josselin Liebe profile Josselin Liebe
게시일 2025년 3월 19일 업데이트일 2025년 8월 12일

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" }
]

기능

우리의 무료 봇은 사용자 등록부터 구독 관리까지 모든 것을 처리하는 강력한 구독 시스템을 구현합니다.

  • 구독 즉시 역할 할당
  • 정규식 유효성 검사를 통한 이메일 확인 시스템
  • 반복 및 평생 구독 모두 지원
  • 자동화된 구독 상태 확인
  • 만료되는 구독에 대한 점진적 알림 시스템

Discord 봇은 매일 확인을 수행하여 구독 유효성을 확인하고 구독 상태에 따라 사용자 역할을 자동으로 관리합니다.

사용자 친화적인 명령어

사용자가 구독을 쉽게 관리할 수 있도록 직관적인 명령어 시스템을 설계했습니다. 봇은 슬래시 명령어와 기존 메시지 명령어를 모두 지원합니다.

// subscribe 명령어 구현 예시
export const commands = [
    {
        name: "subscribe",
        description: "구독하거나 활성 구독을 청구하세요!",
        options: [
            {
                name: "email",
                description: "이메일 주소",
                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)
    );
}

설치

봇 설정은 간단합니다.

  1. Node.js 및 PostgreSQL 설치
  2. 데이터베이스 생성 및 구성
  3. 종속성 설치
  4. 프로젝트 빌드
  5. 환경 변수 구성
  6. PM2 또는 선호하는 프로세스 관리자를 사용하여 배포

결론

우리의 Stripe Discord 봇은 Discord 서버에 페이월을 구현하기 위한 강력하고 안전하며 효율적인 솔루션을 제공합니다. Stripe와의 직접 통합, 자동화된 검증 시스템 및 포괄적인 관리자 제어 기능을 통해 커뮤니티를 수익화하려는 서버 소유자에게 이상적인 선택이 됩니다.

소스 코드는 이 링크에서 얻을 수 있습니다.

열정을 수익으로 전환할 준비가 되셨나요?

이미 Sublyna로 수익을 올리고 있는 수천 명의 크리에이터와 함께하세요.
무료로 시작하기 신용 카드가 필요하지 않습니다. 설정 번거로움 없음.
Cta 이미지 여성