支付集成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对页面有更新,教程中如果截图不准(有时候我更新没那么及时),请尝试在页面中找对应步骤的关键词
如果你有港卡,那可以不用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支付设置)或.env的CREEM_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.ts 的 pricingCatalog 中配置对应的一次性购买产品与积分规则(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
- 将生成的临时域名填入
.env中的APP_URL=https://xxxx.hostc.dev - 在 Creem 控制台中将 Webhook 地址更新为
https://xxxx.hostc.dev/api/webhooks/creem - 发起一次性测试支付,验证订单生成与积分到账流程
生产环境上线
- 在 Creem 控制台中添加生产环境 Webhook URL:
https://YOUR-DOMAIN.com/api/webhooks/creem - 将 API Key 切换为生产密钥(以
creem_live_开头) - 确保服务器生产环境或后台设置已更新对应密钥
Webhook 事件说明
| 事件 | 说明 |
|---|---|
checkout.completed |
结账会话完成,用于自动完成订单并发放对应积分 |
最佳实践
- 密钥安全:严禁在前端代码暴露
CREEM_API_KEY与CREEM_WEBHOOK_SECRET。 - 签名验证:服务端对收到的 Webhook 回调严格验证
creem-signature签名。 - 幂等处理:系统底层基于订单号与事件 ID 实现幂等控制,防止重复充值积分。
