需求统计与预测 DSF · v0.11
discipline/rounds/round-11-paddle-payment.md
📑 本页目录

轮次记录 · Round 11 · Paddle 支付打通(L5 变现落地)

1. 目标与选题

2. 背景与相关文献

3. 框架变更(Decision)

# 决策 落点
D50 支付从 Stripe 迁移 Paddle:pro.paddle 配置段(api_key/webhook_secret 环境变量、sandbox 开关、沙盒/生产 API 地址、月付/年付价格 ID);pro.stripe 标记为历史遗留 config/forecast.yaml
D51 checkout 走 Paddle:创建交易时写 custom_data(email/sid/plan)贯穿事件;未配密钥返回 503;waitlist 模式不伪造支付 app/pro_api.py
D52 webhook 重写为 Paddle:HMAC 验签(ts:rawBody、5 分钟防重放)+ event_id 幂等去重(paddle-events.jsonl 追加式)+ 事件→状态机(completed/activated/created→active,canceled→canceled) app/pro_api.py、watchlist.cancel_subscriber
D53 审核落地页补齐:新增 /terms 服务条款(含支付/退款/取消政策),首页/英文页/Pro 页页脚加链接 app/static/terms.html、app/main.py
D54 用户侧分步指南:注册(Individual/护照一致/企业域名邮箱)→ API key → 价格 → webhook → Payoneer → 沙盒 → 上线 PAYMENT_SETUP.md

4. 实践产物与结果

5. 评估

6. 未决问题

7. 下一轮建议(Round 12 候选)

  1. 英文产品 UI 化:趋势雷达/预测看板双语(承接 /en 流量,延续 Round 10 候选 1)。
  2. 年付 + 取消/退款代码侧:Q24/Q26 落地,把支付状态机补完整。
  3. Paddle 沙盒实测:用户按 PAYMENT_SETUP.md 配好密钥后,跑通一笔沙盒订单 并回填验证记录(依赖外部凭据)。

8. 版本号与 changelog