┌──────────────────────────────────────────────────────────┐
│ 每天凌晨 02:30(cron) │
│ ↓ │
│ POST /cron/reconciliation/auto-daily(带 cron_key) │
│ ↓ │
│ 对昨天的账(微信 + 支付宝 各一次) │
│ │
│ ① 拉账单 │
│ 微信:商户平台 / 下载对账单 API │
│ 支付宝:开放平台 / 查询日账单 URL │
│ ↓ │
│ ② 解析 CSV / ZIP │
│ 字段:trade_no / amount / paid_at / status │
│ ↓ │
│ ③ 关联本地 payments(by trade_no) │
│ ↓ │
│ ④ 标记差异 │
│ ● matched 金额一致 │
│ ● amount_mismatch 金额不一致(危险!) │
│ ● missing_in_local 三方有,本地无(漏掉了!) │
│ ● missing_in_bill 本地有,三方无(本地虚假?) │
│ ↓ │
│ ⑤ 入库 reconciliation_runs │
│ ↓ │
│ ⑥ 差异 > 阈值 → 邮件 / 微信告警 │
│ ↓ │
│ ⑦ 财务每日审核 → mark reviewed │
└──────────────────────────────────────────────────────────┘
🔔 告警阈值(可在 .env 调):
| ALERT_DISCREPANCY_COUNT | 差异条数 ≥ 5(默认) |
| ALERT_DISCREPANCY_AMOUNT | 差异金额 ≥ ¥500(默认) |
| ALERT_EMAIL | 告警邮箱(留空不发) |
⚙️ cron 配置:
# 每天凌晨 2:30 跑对账
30 2 * * * curl -X POST -H "X-Cron-Key: $CRON_KEY" \
https://api.clawhas.com/api/cron/reconciliation/auto-daily