返回作品列表

DineSeal

餐飲 SaaS 的訂閱與產品權益流程

完成並部署訂閱流程,讓付款結果、帳號建立與產品權限能正確同步;也驗證了 8 個關鍵訂閱情境,供對外展示使用。

訂閱流程付款與產品權益已部署展示

專案概述

DineSeal 是我在 Vision Verse Interactive 全端實習期間參與的餐飲 SaaS 產品。我獨立負責訂閱與產品權益流程,讓訪客能完成訂閱、建立帳號,並以正確權限進入產品;完整流程已部署並用於對外產品展示。

問題脈絡

對訂閱產品而言,收到付款只是開始。付款結果、訂閱狀態、帳號建立、Firebase 角色資料與受保護產品存取都必須一致;任何一步不同步,都可能造成使用者已付款卻沒有權限,或沒有有效訂閱卻取得存取權。

團隊需要這條流程能在共享的已部署環境中可靠運作,以供外部展示。由於本地 webhook forwarding 難以讓每位開發者重現,hosting 與網域設定也是讓整合可展示的一部分。

範疇

我獨立負責訂閱與權益流程:訂閱與帳號狀態的資料設計、Next.js 前後端實作、Stripe 設定、付款驗證、Hasura/Firebase 整合、Render 部署與 Cloudflare 網域設定。

這是已部署的產品展示,不是已有真實付費客戶運作中的服務。

我做了什麼

流程從自訂訂閱頁開始:使用者可選擇月訂閱方案,並使用由 Stripe 管理的折扣或免費試用碼。Stripe 處理訂閱結果後,應用程式會驗證付款狀態、處理帳號開通,並透過整合 Hasura 的應用程式同步 Firebase 相關角色與存取資料。

生命週期也涵蓋取消後保留至已付款期滿、到期後限制受保護 route 與 API,以及續訂。我將整段流程公開部署,讓付款驗證、webhook、帳號處理與登入後的產品旅程可以一起驗證。

技術架構

系統以前端 Next.js 為主,Hasura 作為資料與 API 層,Firebase 處理身份與權益,Stripe 管理訂閱生命週期,Render 負責 hosting,Cloudflare 管理網域。系統需要讓付款結果、訂閱資格、帳號狀態、角色資料與受保護存取保持一致。

關鍵決策

挑戰

目前成果

已部署的產品完成 8 個關鍵訂閱與權益情境的端到端驗證:存取門檻、月訂閱、折扣與免費試用、取消、到期限制、續訂,以及 webhook/網域整合。行銷團隊將完整的付款到產品旅程用於對外產品展示。

  • 付款驗證、webhook、帳號處理與登入後產品旅程可在同一個已部署環境中驗證。
  • 支援月訂閱、Stripe 管理的折扣與免費試用、取消、到期限制及續訂。
  • 完整付款到產品旅程已用於對外產品展示。

8

端到端驗證情境

訂閱

到產品存取流程