V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yuhuan66666
V2EX  ›  职场话题

想问下写过收付款代码的大佬,你们都出过收付款的问题吗?

  •  1
     
  •   yuhuan66666 · 2020-11-27 11:10:32 +08:00 · 3505 次点击
    这是一个创建于 1456 天前的主题,其中的信息可能已经有所发展或是发生改变。

    写了两年财务系统,最近翻出来一个两年前刚写的时候的一段代码导致了收款之后又退款。损失了十几万。

    然后领导各种倒推逻辑,什么“早就跟你说财务代码要慎重吧啦吧啦的” “为什么写的时候不考虑比对数据吧啦吧啦吧”

    我写了两年了,没出过资金问题。去年新来的校招生写了两个 bug 导致两次付款的问题,人家看风向不对跑路了,临走时候还留了少付款问题。自从他走后因为业务拓展还招不上来人,我已经两个半月像机器一样没停下过了。

    现在因为这个 2 年前思虑不周的问题。这些资金问题,全扣在我身上了。两个半月辛苦白干了

    天天把财务不能出错挂在嘴边,大家都是人,用一样的时间开发,凭什么别人出 bug 了都是小事,到我这全组点名批评,不死不休,还说出 “以后找个靠谱的人来写”这样的话。

    我真的好奇,请问和收付款相关的各位大佬们,写收付款代码真的没出过 bug 吗?相同的开发时间,怎么保证收付款相关的 bug 率为 0 的?

    第 1 条附言  ·  2020-11-27 14:43:10 +08:00
    上面说了 风控系统和多重校验 都是事后补救的措施。认定就是我幂等没做好。我承认幂等没做好,但是那是我两年前的代码。但是说其他的东西没有 你一点 bug 不能出。这个我不认
    25 条回复    2020-11-30 20:39:45 +08:00
    sheep3
        1
    sheep3  
       2020-11-27 11:14:06 +08:00
    这些问题不是一个简简单单的代码问题。
    遇到钱的问题,需要多处对账,允许一定的异常情况,但是需要快速响应快速修复。除了收付款代码本身,其他风控组件也是必要的。
    sparrww
        2
    sparrww  
       2020-11-27 11:21:28 +08:00   ❤️ 4
    让实习生写付款逻辑也是心真大
    sss495088732
        3
    sss495088732  
       2020-11-27 11:23:36 +08:00
    不存在资金问题全靠代码解决
    darksword21
        4
    darksword21  
       2020-11-27 11:28:06 +08:00
    whywhywhy
        5
    whywhywhy  
       2020-11-27 11:39:04 +08:00
    财务是不能出错

    但是做财务的没有不出错的

    付多了钱,付错了钱,追不回来的都有

    即便是错了,也是还要继续干活的

    即便换掉或罚款,不管是现任和未来接手的人,未来还是会出错的



    因此,出错了只看到你在抱怨,有啥好抱怨的呢,认真写代码,思考一下如何防止出错,解决它,就可以了。
    Immortal
        6
    Immortal  
       2020-11-27 11:40:18 +08:00
    出错是正常的
    但是为什么两年后才发现
    财务问题不会每周每月对账单的么???
    yuhuan66666
        7
    yuhuan66666  
    OP
       2020-11-27 12:00:37 +08:00
    @whywhywhy #5 教训我会吸取。但是我觉得委屈。两年前入职我被安排做这块,新业务线没一个懂的人引导,全靠自己摸索,产品也没一个懂的。出需求只看表面,动不动就卡时间点迭代时间倒排。上面的人没一个重视的只会强调财务要细心的空口号。现在出问题了,就全都是我导致的。
    yuhuan66666
        8
    yuhuan66666  
    OP
       2020-11-27 12:02:46 +08:00
    @Immortal #6 财务允许坏账率的,而且是问题像个逻辑地雷,最近几个月才出现踩雷的线程
    ppd
        9
    ppd  
       2020-11-27 12:20:34 +08:00
    有出错的,前几天还因为上线的一段代码,导致了 100 多笔订单出了问题,后面一笔一笔的去处理,搞到凌晨 4 点多。
    gigantic222
        10
    gigantic222  
       2020-11-27 12:44:30 +08:00   ❤️ 1
    是人就会出错,所以要拉着测试和 QA 一起共同承担这个事情。

    之前做过一个支付比较复杂的项目,多商家多订单合并支付,要对接微信,支付宝,信用卡,银行转账,虚拟钱包。要计算商家返利,可选谁来承担手续费,每种支付的手续费政策不同,还要拆流水,商家提现,用户返点,充值和提现,随便一个地方出错就会被薅。为此专门做了一个日志服务,在所有和钱相关的地方打日志,调用支付网关前后记录状态,尤其是退款的接口,需要人工介入的绝对不做自动退款,必须先申请退款,通过后才给退。记录所有进出账,checksum,每天跑脚本对账,从支付平台的提现周期基本都是隔天。

    在线上跑了小半年,才慢慢一点点改到没有问题。
    imn1
        11
    imn1  
       2020-11-27 13:02:34 +08:00
    1. 2.5 月是否相当于全额?是的话我觉得不合理,同情你,承担 50%或以下可以接收
    2. 说说可以接受的部分,失误是事实,属于扣钱、罚钱,但不能是赔偿的名义,如果加上没有及时发现,责任更大
    3. 少于 50%的理由,公司没有相关预案(非技术手段)也是不对,人家风控做得”多好“,发现没有实际收到款项,直接 ban 用户了,贵司完全不做这些后续工作么?
    airyland
        12
    airyland  
       2020-11-27 13:21:42 +08:00
    测试也要背锅,另外退款肯定不能一开始就上自动化的,进入退款逻辑后先走人工审核流程,运行一段时间没问题再自动化。
    yuhuan66666
        13
    yuhuan66666  
    OP
       2020-11-27 13:33:28 +08:00
    @imn1 #11 2.5 个月是做财务的其他需求,因为只有我一个人,但是上面说了需求还是按两个人来给。本来还有点苦劳。现在出这一档事,等于白辛苦。上面的脑回路就是“没有做好这个概念,都是你应该的,做坏了,都是你责任”
    w1257778035
        14
    w1257778035  
       2020-11-27 13:52:10 +08:00
    财务系统靠全自动是不存在的
    wunonglin
        15
    wunonglin  
       2020-11-27 14:02:09 +08:00
    直接辞了不就好了,懒叼他
    keepeye
        16
    keepeye  
       2020-11-27 14:08:57 +08:00
    六字真言奉上
    ebingtel
        17
    ebingtel  
       2020-11-27 14:11:31 +08:00
    宁愿不退,也不多退……
    zjuster
        18
    zjuster  
       2020-11-27 14:18:04 +08:00
    你们没有测试,没有财务审批对账吗....
    whywhywhy
        19
    whywhywhy  
       2020-11-27 16:44:21 +08:00   ❤️ 1
    @yuhuan66666

    你觉得委屈就对了,我是做 ERP 实施的,以前我干劲十足,但是这几年渐渐的没什么干劲了,因为成功了不是因为你多厉害,而是团队合作才能成功,团队有问题基本上都会失败,而失败了,就是你一个人的责任,你没能力做好,没能力实施,至于公司那些问题,你做实施的不应该解决么?以结果为导向!!!领导层面就是这样想的,其他人基本上也会这样想。

    但是项目成功了呢?是你应该的,而且是团队合作的结果……最重要的是,用系统之后会有很多问题……大家就好推卸责任了,然后你明明是个技术,你却整天和他们扯皮,没有一点成就感……感觉还给公司带来了很多风险……

    结论:程序员也属于“服务”型工作,忍气吞声是必然的。其实不光程序员,即便是当老板的,也常常无可奈何,忍气吞声是每个人都遇到的,只要不要造成经济损失就是最好的了……造成经济损失了,尽力挽回,吸取教训,就行了,还能咋办呢,唉。
    woshiaha
        20
    woshiaha  
       2020-11-27 17:51:55 +08:00
    几年前在一家金融软件开发的公司工作 领导就讲过公司历史的一次大事故 代码问题把银行的资金多转了一亿多给第三方客户 还好银行强势 出面把钱要回来了 最后开发背了个处分了事 只能说跟钱打交道的开发风险高很多 如果待遇没有对应的高很多 建议跳槽
    hanwujibaby
        21
    hanwujibaby  
       2020-11-27 17:59:13 +08:00
    短款过。很正常。
    ajaxfunction
        22
    ajaxfunction  
       2020-11-27 22:03:06 +08:00
    我写的微信发红包代码, 第三天就被薅走 1200 的羊毛,之所以被薅走 1200 是因为账户仅仅就剩 1200 了。
    后来有了自己的原则,宁愿被骂死,活动停止,也绝不去掉审核环节。
    zengguibo
        23
    zengguibo  
       2020-11-28 19:56:42 +08:00
    做跟钱有关的困难多了,强如京东也多次被人薅羊毛,更不要说普通人
    tgich
        24
    tgich  
       2020-11-30 10:53:03 +08:00
    做支付的,首先要有这样的意识就是一定会出问题的,但是要允许少量的坏账和人工对账,99.999%的准确性就行
    yuhuan66666
        25
    yuhuan66666  
    OP
       2020-11-30 20:39:45 +08:00
    @tgich #24 开发时是要避免发生 bug,但是 固定时间内要写代码 还要完全思考全面,我不认为每个人都具备这种能力
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4275 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 10:08 · PVG 18:08 · LAX 02:08 · JFK 05:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.