SuperAPI AI 工具集

stripe-credit-audit-trail

数据与分析

查看项目

更新于 10-15 23:41

技能介绍

用途:当任何代码路径会修改余额、积分或权益列时使用;设计对账或审计定时任务时使用;扩展退款逻辑时使用。

主要能力:1) 定义 credit_transactions 账本字段:userId、delta(带符号整数,+授予/-回收)、balanceAfter(对账基准快照)、reason(固定枚举)、referenceType + referenceId(指向来源实体)、idempotencyKey(唯一部分索引,用于去重)、metadata(jsonb 自由上下文)。2) 规定幂等键格式,需与计费实体域前缀保持一致,例如 debit:{orderId}、refund:{orderId}、debit:batch:{batchId}、refund_unused:batch:{batchId}、stripe_checkout:{sessionId}、stripe_invoice:{invoiceId}、stripe_refund:{eventId}、stripe_signup_bonus:{userId}、dispute_hold:{disputeId}、dispute_restore:{disputeId}。

使用方式:提供规范化退款辅助函数模式,一套辅助函数支持两种调用方式(pg-raw 用于 Cloudflare Workers/Node workers,Drizzle 用于 Next.js 路由处理器),SQL 以导出常量保持字节一致。示例中以 orders.amount_used 作为每单积分支出账本,退款时清零并通过 RETURNING 取回金额,在同一事务内重新计入 users.credit_balance。所有代表用户发起退款的服务、队列消费者和 worker 入口都必须调用该辅助函数,不得内联新增退款 SQL。

对账与限制:对账 cron 采用快照比较而非全量求和,取每用户最新 balance_after 与当前 credit_balance 比对,输出 drift;策略为仅告警、绝不自动修正。表落地以来没有 credit_transactions 记录的用户缺少基准,应跳过。积分扣减与入队应拆分 try/catch,返回值携带 creditsDeducted: boolean:扣减前 DB 错误时 caller 跳过退款;扣减后 DB 错误或入队失败时 caller 通过规范辅助函数退款。不得依据 order 行的 amount_used 判断是否退款,因为该值在 UPDATE 成功前已被设置,错误后读取可能为未实际提交的扣减凭空发放积分。金额、价格与平台细节暂未提供。