• 0
  • 0
分享
  • 第三方支付问题小结——软件测试圈
  • 饭团🍙 2022-09-02 15:40:34 字数 1075 阅读 2402 收藏 0

概述

记得2019年,微信支付出过一个故障,用户发起支付给了钱后,微信一直不回调,导致使用了微信支付的商家的订单都成了未支付状态了,如果业务系统设计的不好,那瞬间就会有大量的客诉出现。

像下面的对话场景,我相信当时肯定非常的多:

用户:我支付了好几次了,你说你没收到?别开玩笑了。
商家:我这边真的没收钱。然后心想:这家伙不会是想吃霸王餐吧?

虽然像微信和支付宝这样的大牌支付平台,出大故障的几率比较少,但是也不得不防。下面列举几个支付问题以及对应的解决思路。

第三方支付平台无法支付

以微信为例子,像2019年微信支付出故障时,美团那边,是在APP侧,立刻将微信支付置灰了,引导用户使用支付宝支付,将损失和影响降到最低。要做到这点,至少得做到如下两点:

  • 监控微信支付的连通性(关键链路,监控得到位);

  • 得有屏蔽微信支付的开关,前端可根据这个开关确定是否置灰微信支付按钮。

第三方支付平台不回调

这种就属于用户给了钱,而由于没有回调,商家业务系统认为没收到钱,非常容易引起客诉。我们可以使用定时任务,定时查询用户订单是否支付了来应对。

比如说,你到茶饮店买了杯奶茶,使用微信支付给了钱后,门店打印机打印出小票和杯贴后,门店人员就会开始为你制作茶饮。如果这个时候,微信支付出故障了,一直不回调,那么小票和杯贴打印不出来,门店人员就不会给你制作。如果业务系统有个定时任务,每隔2分钟,把5分钟前的订单捞出来,调用微信订单是否已支付的接口,如果支付了,则通知打印机打印出小票。

第三方支付回调慢了

电商订单里,通常都有一个订单支付有效期,如果在有效期内用户没支付,就会取消订单,但是这个是基于用户没给钱的前提下,如果支付回调超过支付有效期才回调回来,其实用户是给了钱的了。一般来说,支付回调慢了,有下面三种情况:

  1. 用户拉起支付窗口了,但是一直不给钱,超过支付有效期后才给钱;

  2. 第三方支付平台性能有问题,真的支付回调慢了;

  3. 网络抖动。

对于第一种情况,可以利用支付平台的接口,拉起支付时,指定一个有效期,有效期内没给钱的,支付平台会自动提示交易已失效。

支付平台控制支付有效期的参数
微信time_expire
支付宝timeout_express

例如说,调用支付宝的拉起支付接口,设置了五分钟的支付有效期,一旦用户超过有效期才给钱,支付宝会有如下的提示:

1.png

对于第二和第三种情况,可以在订单取消的接口中,给用户退款,毕竟用户给了钱的。


作者:Sam_Deep_Thinking

原文链接:https://blog.csdn.net/linsongbin1/article/details/107130822

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          • 1、按严重程度分类:是指bug对软件质量的破坏程度,即此bug的存在将对软件的功能和性能产生什么样的影响。崩溃(Blocker):系统无法正常运行。阻碍开发或测试工作的问题;造成系统崩溃、死机、死循环、导致数据库数据丢失,与数据库连接错误,主要功能丧失,基本模块缺失等问题。如:代码错误、死循环、数据库发生死锁、重要的一级菜单功能不能使用等(该问题在测试中较少出现,一旦出现应立即中止当前版本测试)。严重(Critical):很明显的错误性的bug。系统主要功能部分丧失、数据库保存调用错误、用户数据丢失,一级功能菜单不能使用但是不影响其他功能的测试。功能设计与需求严重不符模块无法启动或调用,程序重...
            14 13 3146
            分享
          •   亚利桑那州立大学(ASU)和 OpenAI 宣布建立合作伙伴关系,将 ChatGPT 带入亚利桑那州立大学的课堂。亚利桑那州立大学在一份新闻稿中表示,该校希望将 ChatGPT Enterprise 的使用集中在"三个关键领域",如"提高学生的成功率、开辟创新研究的新途径以及简化组织流程"。  ASU 副首席信息官凯尔-鲍文(Kyle Bowen)表示:"我们的教职员工已经在使用 ChatGPT,在 ChatGPT Enterprise 推出后,我们解决了很多安全问题,我们认为与 OpenAI 建立联系是有意义的。"他补充说,AS...
            0 0 389
            分享
          •   你是不是还在为描述缺陷复现步骤而苦恼?你是不是还在为寻找一款合适的视屏录制软件而挣扎?那么,你应该好好看看这篇小文章。  作为测试人员,撰写测试用例、提交测试缺陷是基本工作。但往往我们会遇到:开发人员无法根据我们描述的缺陷步骤,复现缺陷现象。且不说是不是因为测试人员描述的步骤不够精准或不够详细,一旦出现开发无法复现缺陷现象时就会出现频繁地沟通,导致出现缺陷处理时间延长的潜在风险。不仅如此,即使是测试人员一对一、当面为开发人员演示了缺陷的复现步骤,也可能出现缺陷处理人的转移而重复缺陷复现过程,由此会出现许多反复无效的沟通环节。  那么,你是怎么复现缺陷步骤呢?可能大家都有比较好的方法。但是笔...
            0 0 527
            分享
          •   正常情况下,有了四年的测试工程师经历,应该可以达到中级测试工程师的水平了。作为一个初中级测试工程师下一步是转开发还是继续做测试,个人建议是做测试开发!  本篇文章将由以下四个部分来展开:  ·可以继续做测试吗?  ·转行做开发可以吗?  ·为何说建议转行测试开发?  ·如何走向测试开发,有什么靠谱的办法?  一、可以继续做测试吗?答案是行不通  这里所说的测试是指普通的“手工测试”,如果只是做普通的手工测试,只是每天机械的进行“点点点”,想拿高薪是不太现实的。即使工作的时间长了,但是大部分人员还是停留在初级测试工程师的阶段。并且随着年龄的增长你会发现你越来越没有了竞争力,比你年轻、有活力、...
            0 0 1665
            分享
          •   测试团队作为产品研发团队重要的一环,承担着产品研发质量保证的工作。一款产品质量的好坏,测试团队起着很重要的作用。  作为测试团队的管理者、负责人,所有工作的开展,都需要从自身团队的价值出发,为整个团队找到最佳的价值输出点。  今天,我们就从这个点出发,探讨测试团队的管理工作。  一般情况下,测试团队工作的服务对象,主要包括两个:一个是产品的最终用户,另一个是产品的研发团队,我们分开来说。  最终用户  产品的最终用户,最直观地感受着一款产品质量,测试团队测试的好坏与否,产品的最终用户最有发言权。  因此,如何让产品的最终用户的体验,来证明测试团队的价值,是测试团队最重要的工作之一。  从这...
            1 2 1742
            分享
      • 51testing软件测试圈微信