支付集成New

项目中关于Creem支付相关配置

Created: 08/29/2026
Updated: 08/31/2026

写在前面:

2026-04-12 在陪跑中发现Creem 不开放注册了(Creem 「邀请制 + 排队」模式),邀请才能注册使用(我不是活跃Creem商家所以不能邀请),可以去闲鱼找找解法或者试试下面直接发邮件给Creem:

We are building a SaaS product targeting global users.
Currently looking for a reliable payment solution to replace Stripe.

Expected monthly volume: $3k-$10k initially
Tech stack: Next.js + Supabase

We are ready to integrate immediately once approved.

这个可以没有港卡,你可以使用Creem+Wise+国内银行卡组合的方式收钱+让钱回来闭环

Creem对页面有更新,教程中如果截图不准(有时候我更新没那么及时),请尝试在页面中找对应步骤的关键词

未办理港卡看过来,试试Creem+Wise组合

如果你有港卡,那可以不用Wise,更方便。

接入 Creem 支付

开通 Creem 商户

登录 Creem 控制台,创建一个商户

Shipany Template Pixany 默认支持订阅计划(月度/年度)与积分/一次性计划,按照以下步骤完成设置:

设置指南

按照以下步骤完成 Creem 支付对接:

1. 创建 Creem 账户

creem.io 注册并创建 Creem 账户(无需信用卡即可开启沙盒测试)。

2. 获取 API 密钥

从 Creem 控制台获取您的 API 密钥:

  • 进入 Creem 控制台 > Developers > API & Webhooks,新建 API Key
  • 复制 API 密钥(测试模式以 creem_test_ 开头,生产模式以 creem_live_ 开头)
  • 将其配置到系统后台(/admin/settings 支付设置)或 .envCREEM_API_KEY

3. 设置 Webhook

设置 Webhook 并获取签名密钥:

  • 进入 Creem 控制台 > Developers > API & Webhooks,新建 Webhook
  • 添加 Webhook 回调地址:https://YOUR-DOMAIN.com/api/webhooks/creem
  • 监听事件包括:checkout.completed
  • 保存 Webhook 并复制签名密钥,配置到 CREEM_WEBHOOK_SECRET

4. 创建一次性积分产品

在 Creem 控制台 > Commerce > Products 中创建一次性产品:

  • Starter Pack
    • 名称:Starter Pack(400 积分)
    • 计费类型:one_time
    • 价格:$9.00(USD)
    • 保存并记录产品 ID(以 prod_ 开头)
  • Standard Pack
    • 名称:Standard Pack(2,500 积分)
    • 计费类型:one_time
    • 价格:$49.00(USD)
    • 保存并记录产品 ID
  • Premium Pack
    • 名称:Premium Pack(6,000 积分)
    • 计费类型:one_time
    • 价格:$99.00(USD)
    • 保存并记录产品 ID

5. 系统配置支付与密钥

进入系统后台 /admin/settings > 支付设置,开启 Creem 并填入配置:

  • 启用 Creem:开启
  • Creem API 密钥:creem_test_...creem_live_...
  • Creem Webhook 密钥:whsec_...
  • 默认支付方式:选择 Creem

也可在 .env 中配置:

# 启用 Creem 支付提供商
PAYMENT_PROVIDER=creem

# API Key 与 Webhook Secret
CREEM_API_KEY=creem_test_...
CREEM_WEBHOOK_SECRET=...

6. 更新价格目录配置

src/config/pricing.tspricingCatalog 中配置对应的一次性购买产品与积分规则(productId 保持与 Creem 中创建的产品 ID 一致):

export const pricingCatalog: Record<string, PricingProduct> = {
  pixany_starter: {
    productId: 'pixany_starter', // 或填入 Creem 的 prod_xxx
    productName: 'Starter Pack',
    planName: 'Starter',
    description: '400 AI Credits',
    type: PaymentType.ONE_TIME,
    priceInCents: 900,
    currency: 'usd',
    credits: 400,
    creditsValidDays: 30,
  },
  pixany_standard: {
    productId: 'pixany_standard',
    productName: 'Standard Pack',
    planName: 'Standard',
    description: '2,500 AI Credits',
    type: PaymentType.ONE_TIME,
    priceInCents: 4900,
    currency: 'usd',
    credits: 2500,
    creditsValidDays: 90,
  },
  pixany_premium: {
    productId: 'pixany_premium',
    productName: 'Premium Pack',
    planName: 'Premium',
    description: '6,000 AI Credits',
    type: PaymentType.ONE_TIME,
    priceInCents: 9900,
    currency: 'usd',
    credits: 6000,
    creditsValidDays: 365,
  },
};

本地开发与测试

本地开发时,推荐使用 hostc 将本地服务暴露到公网接收 Webhook:

npx hostc
  1. 将生成的临时域名填入 .env 中的 APP_URL=https://xxxx.hostc.dev
  2. 在 Creem 控制台中将 Webhook 地址更新为 https://xxxx.hostc.dev/api/webhooks/creem
  3. 发起一次性测试支付,验证订单生成与积分到账流程

生产环境上线

  1. 在 Creem 控制台中添加生产环境 Webhook URL:https://YOUR-DOMAIN.com/api/webhooks/creem
  2. 将 API Key 切换为生产密钥(以 creem_live_ 开头)
  3. 确保服务器生产环境或后台设置已更新对应密钥

Webhook 事件说明

事件 说明
checkout.completed 结账会话完成,用于自动完成订单并发放对应积分

最佳实践

  1. 密钥安全:严禁在前端代码暴露 CREEM_API_KEYCREEM_WEBHOOK_SECRET
  2. 签名验证:服务端对收到的 Webhook 回调严格验证 creem-signature 签名。
  3. 幂等处理:系统底层基于订单号与事件 ID 实现幂等控制,防止重复充值积分。