前言:

前一段时间要在组里分享支付业务,网上找了很多文章,发现有好多也是我自己写的。回头看看3年前的文章,当时对支付有一定的测试经验,但是对支付的了解也不是很深。经过在这近两年的支付相关的测试经验,对支付业务有了更深的了解和体会。借着这次机会,把我所认识到的支付业务和支付相关质量保障手段,都在这里一一列出,分享给大家。

part1:支付业务

支付的本质,就是发生在买方和卖方之间的金融交换,是社会经济活动中所引起的货币债权转移过程。

一、支付的发展历程

远古时期,古人用铜币和别人交换所需要的生产资料;随着时代的发展,出现了银行作为信用中介,完成买卖双方和银行的金融服务;再随着最近十年互联网和移动支付时代的到来,金融活动变得更加复杂,也新生了很多其他种类的支付方式(比如二维码扫码支付等等),第三方支付机构应运而生。

二、行业“黑话”

工欲善其事必先利其器,所谓了解一个方向,先学学行业 “黑话”,这样别人说的啥你也能听得懂。

  • 第三方支付:拥有支付牌照的机构;支付宝、微信支付等等;
  • 零钱:客户在第三方支付机构支付体系下的现金户余额,类似支付宝余额、微信的零钱;
  • 两联:银联和网联;
  • 客户:指个人和商户,统称为客户;
  • 备付金账户:三方支付机构在人民银行开立的,存放用户在交易过程中产生的资金;备付金账户产生的背景是啥呢?因为支付机构作为第三方,其实是不能直接触碰用户的钱的,监管机构要求,第三方机构收取的钱,都统一放在银行的备付金账户里。(所以大家不用担心存放在第三方机构的资金安全)

三、有第三方支付机构的场景

//懒得画了

四、第三方支付的能力

第三方支付一般是提供了哪些能力/产品?

  • 充值、提现、查询、转账、退款
  • 支付、代扣、代付
  • 实名认证、签约
  • 记账、对账、出账

五、第三方支付架构

支付宝:

京东金融:

参考博文:https://www.cnblogs.com/zhangtan/p/7715969.html (里面有详细的介绍和各家支付机构的图)

大家看看各家支付的机构图,感觉都很牛逼,都很厉害。不难发现,每家有不同之处,其实也有很多相同的地方。相同之处就是解决支付业务的共同要解决的问题:

  1. 问题一:怎么准确又快速,并且合法合规的从用户手里扣钱?-- 客户系统(用户+商户)可以解决,客户系统可以进行用户实名,商户注册,存储签约信息等等
  2. 问题二:怎么才能把钱扣成功?并且完整记录扣钱的过程?-- 支付中心+账务核心+会计核心可以解决:支付中心提供各种出金入金服务;账务核心可以进行记账对账;会计中心又能提供各种科目汇总和日期处理
  3. 问题三:扣完钱后,怎么去给商家结算?-- 清结算核心可以解决:计算卖家手续费等等

part2:支付业务质量保障

支付业务的质量保障体系,涉及到一些关键信息,这里就不列出来了,分别从几点说吧:

一、业务测试

由于支付业务的特点,个人认为,在业务测试中,主要是两大点吧,一个是支付单子的钱,一个是支付单的状态。钱的话,有这种重复支付的异常;使用各种优惠券的场景;单位也需要注意,有的通道可能是元,有的通道可能是分;退款时,如果是部分退款,注意退款的总金额不超过订单金额。那支付订单状态,要注意支付超时的情况,支付失败等等一些情况,等等。

二、自动化测试

那在自动化测试中,支付业务有啥特别的呢?

  • 首先在断言的时候,校验订单金额,支付核心模块不同系统订单的状态,可能不同系统,成功状态不一样;比如异步的代扣订单,有时延,提交完订单立刻去调查询接口查询时就可能查询到的是订单在支付中。所以我们可以写个循环去读数据库的状态,数据库状态OK了后,再去调查询接口
  • 因为线上的cases都是扣的我们自己真实的钱,所以,我们一般是把扣款,查询和退款放在同一个cases中,支付完再退款,完成单笔订单资金自闭环
  • 线上涉及到真实的资金变动,我们线上有单独的测试商户号,不会对线上真实的是商户账单产生影响

三、性能测试

那在性能测试中,支付业务有啥特别的呢?每个业务都去考虑的仿真度这些这里就不展开讨论了,支付业务最重要的是,的安全!!!

措施:

  1. 压测开关控制:通过开关控制是否接受压测流量
  2. 压测的交易数据隔离:影子库/影子表
  3. 资金监控告警:大量资金变化报警
  4. 资金闭环:资金流动能闭环,不会产生资损
  5. 压测专用用户:不会影响线上真实用户的钱

四、线上监控

最后就是线上监控了,支付业务有大家通用的机器性能的监控,接口qps的监控;除了这些,可以会还有一些业务维度的资金的监控等等

结束语:

以上就是我关于支付业务的理解,和支付业务质量保障每个方向的特别之处的阐述。肯定有不足的地方,也有遗漏的地方,欢迎大家留意讨论

