问题描述 在美团点外卖时,提交订单后选择微信支付但不付款,切回后再选择支付宝支付,最终微信和支付宝都可能付款成功,出现一笔订单重复支付的情况。 技术角度分析 - 幂等性问题:同一笔订单通过不同支付渠道多次支付,系统未有效保证操作的幂等性。 - 多阶段原子性问题:支付流程的不同阶段(如选择支付方式、跳转支付渠道等)之间,原子性未得到严格保障。 可能的解决方案 - 聚合支付场景:在创建交易订单前,先判断是否存在处于交易过程中的订单,若有则不允许创建新订单。不过这种方法可能影响用户体验,例如用户误选支付方式且该支付方式余额不足时,可能无法再次尝试其他支付方式。 - 美团的处理方式(推测):允许用户通过不同渠道支付,支付完成后,若回调发现订单已支付,就进行退款处理。这是利用订单号的唯一性来实现的。 - 业务与产品层面:是否退款取决于业务需求和产品策略,存在业务方向上的选择。 测试注意事项 在测试过程中,要保证账户中有足够的资金,避免因账户余额不足而无法完成支付,从而影响对重复支付问题的测试。
点赞 1

相关推荐

上来问了一下你确定你投递的是测试开发岗位?(简历上是后端,现在不应该心照不宣了吗)自我介绍项目拷打:(真的很希望看到别人项目拷打的问题,我都编不下去了)选择一个项目进行介绍(选了天机学堂)介绍你在这个项目中干了什么你们这个项目听着挺大的,全是你开发做的吗你们这个项目上线了吗,如果上线了,你觉得用户量会达到多少,我说了几千到几万?那么这个值是怎么估计得到的,我说这种在线教育用户范围限定的比较死,面试官应该想听更详细的估算方法?项目中的接口,上线了你有哪些指标来衡量它的好坏你怎么测试你接口的好坏?测试相关:测试用例,微信红包(大概就是围绕功能,性能,安全,边界值,兼容性去说)八股:Redis可以做什么(签到,GEO查找,缓存重点结合项目说,分布式锁,结合项目登录校验取代session)Mysql的索引讲一下(聚簇索引,二级索引;普通、唯一索引;单列多列索引,主要是重点说聚簇下b+树的结构展开多说了点)Linux常用命令(rm,mkdir,cp,cd,ls,grep,ps,sudo这些都说了)Linux远程传输文件的命令(不知道)代码Sql(给定一个成绩表,包括姓名,科目,成绩)1.请找出语文成绩排名前10的姓名2.请找出名字李开头的人的总成绩(模糊+count)算法:二分查找(提前下好客户端,我浏览器打开会看不到题目,只能自己共享屏幕本地编译)反问:业务相关,搜索部门好像是多久出结果(明天)第一次面试需要改进的地方,感觉算法和八股面试官觉得还行,说我项目那里还得练(反正问点场景我不知道的我就老实开摆)人生第二面,其实也是首面,下午刚面第一面,希望大家指正有点迷茫,不知道接下来该朝哪方向努力,本来准备后端的,结果后端无人问津测开被约三次了,现在应该补充点测开系统知识吗,能不能两手抓,这种网上的项目怎么装的像真要上线一样啊,实在脸皮薄不会撒谎,感觉一问都是漏洞,真心赐教。
查看15道真题和解析
点赞 评论 收藏
分享
牛客网
牛客网在线编程
牛客网题解
牛客企业服务