一、银行支付系统
伴随着互联网金融的兴起以及移动支付的普及,市场在演变、支付领域也在改革,而各大结构对统一支付平台的构建也迫在眉睫。一体化的支付平台设计即整合线上和线下支付业务、统一收银、统一路由、统一日终,对接行内核心系统以及行外大小额系统、超级网银、银联、第三方支付等资金通道,是一整套资金流转体系。
支付系统涉及到的业务主要包括:智能路由、聚合收单、日终清算、日终对账、差错冲正。
- 智能路由则是系统根据业务类型、手续费、时间等多维度判断选择最优的资金通道
- 聚合支付是聚合网络支付,将微信、支付宝、网关支付集成一个平台为电商平台服务,而聚合收单则是聚合线下的服务,将不同支付方式收单集于一个二维码或者终端扫码枪中,为实体店商家服务
- 日终清算主要是负责支付系统与电商平台、资金通道合作方之间的资金清分结算,主要涉及清分、计提、手续费结算、财务结算、分润等,完成机构之间的日终资金流转
- 日终对账则是系统将商户、资金通道合作方、核心系统之间的交易通过文件方式进行对账,并进行对应的差异化处理
- 差错冲正则是差错处理后一种最直接的补偿方式
二、支付业务场景
下面描述几个生活中常用到的涉及到支付业务流程的功能:跨行转账、订单支付、二维码支付。
1、跨行转账
上图是一张跨行转账的资金流向图,它的业务流程是这样的:
- 小明从工行卡里向小红的建行卡里发起转账,经过统一支付平台的智能路由判断后选择一个资金通道来进行转账
- 银联、超级网银、大小额、第三方支付通道各自的特点上图中有简单列出
- 银联、超级网银、大小额资金通道的资金流向是各行在人行开立的备付金账户之间的资金轧差清结算
- 第三方支付则是支付机构开在各个行的备付金账户,第三方支付机构备付金账户与客户账户之间的资金流转,但第三方支付机构之后备付金账户也需要开在人行
2、电商订单支付
上图是一张订单支付的流程图:
- 消费者在电商平台上生成一笔订单,在电商平台发起支付申请
- 电商平台对接第三方支付机构,第三方支付机构到消费者绑定卡的发卡行发起扣款请求
- 发卡行划转款项至第三方支付备付金账户,并返回支付支付机构支付结果
- 第三方支付备付金账户之后资金清算划拨至商户收款账户
3、二维码支付
二维码支付是目前我们最常用的一种支付方式,上面介绍二维码支付的流程:
- 消费者出示二维码,商户扫描二维码后,商户pos收单机构接受消费请求
- pos收单机构通过银联向发卡行发起消费请求
- 发卡行扣款后返回扣款结果,银联将扣款结果返回给pos收单行,完成支付动作
三、支付业务测试点
1、测试方法
- 功能测试:通过将边界值分析、等价类划分、错误推测、因果图等各种测试方法进行结合,整理出尽可能全面的测试案例,对支付功能及其相关功能进行测试,以确保整个支付流程以及涉及到支付流程的其他流程在任何情况下都能正常进行
- 接口测试:明确整个支付流程所需要调用的接口,分清楚商家和第三方支付平台的接口以及参数和请求方式。包括对接口特定参数的加密,使用异常订单号模拟支付,对服务端的校验等等
- 安全测试:支付涉及到金额方面,所以要考虑安全测试方面。支付请求的伪造、金额的恶意篡改、恶意模拟第三方接口来调用商家接口等等
- 性能测试:对于电商入口的支付业务,要考虑支付接口能承担的最大并发情况
- 兼容性测试:测试支付功能,在不同手机品牌,不同操作系统下是否兼容
- 界面测试:支付页面能否正确显示,二维码的界面是否正确,支付的每个步骤界面是否正确。不会出现前端界面错误,或者打开不了界面,界面是否清晰没有错别字出示二维码时自动调整屏幕亮度
2、支付测试点
1)支付金额测试点
- 正常金额支付
- 金额的最小值:0.01
- 无意义的值:0元
- 支付金额为空
- 最大金额:设置支付的最大金额
- 银行卡或微信等,设置每日最大消费金额或者单笔最大消费金额
- 银行卡或微信余额不足时支付
- 支付金额能否允许复制、粘贴
- 支付金额文本框是否接受tab键
- 是否可以是非数字
- 支付金额的精度验证
2)支付流程测试点
- 正常完成支付流程
- 调起订单后,取消订单
- 支付中断后,继续支付
- 支付中断后结束支付
- 单笔订单单笔支付
- 多订单合并支付
- 持续点击支付,是否会出现多次购买
- 支付成功之后返回是否会重复支付
- 支付成功后返回支付页面再次提交支付
- 支付页面停留长时间不支付
3)支付方式测试点
- 支付宝支付
- 支付宝网页支付
- 微信支付
- 银行卡支付
4)优惠券或折扣
- 支付中使用优惠券/折扣,应付金额和实际支付金额是否正确
- 优惠券/折扣是否是必选,是否可以不选择折扣
- 支付订单退款完成后,优惠券/折扣是否还能使用
- 不同电商vip账户,使用不同的优惠券
- 支付宝有抵减活动,是否能正常折扣
5)支付验证测试
- 密码验证支付
- 免密支付
- 指纹验证支付
- 脸部识别验证支付
3、退款测试点
- 正常订单退款–>正常完成退款业务
- 无故发起退款:提交不存在的订单号或者支付订单号—>订单号不存在/支付订单号不存在
- 信息不匹配发起退款:提交订单号与支付订单号不匹配的数据—>订单号/支付订单号有误
- 退款大于实际金额:提交的退款金额大于实际支付订单的金额–>商户系统要报错
- 商户系统这里发过去的请求:退款金额大于实际支付金额–>第三方要报错