如果从业务层面来看,有个问题必须引起我们的关注:撤回的场景极其复杂且结果不可控。
比如:对方领取红包后,马上支付了一笔款项,这个时候撤回逻辑应该怎么做?
第三个方案肯定pass了,因为我们不可能为了解决一个问题再创造另一个问题出来,然后上线两个功能解决两个问题;
第二个方案也不合理,如果对方不点退还呢?那不就意味着「撤回失败」?既然存在撤回不了的情况,这个功能还有意义吗?
再看第一个方案的风险:如果对方余额的钱不够撤回的金额,你是先撤回一部分吗?那剩下的一部分怎么办?等对方余额里有钱的时候自动扣除——类似花呗的自动还款吗?
这里引发了新的问题:能撤回的金额不等于需撤回的金额,追溯难度非常之大(不少人将会因为手误而走上讨债之路)。
其次,交易行为一般是比较正式的行为,如果发错了对方是可以理解的,可以找对方追回。
而不是在对方不知情、未允许的情况下,在你执行撤回操作后直接从对方的余额里把钱扣回来——这种交易是一种风险交易,以后谁还会用微信做交易呢?
前面聊了这么多,都是在聊为什么微信没做撤回,现在我们换个思路:
如果「撤回红包」功能在业务上不好实现,而且也不具备开发的必要性,但仍有避免误操作(熊孩子)造成损失的需求,我们应该从“如何降低这类人群的误操作可能性”入手,给出解决方案。
比如:
这样设计产品,既可以在一定程度上规避误发红包的情况,而且从性能上来看,也避免了逆向流程(撤回)为服务器带来巨大压力。
本文提出的三种解题思路仅供大家拓展思维用,真正遇到真实问题时,考验的还是你的思考逻辑。
严谨、优秀的思考逻辑不是一蹴而就的,是长时间实践、练习、复盘、总结然后不断优化来的。