Discourse 구독 플러그인

:discourse: 요약 Discourse Subscriptions 플러그인은 사이트 소유자가 반복 결제 및 일시불 구독을 판매하여 Discourse 인스턴스에서 특정 그룹에 대한 액세스 권한을 부여할 수 있도록 합니다.
:open_book: 설치 가이드 이 플러그인은 Discourse 코어에 번들로 제공됩니다. 플러그인을 별도로 설치할 필요가 없습니다.

Discourse Subscriptions 플러그인은 사용자가 게이트된 콘텐츠에 액세스하기 위해 지불할 수 있는 일시불 및 반복 구독을 생성할 수 있게 해줍니다. 이는 커뮤니티 호스팅 비용을 충당하는 훌륭한 방법이 될 수 있습니다.

기능

Discourse Subscriptions 플러그인은 다음 기능을 지원합니다:

상단 내비게이션에 있는 “구독” 버튼은 사이트에서 구성한 구독 목록이 표시되는 구독 페이지 /s로 이동시킵니다:

사용자가 특정 플랜의 “구독” 버튼을 클릭하면 해당 플랜의 결제 페이지가 열립니다:

사용자가 결제 상세 정보와 주소를 입력하고 “구독”을 클릭하면 “감사합니다!” 메시지가 표시되고 결제 페이지로 이동합니다:

사용자는 또한 선택한 그룹에 자동으로 추가되어 어떤 사용자가 구독했는지 쉽게 확인할 수 있으며, 해당 그룹만 볼 수 있는 카테고리에서 게이트된 콘텐츠를 제공할 수 있습니다.

용어

  • 구독(Subscription) - 구독은 커뮤니티의 콘텐츠 액세스를 제어할 수 있는 반복 결제 플랜입니다. 구독이 생성되거나 삭제되면, 구독 플랜과 연관된 사용자 그룹에 사용자가 추가되거나 제거됩니다. 구독은 제품과 플랜으로 구성됩니다.
  • 제품(Product) - Stripe의 용어로, 제품은 판매하는 것을 의미합니다. 제품에는 하나 이상의 플랜을 포함할 수 있습니다.
    • 제품에 설명을 추가하려면 "description"이라는 이름의 메타데이터 필드를 추가하고 대신 그 필드를 사용하세요. Markdown을 사용할 수 있습니다.
  • 플랜(Plan) - 플랜에는 가격, 반복 주기, 그리고 구독자가 액세스 권한을 얻는 그룹이 연관됩니다.

:police_car_light: Stripe 사설 키를 항상 안전하게 보관하고 보호하는 데 매우 주의하세요.

:warning: Discourse 인스턴스를 종료하거나 이 플러그인을 제거하거나 사이트가 오프라인 상태가 되면, 구독이 취소될 때까지 Stripe는 서비스를 위해 고객에게 계속 청구합니다.

구성

  1. 플러그인 설치 및 활성화
  2. 결제 게이트웨이(Stripe) 구성
  3. Stripe에서 Webhooks 및 이벤트 구성
  4. 관리자 > 플러그인 > 설치됨 > Subscriptions > 설정 /admin/site_settings/category/discourse_subscriptions?filter=plugin%3Adiscourse-subscriptions. 아래에 Stripe 키(공개, 비밀, 웹훅 비밀) 추가
  5. 구매를 통해 가입할 구독자용 그룹 생성
  6. 관리자 > 플러그인 > Subscriptions 아래에서 제품 및 플랜 생성
  7. 수익화!

결제 게이트웨이 설정

먼저, Stripe 결제 게이트웨이 계정이 필요합니다. 시작하려면 테스트 모드로 계정을 설정하여 실제 거래를 하지 않고 은행 계좌를 설정하지 않아도 어떻게 작동하는지 확인할 수 있습니다. 플러그인에는 테스트 모드 토글이 없으므로, 개발자 키(pk_test, sk_test로 시작)를 사용하도록 주의하세요.

Stripe 계정에서 Webhooks 및 이벤트 설정

:bomb: Webhooks는 구독 취소가 완전히 작동하도록 하는 데 필수입니다. 올바르게 구성했는지 확인하세요.

Stripe 계정이 있으면, Stripe에 웹사이트 주소를 알려야 합니다. 이렇게 하면 특정 거래에 대해 알림을 받을 수 있습니다. 이는 Stripe 대시보드의 Endpoints > URL에 입력할 수 있습니다.

