회원 포털 및 구독 결제
멤버십은 /learn/<slug>에 위치합니다 — 구독자가 로그인하는 포털로, MailInApp 대시보드나 Firebase Auth 계정과는 완전히 분리되어 있습니다. 결제는 연결된 자신의 Stripe 계정에서 실제 Stripe 구독으로 처리되며, 상품 체크아웃이 사용하는 것과 동일한 Connect 계정을 정기 Subscriptions/Billing으로 확장한 것입니다.
포털 URL 확보하기
설정 → 멤버십 포털에서 <slug>(3~40자, 소문자·숫자·하이픈)를 확보하세요 — 발신자 프로필 핸들과 동일한 선점 및 변경 방식이며, 단지 별도의 필드일 뿐입니다. 이는 캠페인이나 멤버십을 홍보하는 다른 모든 곳에서 링크할 URL입니다. 나중에 이름을 바꿔도 기존 구독자의 접근 권한은 끊어지지 않습니다.
가격 설정하기
역시 설정 → 멤버십 포털에서 하나 이상의 구독 플랜을 추가하세요 — 이름, 정기 결제 금액, 월간 또는 연간 주기, 그리고 선택적으로 일 단위의 무료 체험 기간을 지정합니다. 각 플랜은 연결된 계정의 Stripe Price와 1:1로 매핑됩니다. 플랜은 한 번 만들면 삭제할 수 없으며(Stripe Price도 삭제할 수 없기는 마찬가지입니다) **보관(archive)**만 가능합니다 — 보관된 플랜은 공개 구독 페이지에서는 사라지지만 이미 해당 플랜을 사용 중인 사람에게는 계속 유효하므로, 보관 처리로 인해 기존 구독자가 끊기는 일은 없습니다.
구독 플로우
/learn/<slug>/subscribe?plan=<planId>는 캠페인에서 링크할 공개 페이지입니다. 버튼 블록의 링크 대상으로 지정하거나, 스튜디오에 내장된 구독하기 프리셋(제목 + 텍스트 + 버튼으로 구성되며, 스포츠팀 버티컬의 Scoreboard 프리셋과 동일하게 "새 블록 유형 없이 기존 블록을 조합"하는 형태)을 사용하세요.
방문자가 플랜을 선택하면 구독 모드의 실제 Stripe Checkout 세션을 통해 결제합니다. 완료되면 이메일을 기준으로 Subscriber 행이 새로 생성되거나 기존 행과 매칭되며, 포털로 바로 연결되는 링크가 담긴 환영 이메일이 발송됩니다.
MailInApp 계정 없이 로그인하기
구독자는 MailInApp 계정을 만드는 일이 절대 없습니다. /learn/<slug>에서의 로그인은 매직 링크 방식입니다 — 이메일을 입력하면 자신의 SMTP/브랜딩(Firebase 기본 템플릿이 아닌)을 통해 원탭 로그인 링크가 발송됩니다. 이 단계는 속도 제한이 걸려 있으며, 해당 이메일이 이미 구독 중인지 여부는 의도적으로 절대 노출하지 않습니다. 링크를 클릭하면 해당 주소의 소유자임이 증명되어 그 특정 멤버십의 포털에 로그인됩니다.
레슨 시청
레슨 재생 요청마다 요청 단위의 실시간 자격 확인이 실행됩니다 — 카운트다운이나 캘린더 엔드포인트가 사용하는 장기 서명 링크 방식이 아닙니다. 구독자가 레슨을 열 때마다 MailInApp은 단기 재생 토큰을 발급하기 전에 현재 구독 상태를 확인합니다. 접근 권한을 잃으면(구독 해지 또는 결제 연체) 다음 페이지 로드 시점이 아니라 바로 다음 요청부터 적용됩니다. 무료 미리보기로 표시된 레슨은 이 확인을 완전히 건너뛰고 포털에 접속한 누구에게나 재생됩니다.
기존 구독 관리하기
/learn/<slug>/account는 로그인한 구독자에게 결제 관리 버튼을 제공하며, 이는 MailInApp이 구독 관리 기능을 직접 구현하는 대신 Stripe 자체의 호스팅형 Customer Portal로 넘겨주는 방식입니다 — 카드 변경, 플랜 전환, 해지가 모두 가능합니다.
결제 이벤트별 동작
- 체크아웃 완료 → 구독자 행이 생성/매칭되고, 구독이 활성화되며, 포털로 연결되는 링크가 담긴 환영 이메일이 발송됩니다.
- 결제 실패 → Stripe가 자동으로 청구를 재시도하는 동안, 구독자에게 카드 업데이트를 위해
/learn/<slug>/account를 안내하는 독촉(dunning) 이메일이 발송됩니다 — MailInApp은 첫 실패만으로는 접근 권한을 바꾸지 않으며, Stripe 자체가 구독이 더 이상 활성 상태가 아니라고 보고할 때에만 바꿉니다. - 구독 해지(구독자에 의한 해지, 또는 독촉 재시도가 모두 소진된 경우) → 잠금 해제된 레슨과 라이브 세션에 대한 접근이 종료되며, 다시 가입하고 싶을 경우를 위해
/learn/<slug>/subscribe로 돌아가는 링크가 담긴 해지 이메일이 발송됩니다.
관련 페이지
- 러닝 멤버십 개요
- 강좌, 레슨 및 동영상
- 라이브 세션 및 웨비나
- 커스텀 포털 도메인 —
mailinapp.com/learn/<slug>대신 자신의 도메인에서 포털을 제공합니다 - 상품 블록 — 정기 멤버십이 아닌 1회성 구매를 원할 경우
- 발신자 프로필