MuseMVP 文档
支付

Creem

配置 Creem 网关。

MuseMVP 集成了 Creem 作为支付网关之一,面向独立开发者提供无需美国实体的支付方案。通过统一的 Muse Billing 模块,与 Stripe 共用同一套业务逻辑与数据库表。本文介绍如何配置 Creem 网关并了解其工作原理。

获取 Creem API 密钥

Creem Dashboard 获取 API 密钥。把 API 密钥和环境(sandboxproduction)填入 后台 → 运行时设置/app/admin/settings),不要写进 .env

Creem

密钥安全

网关凭证加密落库。切勿暴露到前端或版本库。

获取 Creem Webhook 密钥

Creem

Creem

在 Creem Dashboard 创建 Webhook,将回调地址设为:

https://example.com/api/muse-billing/notify/muse_creem

选择需要监听的事件类型(或全部):

  • checkout.completed
  • subscription.active
  • subscription.canceled
  • subscription.updated

Creem

得到 Webhook 密钥后填入 后台 → 运行时设置。保存后请在 Creem 侧确认同一份 secret 仍然匹配。

密钥安全

Webhook secret 加密落库。与 Creem 不一致会导致全部 webhook 被拒绝。

创建产品并得到产品 ID

结账产品 ID 存在 后台 → 运行时设置billing.productMap)。公开定价页使用稳定套餐 ID(pro_monthlypro_yearlylifetime)。

Creem

在 Creem Dashboard 创建对应产品后,把产品 ID 填入后台产品映射。

本地开发测试

下载 Ngrok

Ngrok下载(https://dashboard.ngrok.com/get-started/setup/windows)是反向代理工具,用于将本地开发服务器暴露到公网。

Ngrok

运行

ngrok http 3000

Ngrok

回调域名

将上述终端域名填向上述 Webhook 中的回调地址

切换到沙盒环境

确保后台运行时设置里的 Creem 环境为 sandbox,并使用 Creem 提供的测试模式在 Dashboard 中进行支付测试。

测试模式

Creem 沙盒环境下的支付不会产生真实扣款,可安全用于本地调试订阅及一次性购买流程。

工作原理解析

了解 Muse Billing 是如何将 Creem 融入系统中的。

集成文件分布

src/modules/muse-billing/lib/gateways/muse-creem-gateway.ts
src/modules/muse-billing/lib/orchestrator.ts
src/backend/api/routes/muse-billing/router.ts
文件职责
muse-creem-gateway.tsCreem 网关实现:launch、Webhook 解析、合约同步。
orchestrator.ts计费编排层:launch、customer-hub、Webhook 分发。
router.tsAPI 路由:暴露 /api/muse-billing/* 接口。

核心工作流

针对付款和获取 Customer Hub 的动作流程如下:

前端调用 POST /api/muse-billing/launch,传入 productIdgatewayId(可选,默认由 orchestrator 选择)等参数。

服务端从后台 billing.productMap 设置中解析 Creem 价格 ID。

Creem 返回 launchUrllaunchSessionId,前端跳转至 Creem 托管的结账页。

用户完成支付后,Creem 发送 Webhook,服务端校验签名并同步合约生命周期和访问区间到数据库。

当用户需要进入平台后,通过调用 POST /api/muse-billing/customer-hub 取得跳转 Creem 客户门户的链接来管理订阅或下载收据等。

相关文档

On this page