MuseMVP 文档
计费与支付

Creem

配置 Creem 网关。

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

获取 Creem API 密钥

在 Creem Dashboard 获取 API 密钥,并设置 CREEM_API_KEY 以及 Creem 环境变量。

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

把 Creem webhook 密钥写入 CREEM_WEBHOOK_SECRET。

密钥安全

Webhook secret 保存在服务端环境变量中。与 Creem 不一致会导致全部 webhook 被拒绝。

创建产品并得到产品 ID

结账产品 ID 来自对应网关的 <GATEWAY>_PRODUCT_ID_<PLAN> 环境变量。公开定价页使用稳定套餐 ID。

Creem

在 Creem Dashboard 创建对应产品后,把产品 ID 填入 CREEM_PRODUCT_ID_* 环境变量。

本地开发测试

下载 Ngrok

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

Ngrok

运行

ngrok http 3000

Ngrok

回调域名

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

切换到沙盒环境

在环境变量里使用 Creem sandbox 凭证,并在 Dashboard 使用测试模式。

测试模式

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

工作原理解析

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

集成文件分布

packages/billing/src/gateways/creem/gateway.ts
src/modules/muse-billing/lib/services/launch.ts
src/backend/api/routes/muse-billing/router.ts
文件职责
creem/gateway.tsCreem 网关实现:launch、Webhook 解析、合约同步。
services/launch.ts结账编排;客户门户与 Webhook 分别在同目录 customer-hub.ts / webhook.ts。
router.tsAPI 路由:暴露 /api/muse-billing/* 接口。

核心工作流

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

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

服务端从 CREEM_PRODUCT_ID_* 环境变量解析 Creem 产品或价格 ID。

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

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

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

相关文档

本页目录