Webhooks 주소: [서버 주소]/s/hooks – 여기서 [서버 주소]는 Discourse 설치 URL입니다.

또한 웹훅 URL을 통해 Stripe가 어떤 이벤트에 대해 알림을 보내야 하는지 Stripe에 알려야 합니다.

현재, Discourse Subscriptions는 다음 이벤트에 응답합니다:

  • customer.subscription.deleted
  • customer.subscription.updated
  • checkout.session.completed

플러그인 설정에 Stripe API 및 Webhook 키 추가

Stripe는 웹사이트와 통신할 수 있도록 권한이 필요합니다. 이를 위해 Stripe는 사설 및 공개 API 키 쌍과 웹훅용 서명 비밀키를 게시합니다.

웹훅을 인증하려면, Stripe의 API 키와 웹훅 비밀키를 설정 페이지(Developers 아래)에 추가하세요.

:warning: 프로덕션 키를 추가하면 실제 결제가 발생합니다. 테스트할 계획이라면 View test data 모드로 전환하고 Developers 아래에서 pk_testsk_test 키를 가져오세요.

Stripe 계정 설정에서 다음을 확인하세요:

이 키를 관리자 > 플러그인 > 설치됨 > Subscriptions > 설정 /admin/site_settings/category/discourse_subscriptions?filter=plugin%3Adiscourse-subscriptions.의 적절한 설정에 추가하세요.

Discourse에서 사용자 그룹 설정

사용자가 Discourse 애플리케이션에 성공적으로 구독하면, 신용카드 거래가 처리된 후 사용자 그룹에 추가됩니다. 사용자를 사용자 그룹에 지정하면 웹사이트에서 사용자가 액세스할 수 있는 것을 관리할 수 있습니다. 사용자 그룹은 Discourse의 핵심 기능이며, 이 플러그인은 플랜과 연관된 그룹에서 사용자를 추가하고 제거하는 것 외에는 아무것도 하지 않습니다.

하나 이상의 제품 및 플랜 생성

관리자 > 플러그인 > Subscriptions에서 새 제품 추가를 클릭하세요. 제품을 저장한 후, 플랜을 추가할 수 있습니다. 플랜의 가격 및 청구 간격은 생성된 후에는 변경할 수 없다는 점을 기억하세요. 이는 구독 관리에 대한 혼란을 방지하기 위한 것입니다.

Stripe 대시보드를 살펴보면, 모든 제품과 플랜이 나열되어 있는 것을 볼 수 있습니다. Discourse Subscriptions는 이를 로컬에 생성하지 않습니다. Stripe에서 생성됩니다.

테스트

다음 신용카드 번호로 테스트하세요:

  • 4242 4242 4242 4242
  • 4111 1111 1111 1111 (인증 불필요)
  • 4000 0027 6000 3184 (인증 필요)

더 많은 테스트 카드 번호: Test card numbers | Stripe Documentation

/s를 방문하고 몇 가지 테스트 거래를 입력하세요.

라이브 전환

라이브 전환 준비가 되면, API 및 웹훅 비밀키를 프로덕션 키로 변경하세요. 라이브 모드로 새 제품과 플랜을 생성해야 합니다.

Stripe 웹훅을 올바르게 구성하지 않으면, 반복 결제가 어떤 이유(만료된 신용카드 등)로든 처리되지 않더라도 사용자는 여전히 그룹에 액세스 권한이 있음을 알아두세요. Stripe가 자동으로 구독을 취소하도록 하려면, Manage failed payments 설정을 아래 이미지와 유사하게 설정하고 위에서 설명한 대로 웹훅을 구성하세요.

결제 정보 업데이트

사용자는 결제 페이지를 방문하고 구독 옆의 편집 버튼을 클릭하여 개별 구독에 사용된 카드를 업데이트할 수 있으며, 이 화면이 열립니다:

Stripe Pricing Tables과 함께 Stripe Checkout

구독 플러그인의 제품 및 체크아웃 페이지를 대신하여 Stripe CheckoutStripe Pricing Tables를 사용하도록 선택할 수도 있습니다.

Stripe 대시보드에서:

  1. Discourse에서 제품을 생성한 후, Products > Product catalog로 이동
  2. 가격 테이블에 포함하려는 제품을 클릭
  3. Edit product 클릭
  4. More Options를 클릭하고 Metadata 아래에 다음을 입력:
    • Key: group_name
    • Value: Discourse의 그룹 이름 (예: trust_level_0)
  5. 저장하려면 Update product 클릭

