Wearlo 文档
支付

支付系统概览

使用 Creem 的订阅计费和一次性购买。

概述

Wearlo 使用 Creem 进行支付处理,支持周期性订阅和一次性积分包购买。

订阅计划

在 constants/billing.ts 中配置:

计划价格积分
Starter 月付$29/月1,000/月
Starter 年付$290/年12,000/年(每月发放 1,000)
Pro 月付$99/月10,000/月
Pro 年付$990/年120,000/年(每月发放 10,000)

一次性积分包

积分包价格积分
200 积分$5200

支付流程

  1. 用户点击购买 → 前端调用 /api/payments/creem/checkout
  2. 持久化订单意图 → 服务端先冻结产品、价格和积分,再调用 Creem。200 响应包含支付链接;202 响应需轮询 /api/payments/creem/checkouts/{checkoutId}。
  3. 用户完成支付 → Creem 发送 webhook 到 /api/payments/creem/webhook
  4. Webhook 收件 → 对原始字节验证 HMAC-SHA256 签名,将加密事件与处理任务提交数据库后再确认收到。
  5. 资金 Worker → 核对供应商当前对象与规范订单,再同事务提交支付、积分账本、余额、订阅与分期变更。重复投递不会重复授予;通知单独执行。

浏览器成功返回参数不代表已入账。创建结果未知的订单保留供对账,不重复创建。退款、争议和无法证明的历史订单进入审核。

年付订阅分期发放

年付计划不会一次性发放所有积分,而是按月分期:

  • 购买年付计划 → 立即发放第一个月积分
  • 剩余 11 个月 → 计划存储在 subscriptionCreditSchedule 表中
  • 定时任务(/api/cron/subscription-grants)每小时运行,处理到期的积分发放

测试

使用 CREEM_MODE="test"、对应测试产品与 CREEM_API_BASE="https://test-api.creem.io",配置独立的 WARDROBE_PAYMENT_INBOX_KEY(64 位 hex)和 HTTPS 应用 origin。CREEM_SIMULATE=true 会被拒绝。合成供应商测试覆盖故障且不请求真实商户;真实测试模式支付仍需单独完成发布验证。

数据库迁移和配置审核完成后再启动资金 Worker。Webhook 收件本身不会执行积分授予或发送通知。

On this page