美文网首页哲思想法
小佳日记0805:bug导致的百万损失

小佳日记0805:bug导致的百万损失

作者: geoky梦呓 | 来源:发表于2020-08-05 08:53 被阅读0次

    今天写文章不太有状态,憋了半天没憋出一句话。

    可能,黔驴技穷。

    讲个故事吧,之前在上一家公司发生的一次生产事故。

    上一家公司做的是支付相关的业务。

    专业名词是聚合支付。

    可以理解为把支付宝,微信还有其他支付渠道汇总成一个二维码。

    场景就是,你去买东西,不管用微信扫码,还是支付宝扫码,还是其他,可以扫同一个二维码来完成支付流程。

    有一次上线部署这套系统时,发生了巨大bug。

    大家正常使用app发生一些bug,可能就页面打不开。卡死之类。

    顶多是用户体验不好。

    但是,支付相关的,是和钱打交道的。

    扣款流程出现bug,可能分分钟几百万的账就走错了。

    然而,这次偏偏还正好是支付流程出现了问题。

    啥问题呢?

    大家想一个场景,比如你要买一瓶雪碧,然后你扫完二维码,输入完密码,之后的流程就是,我们这套系统会去你的账户扣款,如果扣款成功,那么商户就会收到“钱已到账”的信息。

    问题出在哪呢?

    系统把扣款失败的信息,处理成了扣款成功。

    这就很要命了,你账户上明明只有1元钱,根本不够买雪碧的。

    然而,系统却告诉商家,扣款成功了。

    这笔钱是需要第二天和商家对账结算的。

    如果钱追不回来,那就要赔偿给商家。

    好巧不巧,当时系统对接了某手机品牌的线上商城,相当于是系统的商家。

    他们正好在做活动,当天购买的人很多。

    一天下来,这种本来买不起,但是系统误判扣款成功的流水就两百多万。

    第二天系统对账,傻眼了。

    这钱根本就没扣成功,但是商城那边已经发货了。

    两边的大佬开始对接。

    商家那边的观点是,我收到你扣款成功的消息,才开始发货。责任肯定不在我们这边。

    也确实是这个道理。

    最后怎么解决的呢?

    银行内部悄悄写了个定时任务,到点就自动去扣这些占便宜用户的账户。每小时去扣一次。

    扣了一个月,追回来80%的损失。

    不过,这种操作是违规的,未经客户允许,擅自扣款。所以是内部操作。

    被银监会知道的话,要挨处分。

    怎么会出现这种bug呢?

    接口调用的时候,有通信成功和业务成功两层报文。

    通信成功的前提下,判断业务成功才有意义。

    然而,系统却把通信成功,业务失败这种情况,当成了扣款成功。

    这种级别的生产事故,暴露开发流程的重大问题。

    开发组的同学留下这种低级bug。

    测试组的同学也没测出来这个bug。

    原本6个月年终奖,没了。

    相关文章

      网友评论

        本文标题:小佳日记0805:bug导致的百万损失

        本文链接:https://www.haomeiwen.com/subject/vhhnrktx.html