:red_exclamation_mark: 그룹 이름이 Discourse의 User_Groups에서 선택된 그룹과 일치하는지 확인하세요

Stripe 가격 테이블 생성

  1. Products > Pricing tables로 이동
  2. 새 테이블을 생성하고 방금 만든 제품을 추가
  3. 테이블을 게시한 후, 임베드 코드 내에서 가격 테이블 ID를 복사( prctbl_...로 시작)
  4. 가격 테이블 ID를 discourse_subscriptions_pricing_table_id에 붙여넣고 구독 가격 테이블 설정을 활성화.
  5. 두 설정을 저장하려면 녹색 체크마크를 클릭.

권장 단계:

Stripe 내에서 가격 테이블을 설정할 때, 체크아웃이 완료된 후 사용자를 사이트로 리디렉션하도록 링크하는 것이 좋습니다. 그렇지 않으면 사용자는 사이트로 돌아가는 링크가 없는 Stripe 확인 페이지에 머물러 있게 됩니다.

구독의 경우 https://<your-site>/my/billing/subscriptions로 리디렉션하는 것이 좋은 선택입니다. 일시불 결제의 경우 https://<your-site>/my/billing/payments로 직접 링크할 수 있습니다.

자동 세금 징수

자동 세금 징수를 활성화하려면 discourse_subscriptions_enable_automatic_tax 사이트 설정 상자를 선택하세요.

이를 활성화했지만 Stripe 인스턴스를 세금 징수를 위해 올바르게 구성하지 않은 경우, 체크아웃 과정을 완료한 후 사용자가 이 팝업을 볼 수 있습니다:

자세한 내용은 이 가이드를 참조할 수 있지만, 플러그인이 이제 적절한 automatic_tax[enabled]=true 매개변수를 전달하므로(단계 5) 해야 할 일은 많지 않을 것입니다.

등록 정보(단계 4)도 구성했는지 확인하세요:

세금이 자동으로 징수되었음을 보여주는 Stripe의 Discourse Subscription Plugin 거래 예시입니다:

설정

이름 설명
discourse subscriptions enabled Discourse Subscriptions 플러그인을 활성화합니다.
discourse subscriptions extra nav subscribe 기본 내비게이션에 구독 버튼을 표시합니다.
discourse subscriptions public key Stripe 공개 키
discourse subscriptions secret key Stripe 비밀 키
discourse subscriptions webhook secret Stripe Webhook Secret
discourse subscriptions currency 기본 통화 코드. 구독 플랜 생성 시 덮어쓸 수 있습니다.
discourse subscriptions campaign enabled 이 커뮤니티를 재정적으로 지원하는 것을 홍보하는 캠페인 배너를 활성화합니다.
discourse subscriptions campaign goal 지원 캠페인의 수치 목표(구독자 수 또는 모금 금액).
discourse subscriptions campaign type 실행할 캠페인 유형을 선택합니다(구독자 수 또는 월간 모금 금액).
discourse subscriptions campaign banner location 캠페인 배너의 위치를 선택합니다(상단 또는 사이드바).
discourse subscriptions campaign banner bg image 캠페인 배너 배경으로 사용할 맞춤 이미지를 업로드합니다.
discourse subscriptions campaign banner shadow color 캠페인 배너 드롭 섀도우의 색상을 선택합니다.
discourse subscriptions campaign show contributors 구독 제품 구매자의 아바타를 표시합니다.
discourse subscriptions campaign product 캠페인에서 버튼을 클릭할 때 지원자에게 보낼 Stripe 제품 ID. 이 설정이 비어 있으면 지원자는 메인 제품 페이지로 이동합니다.
discourse subscriptions campaign grant 사용자에게 1개월 무료 구독을 부여합니다.
discourse subscriptions pricing table id 임베드 코드에서 가져온 Stripe 가격 테이블 ID
discourse subscriptions pricing table enabled Stripe 가격 테이블 사용을 활성화하고 기존 구독 페이지를 대체합니다.
discourse_subscriptions_enable_automatic_tax 판매세가 징수되는지 토글합니다. Stripe에서 일부 설정이 필요합니다.
discourse_subscriptions_enable_verbose_logging 디버깅을 돕기 위해 더 자세한 로깅을 활성화합니다. 프로덕션에서 영구적으로 활성화해 두지 마세요.

:discourse2: 우리가 호스팅을 담당하나요? 이 플러그인은 Pro, Business, Enterprise 호스팅 플랜에서 사용할 수 있습니다. Subscriptions | Discourse - Civilized Discussion

