# 在 Next.js SaaS 中接入 Creem 支付（分步教程）

> 把 Creem 的托管结账接到 Next.js 应用：API key、商品与价格、Webhook 签名与沙箱测试。

- Author / publisher: make1day (company)
- Published: 2026-11-08
- Canonical: /blog/creem-payment-setup-tutorial
- Category: Tutorial
- Tags: Creem payment setup, Creem tutorial, Creem webhook, Next.js SaaS checkout
- Language: zh

Creem 是最接近「类 Stripe 托管结账 + 商户登记」的方案。本教程让 Next.js SaaS 通过它收真实款项。

## 1. 创建账户与 API key

在 Creem 注册，切到测试模式，创建 API key，存入 **CREEM_API_KEY**。开发期设 **CREEM_ENV=test**，沙箱往返变绿后再改为 **live**。

## 2. 创建商品与价格

在 Creem 后台为 Buyout 建一次性商品、为 Care 建周期商品。把价格 id 填入 **CREEM_PRICE_ID_PRO**（一次性 Buyout 映射到 PRO 槽、周期 Care 映射到 SCALE），若你的集成分开字段则填 **CREEM_PRICE_ID_BUYOUT** / **CREEM_PRICE_ID_CARE**。若做黑五或 MGM 促销，另建价格 id 并设 **CREEM_PRICE_ID_BUYOUT_BF** / **_MGM**；Webhook 的 plan 反推已能识别。

## 3. 配置 Webhook

把 Creem 指向你的 **/api/payments/webhook/creem** 端点，把 Webhook 密钥存入 **CREEM_WEBHOOK_SECRET**。集成会在信任每个事件前验证签名。结账事件通过商品 / 价格 id 反推方案并发放许可；退款或取消事件则撤消它。

## 4. 设定网关

设 **PAYMENT_PROVIDER=creem**，外加 **CREEM_API_KEY** 与 **CREEM_WEBHOOK_SECRET**。结账调用为当前方案（或促销开启时的 BF / MGM 价格 id）选取正确价格 id，并重定向到 Creem 托管结账。

## 5. 跑沙箱测试

用测试模式做一次测试购买。确认 Webhook 触发、方案被正确反推、许可 key 已签发，且测试退款能撤消许可。在往返变绿后再上线（CREEM_ENV=live 并换正式 key）。

由于 Creem、Waffo、Stripe、PayPal、Lemon Squeezy 在 make1day 里都位于同一套结账与 Webhook 契约之后，切换供应商只是配置项——不是重写。

## FAQ

### Creem 是商户登记（MoR）吗？

是——Creem 替你处理销售税 / VAT 与合规，这正是其费率高于裸处理器的原因。请以 Creem 定价页的当前费率为准。

### 需要验证 Creem Webhook 签名吗？

需要。集成对每个事件都用 CREEM_WEBHOOK_SECRET 验证。跳过会让任何人伪造已支付事件。

### 退款会怎样？

Webhook 收到取消 / 退款事件后会撤消许可，使退款客户无法继续访问。

---

Source: make1day. See /llms.txt and /llms-full.txt for the full machine-readable product description.
