支付接入、支付尝试与结果查询
电商订单与支付系统实战#Python全栈#第二十三阶段#电商订单与支付系统实战#支付接入、支付尝试与结果查询约 846 字 · 2 分钟阅读
追问显示点击任意追问卡片可收起 / 展开
一次支付应怎样串联浏览器、商户后端与支付渠道?
追问 哪些参数由服务端生成,哪些信息可以传给前端?渠道密钥、交易金额和订单归属各在哪个环节校验?
支付前怎样检查订单仍然允许付款?
追问 订单归属、关闭状态、金额与有效支付尝试怎样核对?请求检查完成后状态发生变化时,后续流程如何继续保护?
同一订单的多次支付尝试应该怎样管理?
追问 失败后重试、切换渠道与重新打开支付页是否需要新支付记录?怎样区分一次外部请求的安全重试与发起新的付款尝试?
渠道支付创建请求的幂等键应怎样选择?
追问 业务操作、参数一致性与键的使用范围如何确定?渠道保留规则与本地记录如何配合,为什么每次超时都换新键可能造成重复创建?
调用渠道超时后,怎样判断支付创建是否成功?
追问 本地记录、原业务编号查询与同键重试各有什么依据?怎样保留“结果未知”状态,而不是直接记作失败并重新创建?
同步接口响应中的“受理”与“支付成功”有什么区别?
追问 需要用户操作、处理中、确认收款与失败各怎样映射?渠道状态并非统一枚举时,怎样避免把所有成功 HTTP 响应都标为已支付?
用户跳回成功页面,后端能否立即发货?
追问 页面参数与客户端请求为什么不能独自证明收款?服务端查询与可信通知怎样提供依据,页面在确认前如何展示等待状态?
支付结果查询接口怎样兼顾及时性与渠道压力?
追问 先读本地、按条件主动查询和前端轮询如何协调?频繁刷新、批量查询与渠道限流时,怎样设置间隔和停止条件?
不同渠道的支付接口怎样通过适当抽象接入?
追问 创建、查询、关闭、退款与验签哪些可以共用接口,哪些保留差异?金额单位、字段和错误码怎样避免在抽象层被错误抹平?
怎样用模拟网关验证支付集成而不依赖真实付款?
追问 怎样控制成功、失败、处理中、请求超时与重复响应?模拟器与官方测试环境各能验证什么,哪些渠道特有行为仍需按文档核对?
支付接入核对资料: Stripe:Payment Intents、Idempotent requests。示例用于核对生命周期与请求防重,具体能力不能直接推广到所有渠道。