一种行之有效的防错策略:在支付系统中实施防呆设计的实践

聊个支付人都会碰到的问题:资损防控。做支付如果还没有碰到过资损,那就是做得时间还不够久。资损防控是一个很大的话题,需要开几篇文章才能讲完,今天只从一件小事入手聊一个简单而又行之有效的防错策略:防呆设计的实践。

1. 一个线上事故

曾经处理过一个资损事件,很典型,值得说道说道。

一个研发同学在线下测试环境做测试,为图方便,直接从生产捞取一段日志的参数做为请求参数,不幸的是,线下测试环境竟然配置了外部第三方的生产环境参数,导致真实资金被错误地转入个人账户,造成了平台的资金损失。尽管损失金额不大,但由于操作不规范,事件的性质非常严重。

这类事件出来后,通常会发起所谓的复盘,然后给出一堆的整改措施,流程规范、管理制度、设计优化等。我们今天抛开那些大而全(或者华而不实)的整改措施,单单聊聊如何通过"防呆设计"来预防此类事件的发生。

2. 防呆设计定义及在工业界的应用

"防呆设计"(日语:ポカヨケ poka yoke)是一种预防性设计策略,目的是通过限制方法减少错误的发生。用户在无需额外注意力、经验或专业知识的情况下,也能准确无误地完成操作。

这个概念起源于日本,被广泛应用于丰田汽车的生产过程中,随着时间的推移,已成为全球范围内广泛采用的设计策略。

在工业设计中,防呆设计的例子比比皆是。例如,USB接口的设计确保了只有正确方向才能插入,而Type-C接口则进一步简化,支持双面插入。

第一版:使用字母标识,容易出错。

第二版:使用颜色标识,减少出错。

第三版(防呆):不同形状只能插到不同的位置,想错都错不了。

3. 针对事故的防呆设计措施

再说回到开头所说的故障,我们应该使用"防呆"设计的思想,彻底阻断使用者犯错的可能性。具体怎么做呢?如下:

  1. 环境隔离:确保所有测试环境均配置为外部渠道的测试参数,防止测试操作影响真实交易环境。
  2. 流量控制中间件:在系统中集成一个流量控制中间件,维护一个外部渠道的生产环境白名单。通过中间件筛选请求来源,若来源于测试环境,则自动阻断请求。
  3. 禁用线上环境的直接操作:关闭线上环境调试、手动直接调用能力。
  4. 增加操作审核:对线上环境的操作引入审核机制,由具备风险控制能力的团队成员负责审核。

通过实施上述防呆措施,即使是经验不足的新员工也能避免类似的资损风险。防呆设计并非只是解决问题的手段,而是一种预防性策略,旨在通过系统设计减少人为错误的可能性

4. 支付系统中防呆设计的应用

在支付行业中,防呆设计随处可见,举几个例子:

  1. 拆分输入框:信用卡绑卡页面将有效期拆分为两个输入框,分别用于输入月份和年份,从而减少输入错误。把用户的First Name和Last Name分开两个输入框。(我还真见过有支付平台提供的First Name和Last Name使用一个输入框,导致信用卡绑卡成功率持续很低)。
  2. 自动超时退出:在线支付系统在用户一段时间内无操作时,会自动退出,以防止未经授权的使用
  3. 限制尝试次数:支付系统会限制密码或验证码输入错误的次数,超过限制会暂时锁定账户,以防试图破解。
  4. 防止重复提交:为防止用户多次点击造成重复交易,支付系统通常会在首次点击后禁用提交按钮
  5. 可视化的交易流程:针对新用户第一次使用时给出指引页面,通过图形化界面展示交易流程,帮助用户轻松理解每一步操作。

5. 结束语

从业多年,见过太多的线上故障,得到一个朴素的道理:"人都是不可靠的,如果能通过系统解决的,就一定不要依赖人或流程来解决。"多引入一些防呆设计,让再"呆笨"的人都没有出错的可能性,那么系统就是健壮的,也就没有那么多的线上应急和复盘。

这是《百图解码支付系统设计与实现》专栏系列文章中的第(28)篇。 关注墨哥,深入了解支付系统的方方面面。

相关推荐
vx-bot5556664 小时前
企业微信接口在多租户SaaS平台中的集成架构与数据隔离实践
大数据·架构·企业微信
野犬寒鸦6 小时前
从零起步学习并发编程 || 第一章:初步认识进程与线程
java·服务器·后端·学习
我爱娃哈哈6 小时前
SpringBoot + Flowable + 自定义节点:可视化工作流引擎,支持请假、报销、审批全场景
java·spring boot·后端
桌面运维家7 小时前
vDisk流量怎么精细化分配?VOI/IDV架构配置指南
架构
zuozewei7 小时前
7D-AI系列:DeepSeek Engram 架构代码分析
人工智能·架构
徐礼昭|商派软件市场负责人7 小时前
Moltbot,也就是OpenClaw的底层架构解析
架构
国科安芯7 小时前
面向星载芯片原子钟的RISC-V架构MCU抗辐照特性研究及可靠性分析
单片机·嵌入式硬件·架构·制造·risc-v·pcb工艺·安全性测试
小北的AI科技分享7 小时前
人工智能大模型搭建:数据、算法与算力的三大基石
架构·模型·搭建
OceanBase数据库官方博客8 小时前
爱奇艺基于OceanBase实现百亿级卡券业务的“单库双擎”架构升级
数据库·架构·oceanbase·分布式数据库
一品威客网8 小时前
App 软件制作的核心技术与方法:从架构到落地
架构