支付系统 · 提现出款
Never pay twice./Never miss a payout./Always reconcile.
手机上可以左右滑动看全图。
防重复
最终一致
异常处理
异常处理
| 问题 | 方案 |
|---|---|
| 请求超时,或者发请求前、发请求后我们自己宕机了,钱打没打出去不知道 | 不重发,钱继续冻着。XXL-Job 补偿任务拿原来的商户单号调渠道的查单接口,问清楚了再动钱;超过 2 小时还问不到就转人工。单号上的唯一索引保证就算重发也只会打一次 |
| 渠道明确回复这笔失败了 | 先用错误码映射表分类。渠道自己的问题,由渠道路由按优先级选下一家,雪花 ID 生成新单号重发;卡号户名不对属于用户侧,调钱包解冻退回,让用户改完再提 |
| 渠道一直没给我们回调 | XXL-Job 每 5 分钟扫一遍 status = 出款中且超时的单,走(状态,更新时间)联合索引,每批 500 条,拿单号去查渠道 |
| 卡在出款中的单子突然变多 | 监控出款中超 30 分钟的单量和代付成功率,超过阈值推送告警群;人工在配置中心关掉这家渠道,改完即时生效,再去找渠道方 |
| 渠道说成功了,银行又把钱退回来 | T+1 对账:渠道账单对出款流水,出款流水对账变流水。差异进差异表,每日销账任务自动处理跨日在途,剩下的在后台人工核销 |