询价表单重复提交排错:按钮锁定不能只靠页面动画

建站指南 13

客户在产品页上传图纸后按下提交,页面几秒没有反馈,又连续点了两次。销售随后收到多封内容相同的询盘,CRM 里也出现重复线索。只把按钮变灰并不能处理页面刷新或网络重试,接口超时也会触发同一问题。排错重点应放在一次业务提交是否有唯一凭据,以及服务端能否识别同一请求。

先给每次询价分配不可重复的提交令牌

询价表单打开时,可由服务端生成一次性提交令牌,写入隐藏字段并保存在会话中。令牌与当前产品 ID 绑定,同时记录表单来源网址。客户提交后,服务端在同一事务里检查令牌状态:未使用才创建询盘,已经使用则返回原来的结果,不再新增记录。这样即使浏览器重发请求,系统也知道这是同一次业务动作。

令牌不能使用时间戳加邮箱这类容易猜测的组合,也不要放进成功页网址。它只用于识别请求,不承担客户身份验证。服务端写入询盘后再标记令牌已使用,并保留对应的询盘编号;若数据库写入失败,令牌仍应允许重试。把标记动作放在发送通知邮件之后,可能因邮件超时留下半条记录,客户再次提交时又会生成一条。

CRM 自身的去重规则只能作为后置检查。按邮箱合并线索,可能把同一采购商针对两个型号的询价误合并;按姓名去重又容易漏掉拼写变化。可结合企业邮箱与项目线索的去重边界核对规则,但表单入口仍要用提交令牌守住第一道记录。

按钮状态要反映校验与附件处理进度

前端按钮应在字段校验通过后才进入提交状态。进入后显示清楚的处理中反馈,并阻止重复点击;若接口返回格式错误或必填项缺失,按钮要恢复,同时保留客户已填内容。不能一开始就永久锁住按钮,否则网络中断后客户只能刷新页面,新的页面会拿到另一枚令牌,反而增加重复提交的机会。

附件上传要与询价记录使用同一令牌关联。图纸先进入临时目录时,保存文件校验值和上传状态,提交成功后再挂到询盘编号下。接口超时但文件已经上传完成,重试请求应复用原文件,不要再生成名称相同的副本。若销售端曾遇到邮件有正文却没有图纸,可参照询盘附件丢失的核对路径检查临时文件与通知流程。

网站测试人员在电脑和手机上核对询价表单重复提交问题

移动端还要考虑客户切到相册或文件应用后再返回页面。页面恢复时不能重新初始化令牌,也不能清空已经选择的产品 ID。测试记录应写明浏览器和网络状态,附件大小另列字段,并保留接口响应码。还应记录页面停留多久后恢复,便于检查会话是否已经过期。没有这些条件,只记录“点了两次”,开发人员很难判断是前端事件绑定重复,还是服务端收到重试请求。

验收要从一次提交追到一条销售记录

凯乐丰在官网获客流程验收中,会把表单请求编号和 CRM 线索编号对应起来,通知邮件也引用同一个询盘编号。销售回复时能确认客户来自哪款产品,技术人员排查时也能沿编号找到请求日志。编号只在后台流转,公开页面不显示邮箱、文件路径等客户信息。

测试不能只看正常网络下点一次按钮。可以在浏览器开发工具中限制网速,提交带附件的询价后连续点击,再刷新成功页并尝试重新发送原请求。预期结果是数据库只有一条询盘,附件只保存一份。重复请求应返回同一个询盘编号。若通知邮件仍重复,可结合询盘邮件主题与回复关联检查消息发送是否单独重试。

上线后应观察重复令牌命中记录,但不要把它直接当成客户恶意操作。网络切换或浏览器自动重试都可能触发。排查时先对照来源网址与产品 ID,再核对请求时间,确认是否属于同一次操作,再决定是否需要调整超时时间。表单反馈足够明确,服务端又能安全复用同一结果,客户才不会因一次迟缓的提交在销售系统里留下多份线索。