139개의 좋아요
Steady plugin for community funding
ProCourse Memberships :money_with_wings:
Group membership subscriptions with profit split
Email drip campaign
How to give unpaid users limited access without making Discourse private?
Super simple Discourse-Wordpress-membership integration
Discourse for Membership Association Members?
Please suggest a good Discourse Plugin for Membership that supports Indian Payment Gateway
Allow users to donate to pay hosting fees for a site
Login required after some days of free access
User can't repurchase a subscription product after canceling
User Card Directory
Subscription Access To Discourse
Multiple paywalls with common communication hub
Discourse Subscriptions + btcpayserver
Do I need Wordpress? Or Discourse can be my solution to ALL?
Send an invite to a user but complete their profile programmatically
Discourse subscriptions - changing price during recurring subscription
Any good Memberpress alternatives for wordpress?
Add user to group after purchase
How to move Topics in Category into their own Pinned Topic inside new Categories?
Discourse Subscriptions - user not removed from group when subscription cancelled
Discourse Subscriptions - user not removed from group when subscription cancelled
Discourse vs Skool
Subscription Access To Discourse
Tax implication of funding a forum
Discourse Unlock
Tick badge for username?
Subscription update problem
Setting up a subscription group
How would I install a cryptocurrency paywall?
Charging a membership fee
Discourse Subscriptions with Thrive Cart
Admin creating subscription for user
Plugin for charity donations?
Allow subscription of predetermined length
Link Sign Up to Subscriptions Plugin
User monetization with group access?
Discourse Category Lockdown
Allow option to open Stripe payment website
Is it possible to use the subscription plugin to limit creating topics in a category to subscribers?
Best approach to a landing page/payment front end
Managing consumable AI costs
Allow multiple ‘new topic’ drafts
Stripe iframe causes a blank page on my print layout
No 'deleted' event in Stripe?
Tell us how you manage subscriptions on Discourse
Addding a paid group who can reply to topics but not create them
Integration with WP membership Pro
Alternative sign up pathways
Control Category Visibility and Access by User Levels
Tighter integration of account-creation and subscriptions?
Does the Subscriptions plugin work with "one-off" payment pricing tables?
Subscriber group automation (Remove and Add users to specific group with subscription)
"Support Us" Banner Not Updating
Tip or Pay Button - for user post/content, does it exist already?
May I or can I monetize my forum?
May I or can I monetize my forum?
Bundling more popular plugins with Discourse core
Guest Gate Theme Component
Error loading route Caused by plugin 'discourse-subscriptions'
Embed a list of Discourse topics onto an external site
Blank page when resuming discourse app
Why doesn't Discourse hosting include the Subscriptions plugin on the Starter plan?
Hosting questions
Discourse Category Lockdown
Rebuild fails when these plugins are present
Changing excerpt length
Installing discourse for free?
Just migrated a Xenforo site to Discourse
Just migrated a Xenforo site to Discourse
Options to manage payments for paid Discourse communities
Using a plug-in to monetize my Discourse
ProCourse Memberships :money_with_wings:
UX: Add metadata to subscription page to improve SEO and link UI design
A feature request related to this plugin. Pointed questions or rewarded questions
Plugin to use Discourse for classified ads or as a job board?
Subscription Plugin not working (Error)
How to set message limits for user groups?
API POST for New User
ProCourse Memberships :money_with_wings:
Steady plugin for community funding
New customer setup
Making group joins automatic to an external pricing plan
Platform integration - videos
Any way to accept paypal or stripe payment at signup?
Looking for feedback on Discourse Subscriptons
WooCommerce Discourse Website newbie help
Switching to Discourse Subscriptions from WordPress Subscriptions
Integration with Wix.com membership to only let the paid member can access to Discourse
2020: The Year in Review
Managing Subscriptions through Wordpress (Ultimate Member + Paid Memberships Pro)
How does uninstalling the Subscriptions plugin affect Stripe billing?
Memberful opinions?
Is there an E-commerce plugin for Discourse?
Memberful opinions?
Prefill custom html with user's email address?
Can't make the subscription plugin work
How to charge members for my Discourse website?
Pay or Play usage?
Latest topics on homepage with only members to read in detail?
Banner text customization for Subscriptions plugin
Subscriptions: Change User's Plan
Donation Bar for House Ad
Can I use the Subscriptions plugin on my own server?
Limiting Subscription Length
Discourse Subscriptions - use API to find out product, plan and renewal date