返回顶部
B

Billing计费系统

Build payment integrations, subscription management, and invoicing systems with webhook handling, tax compliance, and revenue recognition.

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.0.0
安全检测
已通过
747
下载量
免费
免费
2
收藏
概述
安装方式
版本历史

Billing

何时使用

用户需要实现或调试支付处理、订阅生命周期、发票开具或收入运营。代理负责处理Stripe/Paddle集成、Webhook架构、多币种、税务合规、拒付、基于用量的计费、市场分账以及收入确认模式。

快速参考

主题文件
Stripe集成stripe.md
Webhook与事件
webhooks.md | | 订阅生命周期 | subscriptions.md | | 发票生成 | invoicing.md | | 税务合规 | tax.md | | 基于用量的计费 | usage-billing.md | | 拒付与争议 | disputes.md | | 市场支付 | marketplace.md | | 收入确认 | revenue-recognition.md |

核心规则

1. 金额始终使用最小单位

  • - Stripe/大多数PSP使用分:amount: 1000 = 10.00美元
  • 将金额存储为整数,绝不使用浮点数(浮点运算会出错)
  • 始终在变量名中明确币种:amountcentsusd
  • 不同币种的小数位数不同(日元为0,科威特第纳尔为3)

2. Webhook安全不可妥协

  • - 处理前务必验证签名(Stripe-Signature标头)
  • 存储event_id并检查幂等性——Webhook会重复发送
  • 事件可能乱序到达——设计状态机,而非顺序流程
  • 使用原始请求体进行签名验证,而非解析后的JSON
  • 实现模式参见webhooks.md

3. 订阅状态机

关键状态与转换:
状态含义访问权限
trialing免费试用期✅ 完全
active
已付费且正常 | ✅ 完全 | | past_due | 支付失败,重试中 | ⚠️ 宽限期 | | canceled | 将在周期结束时终止 | ✅ 直到周期结束 | | unpaid | 重试次数用尽 | ❌ 无 |

切勿仅凭status === active授予访问权限——需检查currentperiodend。

4. 取消与删除:事关收入

  • - cancelatperiod_end: true → 周期结束前可访问,停止续订
  • subscription.delete() → 立即终止,可能退款
  • 混淆两者会导致收入损失或激怒客户
  • 默认使用周期结束时取消;仅在客户要求时立即删除

5. 按比例分配需明确选择

在周期中更改套餐时:
模式行为使用场景
create_prorations抵扣未使用部分,收取新费用标准升级
none
仅在续订时更改 | 降级 | | always_invoice | 立即收费/抵扣 | 企业计费 |

切勿依赖PSP默认设置——每次都要明确指定。

6. 竞态条件必然发生

customer.subscription.updated通常先于invoice.paid触发。
  • - 设计最终一致性
  • 使用数据库事务处理访问权限变更
  • 幂等处理器应能安全地重新处理
  • 在授予/撤销访问权限前检查状态

7. 税务合规不可忽视
场景操作
同一国家收取当地增值税/销售税
欧盟B2B + 有效VAT
0%反向征税(通过VIES验证) |

| 欧盟B2C | MOSS——收取买方所在国增值税 | | 美国 | 销售税因11,000多个司法管辖区而异 | | 出口(非欧盟) | 通常为0% |

缺少必需的发票字段 = 法律上无效的发票。参见tax.md。

8. PCI-DSS:绝不触碰卡数据

  • - 绝不存储PAN、CVV或磁条数据
  • 仅存储PSP令牌(pm、cus
  • 令牌化在客户端完成(Stripe.js、Elements)
  • 即使后四位+有效期若一起存储也属于PCI范围
  • 合规模式参见disputes.md

9. 拒付有截止期限
阶段时间线操作
查询1-3天主动提供证据
争议开启
7-21天 | 提交有力证据 |

| 错过截止日期 | 自动败诉 | 设置提醒 |

>连续3次扣款失败 = 可能触发欺诈监控。

10. 收入确认 ≠ 现金收款

对于遵循ASC 606/IFRS 15的SaaS:
  • - 年度付款 ≠ 年度收入(按月确认)
  • 递延收入是负债,而非资产
  • 多要素合同需分配到履约义务
  • 会计模式参见revenue-recognition.md

计费陷阱

安全与合规

  • - 未验证签名的Webhook → 攻击者可伪造invoice.paid
  • 在前端JS中存储令牌 → 攻击者可提取
  • CVV记录在日志中 → 违反PCI规定,巨额罚款
  • 无限制的重试循环 → 触发欺诈监控

集成错误

  • - 未存储subscriptionid → 无法核对退款
  • 假设扣款成功 = 支付完成(存在3D Secure)
  • 忽略paymentintent.requires_action → 支付卡住
  • 使用mode: subscription但未处理customer.subscription.deleted

财务错误

  • - 硬编码税率 → 税率变更时出错
  • 金额使用美元但PSP期望分 → 多收100倍
  • 年度计划一次性确认100%收入 → 审计发现问题
  • 混淆预订、计费与收入 → 重大差异

运营错误

  • - 在合同宽限期内发送付款提醒
  • 未检查未结争议即进行催款 → 双重损失
  • 未指定模式即按比例分配 → 意外向客户收费
  • 未检查现有拒付即退款 → 支付两次

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 billing-1776419957 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 billing-1776419957 技能

通过命令行安装

skillhub install billing-1776419957

下载

⬇ 下载 Billing v1.0.0(免费)

文件大小: 18.06 KB | 发布时间: 2026-4-17 20:13

v1.0.0 最新 2026-4-17 20:13
Initial release

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部