返回模板

Astroship Stripe 订阅模板

SaaS 订阅入门模板,基于 Astro、Stripe、Supabase 认证和 Contentful CMS。

框架Astro
支付系统Stripe
数据库Supabase
CMSContentful
应用场景SaaS
认证系统Supabase Auth
SaaS 订阅入门模板,基于 Astro、Stripe、Supabase 认证和 Contentful CMS。

基于 Supabase 和 Stripe 的 Saas 独立站模板

模板介绍

该模板实现了一个 Saas 独立站几乎所有的常用功能,包含用户管理、订阅支付、播客内容等。 后端: Supabase + Stripe 内容 CMS: Contentful 前端: AstroJS 模板代码是开源的,您可以自行修改,采用其中的某些模块或者实现。

1. 准备工作

Supabase

本模板的订单数据和用户管理采用 Supabase 的API。

准备 API Key

注册登录 Supabase 后,创建您自己的项目。

进入项目的 Prject Settings - Data API, 复制 Project Url, Anon Public Key, Service_role Secret Key

初始化数据库

注册后在 Supabase 创建一个新的项目,将 数据库初始化文件 的内容复制到Supabase 控制台的 SQL Editor 中运行,初始化所需的数据库。

Contentful

准备 API Key

注册并登录 Contentful CMS 控制台,点击左上角 Settings - API keys,点击 Add API Key 创建一个新的API Key。 创建完成后,复制Space ID,Content Delivery API - access token,Content Preview API - access token

创建博客数据模型

安装Contentful Cli可以直接导入配置文件

也可以从控制台自行创建:

创建完数据模型之后可以自行编写对应的博客内容。

Stripe

准备 API Key

先给您的应用取一个名字,例如:my-saas-site。

注册 Stripe 账号(模板 Demo 采用的是 Stripe 的测试模式),进入控制台。

左下角 Developers - API Keys,复制 STRIPE_SECRET_KEY

再进入 Developers - WebHooks,点击 Add destination 创建一个 WebHook。

WebHooks 的 events 配置中,选择以下事件:

Endpoint URL填入${您的应用名字}.edgeone.app/stripe/webhook, 项目成功部署之后 Stripe 上创建的产品都会触发函数更新数据到 Supabase。

创建完 Webhook 之后复制 Signing secret 备用。

2. 创建应用

选择模板

点击进入部署页面,填入前面准备好的所有环境变量。 。 点击开始部署。

创建项目并等待部署完成

项目部署完成后,可以点击预览链接查看效果。

在 Stripe 上配置商品

回到 Stripe 控制台,添加您的订阅商品。 。 这里添加商品会通过前面配置的 WebHooks 触发您部署的边缘函数,更新商品数据到 Supabase 数据库,方便您更加定制化地管理订单和商品。

在 Contentful 配置 WebHook

模板的博客采用 SSG 方案,在项目编译时就生成了静态页面。 在 Contentful 配置 EdgeOne Pages 提供的 Webhooks 可以在 Contentful 的内容发生变化时自动触发重新部署以更新博客内容。 在您的项目设置页中,创建一个新的 WebHook: 复制地址到 Contentful 的 WebHooks 中:

3. 本地开发

将您的项目拉到本地之后,在本地安装 Edgeone Pages Cli。 执行edgeone login登录。 然后执行 edgeone link ${您的项目名} 关联线上配置到本地,环境变量将会被自动写入本地的.env。

配置开发环境变量

.env 文件中添加以下变量,方便 SDK 处理前后端跨域。

FRONT_END_URL_DEV=http://localhost:4321/
PUBLIC_API_URL_DEV=http://localhost:8088/
DEV=true

启动前端服务

npm run dev

启动函数服务

edgeone pages dev