异步可靠性、差异核查与对账
电商订单与支付系统实战#Python全栈#第二十三阶段#电商订单与支付系统实战#异步可靠性、差异核查与对账约 869 字 · 2 分钟阅读
追问显示点击任意追问卡片可收起 / 展开
本地数据库事务为什么不能独自保证外部支付一致性?
追问 数据库回滚时,已经完成的渠道操作会自动撤销吗?怎样使用中间状态、查询与补偿形成可恢复流程,并指出哪些步骤仍需要人工核查?
怎样区分可以直接重试、需要先查询和需要补偿的操作?
追问 发送通知、创建付款、释放预留与提交退款各有什么副作用?错误类型、幂等约定和已记录状态怎样影响下一步选择?
怎样用本地待发送记录可靠触发后续任务?
追问 订单变更与待发送记录如何一起提交,发送任务怎样扫描和标记?消息已发送但标记失败时,消费者需要什么防重机制?
交易核查任务应怎样安排超时、重试与失败出口?
追问 单次截止时间、退避、渠道限流和最大自动处理范围怎样确定?长期失败的记录如何保留并提醒处理,而不是无限占用队列?
对账应选择哪些数据源和匹配标识?
追问 订单、支付、退款与渠道交易记录怎样关联?重复编号、分页遗漏、渠道数据延迟与本地缺失记录如何识别?
交易金额、手续费、退款与结算金额怎样区别?
追问 用户实际支付与商户结算为什么可能不同?币种、记录类型、发生时间与可用时间怎样影响汇总,为什么不能直接拿两边总数相减判定异常?
发现渠道已收款、本地未支付时,怎样修复?
追问 怎样核实金额与订单关系,再通过受控流程更新状态?库存释放或订单已经关闭时,如何处理履约与退款,而不是只把状态改为成功?
发现本地已支付但渠道未确认时,怎样核查?
追问 环境、账号、交易关联、查询时间和本地状态来源怎样检查?需要哪些证据才能调整状态或停止履约,如何保留修复前后的记录?
对账任务怎样支持断点、补跑与重复执行?
追问 时间窗口、分页游标、延迟到账与历史状态更新怎样覆盖?重跑时如何避免重复生成异常工单或重复执行资金相关补偿?
怎样观察交易链路中的异常和积压?
追问 未知支付、待退款、未处理通知、超期预留与未解决差异怎样统计?告警应带哪些标识和上下文,才能让处理人员定位到具体业务记录?
渠道记录核对资料: Stripe:Balance transactions、交易类型说明。对账范围需明确交易与结算的区别;其他渠道按其报表、接口与账期定义核对。