该技能面向希望在 Next.js 应用中实现“订阅套餐内含预付用量”的开发者,例如每月包含 1 万次 API 调用、100 万 token 或 500 次文档导出,并按用量扣减额度、在耗尽时限制功能。
主要能力与概念:用量余额单位(ubu_)表示客户持有余额的计量对象;计量器(mtr_)把某个动作(如 api_call)按费率关联到一个余额单位,用量事件按“数量×费率”扣减余额;循环价格上的配额(allowances)在每个计费周期授予一定数量;用量余额(ubl_)记录已用和剩余,按客户而非订阅归属,同一单位的多个订阅配额会合并;用量事件上报使用量,Paddle 即时接收并在稍后扣减余额。
使用方式:技能先要求确认计量对象、余额单位、各套餐配额、数量与费率、余额为零时的行为。随后按步骤执行:创建服务端 API 辅助函数(沙箱与生产使用不同 base URL);调用 GET /meters 检查账号是否在早期访问计划内,并按错误码区分权限或认证问题;创建余额单位、计量器和带配额的价格(配额的交易价格不能有试用期,每个价格最多 20 个配额);正常发起结账,订阅创建后由后台任务以退避方式确认用量余额;用量通过 outbox 表记录并在同一数据库事务中写入,由 worker 逐条发送事件,对网络错误、5xx、429 和 internal_error 使用相同 event_key 重试,其他拒绝标记失败;缓存余额以避免每次请求都调用 Paddle。
适用场景:需要按用量扣减配额的订阅业务,如 API 调用、token 消耗、导出次数等,并希望在余额耗尽时由应用控制功能可用性。
限制与注意事项:用量计费处于早期访问(beta),仅早期访问计划账号可用,字段与行为可能变化;Paddle MCP 服务器在 beta 期间不包含用量计费操作,Node SDK 尚不支持计量器、用量事件和配额,必须使用 fetch 调用 API;Paddle 在 beta 期间不会阻止超量使用,超量部分不收费;剩余余额不会为负,用量不会滚动到下期;余额耗尽触发 usage_balance.depleted,补充时无事件;计量器的单位与聚合方式不可更改,不能删除只能归档,归档后仍会扣减余额;修改费率或动作只影响新用量;配额的 PATCH 为全量替换;事件超过 60 天会被拒绝;需使用 2.5 或更高版本的 @paddle/paddle-node-sdk(推荐 v3)验证 webhook,以免丢失 depleted 事件;API 密钥需具备 usage_balance_unit.write、meter.write、price.write、usage_event.write 和 usage_balance.read 权限。