用途:为游戏实现 Stripe 支付与变现流程,包括内购、订阅、消耗品、虚拟货币、Webhook 履约、幂等与欺诈防范。
主要能力:定义商品目录(消耗品、订阅、货币包、外观)并映射 Stripe 价格 ID 与游戏奖励;创建一次性购买、订阅与货币包的 Checkout 会话并附带玩家元数据;实现 Webhook 签名验证、幂等事件处理与两阶段履约;用 BullMQ 异步发放奖励;处理退款与拒付(charge.refunded、charge.dispute.*),收回奖励并标记账号;记录审计日志并跟踪履约状态。
使用方式:先安装依赖 bun add stripe;用 boilerplate/stripe-setup.ts 初始化客户端、同步商品目录并关联 Stripe 客户与玩家;用 templates/product-catalog.ts 定义商品;用 boilerplate/checkout.ts 创建会话;用 boilerplate/webhooks.ts 处理事件并路由到 templates/webhook-events.ts 中的类型化处理器;履约任务经 BullMQ 派发。
核心原则:支付逻辑仅在服务端,价格、数量与权益不可信任客户端;所有变更使用幂等键;以 Webhook 而非结账完成回调发货;两阶段履约先记录购买再排队发奖;同时支持一次性与周期性付费;通过高级货币抽象定价;自动处理退款与拒付;做速度检查与异常购买模式等欺诈信号。
限制与前置:依赖 postgres-game-schema 与 betterauth-integration,异步履约依赖 bullmq-game-queues;不可在客户端保存 Stripe 密钥,不可跳过 Webhook 签名验证,不可忽略拒付。其余具体版本或价格信息暂未提供。