You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

典型电商支付流程:前端防护下重复支付的真实场景及生产案例问询

前端防护下重复支付的真实场景与生产案例

一、典型电商流程中前端防护仍失效的真实场景

  • 网络波动引发的「假失败」:用户点击支付按钮后,前端发起请求但遭遇网络延迟,前端触发超时逻辑跳转至失败页,但后端实际已经收到请求并完成支付。用户误以为支付失败,重新进入支付页发起新请求,就会产生重复扣款——前端跳转逻辑无法阻止用户发起新的支付流程,而旧流程的支付其实已成功。
  • 浏览器回退/缓存导致的状态重置:用户支付成功跳转后,点击浏览器回退按钮回到支付页,此时页面重新渲染,按钮禁用的状态丢失,用户再次点击发起请求;或是浏览器缓存了未更新的支付页,按钮未被禁用,用户误触发起重复请求。
  • 前端代码兼容性异常:部分旧版浏览器(如IE11)不支持某些JS语法,导致按钮禁用逻辑执行失败;或是异步请求的钩子函数出错,按钮未及时被禁用,用户快速连续点击两次,两个支付请求都发送至后端。
  • 第三方支付回调延迟:前端发起请求至第三方支付平台(如微信支付),平台已完成扣款,但回调通知后端时超时,前端跳转失败页。用户以为支付失败,重新发起支付,平台再次完成扣款,造成重复支付。

二、生产环境中遇到的前端控制失效案例

之前在电商公司做支付系统维护时,遇到过真实的重复支付问题:
移动端用户用4G网络支付,点击按钮后前端立即禁用按钮并发送请求,但因网络信号不稳定,请求在传输中出现丢包,前端10秒超时后跳转失败页。用户以为支付失败,返回订单页重新进入支付流程,再次发起支付。但实际上第一次请求并未完全丢失,第三方支付网关延迟12秒后收到请求并完成扣款,第二次请求也成功扣款,导致同一订单被重复扣了两次费用。
事后排查发现,前端超时设置过短,且后端未做幂等校验,前端的防护逻辑完全拦不住这种网络延迟导致的重复请求。

内容的提问来源于stack exchange,提问作者samsamsamsmasma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 07:05:19