支付业务以及支付业务的质量保障相关推荐

  1. 后端数据操作超时_数据分析在知乎商业质量保障中的初步实践

    背景 知乎客户端发版周期为 1 周,前后端项目需求多且迭代快.客户端各模块虽然做了组件化,但仍然不可避免的存在耦合,导致商业功能会受第三方改动影响.而客户端线上故障需要发版解决,版本覆盖速度慢,且商业 ...

  2. 测试用例优先级划分_全面的质量保障体系之测试用例分级

    在<全面的质量保障体系之发现缺陷>中提到测试用例分级的应用,以最少的测试用例实现覆盖更多的测试场景,以提高测试的精准度.测试用例分级是每个公司都在做的事情,但如何精细化的做好测试用例分级, ...

  3. 现代软件工程 第十四章 【质量保障】 练习与讨论

    15.3.1 有些成功人士或公司认为不需要独立的测试角色(Test),你怎么看? 我猜想和踢足球类似,还是那几个原因: 人太牛: 不世出的天才,例如高德纳写书时发现排版软件不好用,就自己写了一个.也没 ...

  4. 并发-分布式锁质量保障总结

    简介:并发问题是电商系统最常见的问题之一,例如库存超卖.抽奖多发.券多发放.积分多发少发等场景:之所以会出现上述问题,是因为存在多机器多请求同时对同一个共享资源进行修改,如果不加以限制,将导致数据错乱 ...

  5. 火热报名|5月15日线下沙龙上海站——“大促活动场景下的质量保障”主题

    点击上方"蓝字",发现更多精彩. "共创学院"系列线下沙龙本着 "提升国内软件质量水平"的宗旨,汇聚国内外顶尖的软件研发质量.测试的先行者, ...

  6. 如何做机器学习模型质量保障及模型效果评测

    桔妹导读:近年来,机器学习模型算法在越来越多的工业实践中落地.在滴滴,大量线上策略由常规算法迁移到机器学习模型算法.如何搭建机器学习模型算法的质量保障体系成为质量团队急需解决的问题之一.本文整体介绍了 ...

  7. 基于Flink的实时数据消费应用、功能质量保障方法

    前言:由于最近公司的实时数据处理引擎再向Flink迁移,所以专门设计.总结了一篇"基于Flink的实时数据消费应用.功能质量保障方法".欢迎大家一起分享探讨在大数据方面的测试方法和 ...

  8. 敏捷团队的质量保障赋能

    读完需要 16 分钟 速读仅需 6 分钟 "没有专职的测试人员? 代码提交就直接发布到生产环境? 而且,一天还可以发布多次?" 对于很多团队来说,这是完全不可能的事情!他们都是怎么 ...

  9. 研发质量保障体系搭建

    质量保障体系的搭建,并非测试人员一方的责任,需要产品.研发.项目经理.运维工程师一起参与来搭建这个体系. 一.研发流程阶段 1. 需求阶段 需求阶段主要确保「产品经理」输出的原始需求能被项目经理.研发 ...

最新文章

  1. easyui下拉选项多怎么解决_头屑多、头皮痒到底该怎么办?这4个方法帮你解决...
  2. 创建 Npm+webpack
  3. Codeforces 524E Rooks and Rectangles 线段树
  4. python客户价值分析_[Python数据挖掘]第7章、航空公司客户价值分析
  5. .net core2.0下Ioc容器Autofac使用
  6. sqlserver binary varbinary image 的区别
  7. SSM-水果商城-导入项目-学习-2
  8. Eclipse srever起来时,时间超过45s。
  9. GRUB 和 GRUB2 的区别
  10. spring源码-自动注入
  11. c 语言与试验系统,Turbo C/C++软件学习下载
  12. 中国人民大学与加拿大女王大学金融硕士项目不仅实现自我升华还能拿到闪亮文凭
  13. 基于微信小程序的垃圾分类小程序(源码已开源)
  14. 云南提供云南IP的公司有哪些
  15. Travis CI 简介
  16. Unity如果制作特效
  17. 《ThinkPHP 5实战》4个实战开发案例可从代码仓库下载
  18. UltraDefrag(磁盘碎片整理工具) v8.0.1中文绿色便携版
  19. Unity教程初级Ruby‘s Adventure游戏实现带工程源码
  20. 自然语言处理之数据平滑方法

热门文章

  1. 章节二:HTML基础
  2. 运行维护巡检流程及内容
  3. 如何下载 Google Chrome 离线安装包
  4. 刚入职程序员竟是培训出身!网友:百度3年和培训班一个水平吗?
  5. linux下将qt程序打包成appimage程序
  6. 秋季喝什么茶对身体好
  7. Android SDK安装和配置
  8. VirtualBox虚拟机转换到VMware中,用VMware打开VirtualBox虚拟机
  9. 转载:读《平凡的世界》
  10. 使用 PowerDesigner 和 PDMReader 逆向生成 MySQL 数据字典