支付业务以及支付业务的质量保障

article/2025/10/6 3:39:39

前言:

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

part1:支付业务

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

一、支付的发展历程

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

二、行业“黑话”

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

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

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

//懒得画了

四、第三方支付的能力

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

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

五、第三方支付架构

支付宝:

京东金融:

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

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

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

part2:支付业务质量保障

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

一、业务测试

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

二、自动化测试

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

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

三、性能测试

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

措施:

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

四、线上监控

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

 结束语:

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


http://chatgpt.dhexx.cn/article/81AN2tDA.shtml

相关文章

汇聚支付APP+技术方案介绍

一、时序图 商户使用汇聚支付的 APP方案,需要两个步骤: 步骤一: 请求汇聚支付的支付接口,https://www.joinpay.com/trade/uniPayApi.action 获取返回的关键参数 rc_Result。 步骤二: 商户 APP 按照微信的 SDK 规范使…

华为云黎江:打造支付平台化解决方案,直面现代支付体系新挑战

9月14日至15日,由中国支付清算协会举办的第十一届中国支付清算论坛在北京举办。本次论坛以“守正创新担当,服务实体经济”为主题,旨在助力支付清算行业稳健、高质量发展,解读政策趋势,加强行业交流。华为云计算公司战略…

两化融合基本概念

一、两化融合的背景 两化融合是指工业化和信息化深度交融,集中精神开展研发、设计、销售、管理等高附加值产业链环节,完成产业高端环节的集聚和产业的快速增长。 中国在此方向的纲领是“中国制造2025”,我们要从制造大国向制造强国转型&am…

支付整体架构

5.4 支付的技术架构 架构即未来,只有建立在技术架构设计良好的体系上,支付机构才能有美好的未来。如果支付的技术体系在架构上存在问题,那么就没有办法实现高可用性、高安全性、高效率和水平可扩展性。 总结多年来在海内外支付机构主持和参与…

研究支付业务中,银行、支付机构与银联、网联的关系逻辑

本文由作者 产品经理龙汪汪 发布于社区 阿强最近从微信钱包里面提现了一笔巨款,支付了N多的提现手续费。你应该晓得,微信的提现手续费是千分之一。那么问题来了:阿强提现的这笔巨款是多少钱? 微信和支付宝,原来提现一直…

银行传统支付通道与支付平台结合

主题分享 大家好,本人李小胖,08年开始工作以来到目前为止一直与银行打交道,从开始08年做电子渠道到13年赶上移动支付的第一波,有幸见证了SWP-SD、NFC-SIM、全卡、全终端的发展,之后就一直从事支付平台相关的工作。 今…

破解企业服务支付难题,SaaS与支付如何深度融合?

中国软件网 报道 | 公众号:Hapiweb-soft6 日前,腾讯云宣布其云支付系统已于10月11日启动收费计划。注意!是云支付系统收费,不是微信支付收费。 云支付是腾讯云联合微信支付推出的移动收单SaaS服务,旨在为服务商开展业务…

对接建行支付

前两篇文章介绍了对接微信支付和农行支付的方法,这篇文章介绍一下建行支付。 使用场景: 在微信公众号中调用微信付款,或者公众号内页面调用龙支付或者H5页面支付。 一、微信支付 参考建行给的接口文档 交易流程如下: 按照接口要求…

聚合支付介绍—简单明了一目了然

现在大家去买东西,支付宝和微信已经成为必备的支付工具了。商超、饭馆、菜场、打车、坐公交、去医院等,几乎都可以使用支付宝或者微信。随着移动支付的迅猛普及,一种新型的支付方式开始流行,这就是聚合支付。 什么是聚合支付&…

什么是聚合支付?

关于这个问题,相信有不少商家仍保有疑惑,甚至更多的人对它闻所未闻。和扫码支付一样,聚合支付已经融入大多数人的生活,同时也成为了未来的趋势。 聚合支付也被称为融合支付,是指借助银行、非银支付机构或清算组织的支付…

记录IDEA导包不能导入的问题

记录IDEA导包不能导入的问题 -------------------…

电脑重启后IDEA导包报错

电脑重启后IDEA导包报错

Idea的自动导包设置

idea的自动导包对jdk1.8有时候不是很管用。但是对高版本的jdk很有用,比如jdk17。当然这些的前提是,必须是要导包的类只有一个包,如果有 多个包中都有相同的类名的话(如:java.util.Date和java.sql.Date)&…

Idea导包自动去除Import xxx.*里的星号

一、打开Idea > File > Settings 二、在settings界面中依次打开Editor>Code Style>Java,在Scheme下拉框中选择Default 1.将Class count to use import with ‘*’ (导入同一个包的类超过该数值时自动变为 *)的值改成99 2.将Nam…

idea中导包方法

目录 java SE (idea 中添加jar包)java EE (idea 2020.3 中添加架包) java SE (idea 中添加jar包) 新建一个java se项目 在src文件下新建一个package,名字任意 然后把想要添加的jar包粘贴进去 对该文件右键,选择add as library ok就完事了…

idea自动导包错误

最近在使用idea时由于错误操作,导致我在new List子类时报错,查看导入后发现是如下错误 import com.sun.xml.internal.bind.v2.schemagen.xmlschema.List; 解决方式如下: 点击 idea菜单栏的 file -> settings -> General -> Auto …

解决IDEA导包时自动使用*号替代具体类名问题

一、问题 开发过程中IDEA导包时会自动使用*号替代具体类名,后期有编码要求显示引用的具体类型的需要 默认导包格式>>> 需要的导包格式>>> 二、解决办法 1、更改IDEA默认的Class count to use import with *‘为99 2、自动替换项目中所有使用*表…

Idea导包正确还是显示标红(错误)

问题描述 idea引入新的类,import不了,依赖都是正确的,手动加入import还是标红,但是编译、打包都是通过的。 解决方案 方案一 更新一下Maven,可能是因为没有更新Maven,所以依赖不存在,这种情…

关于IDEA导包出现错误,爆红的情况

Cannot resolve symbol WorkreportService,也就是导包爆红 如果JDK和Maven都设置没问题的话,清理IDEA的缓存 “File” -> “Invalidate Caches / Restart”,然后点击对话框中的 “Invalidate and Restart”,清空 cache 并且重…

Idea 导包自动变成星号 Idea 导包自动变成*号的问题 java.io.* Idea 自动导包变成星号

Idea 导包自动变成星号 Idea 导包自动变成*号的问题 java.io.* Idea 自动导包变成星号 一、问题描述 1、在使用idea开发时,经常会出现导入的包自动变成 xx.*的情况,比如下面代码: public String read(MultipartFile file) throws IOException…