💳 支付系统架构

📖 业务背景

中国现代化支付系统(CNAPS)由中国人民银行主导建设,二代支付系统整合了大额实时支付(HVPS)、小额批量支付(BEPS)和网上支付跨行清算系统(IBPS/超级网银)。此外,银联和网联分别在银行卡清算和第三方支付清算领域承担关键角色。行内支付系统是银行内部账户间的转账通道。各类渠道在运营时间、清算方式、到账时效、金额限制等方面差异显著,是功能测试和性能测试的重点领域。

🏗️ 支付渠道全景

HVPS — 大额实时支付系统

逐笔实时发送、实时清算、实时到账。工作日 8:30-17:00 运行,无金额上限(部分场景≥5万元起点)。主要服务于大额对公支付、金融市场交易、国库资金划拨等对时效性和安全性要求极高的场景。

核心流程:发起行→支付报文→HVPS→实时清算→接收行→实时入账

BEPS — 小额批量支付系统

批量打包、净额清算、定时轧差。7×24小时运行,单笔限额通常≤100万元(部分≤5万元)。适用于代发工资、批量扣款、公用事业缴费等高频小额交易场景。

核心流程:发起行→打包批次→支付队列→净额轧差→定时清算→批量入账

IBPS — 网上支付跨行清算系统(超级网银)

支持网上银行、手机银行、第三方支付的实时跨行转账。7×24小时连续运行,单笔限额≤5万元。具备账户查询、跨行归集等增值功能。

核心流程:网银发起→IBPS网关→跨行路由→实时转发→目标行确认→实时入账

银联 & 网联清算体系

银联(CUPS):负责银行卡跨行交易的转接清算,覆盖ATM取款、POS消费、无卡支付等场景。采用批次清算+日终轧差模式。

网联(NUCC):为非银行支付机构(支付宝、微信支付等)提供网络支付跨行清算服务,实现"断直连"。采用实时清算+逐笔转发。

行内支付系统

同一银行内部账户间的资金划转,不经过央行清算系统。包括行内转账、内部户调拨、柜面通存通兑等。通常实时到账,无金额限制,但需要校验账户状态、余额和授权。

💡 贷记与借记差异 贷记(Credit)指资金从银行流出(如客户转账付出),借记(Debit)指资金流入银行(如客户存款入账)。测试时需区分:贷记交易扣减付款账户余额,借记交易增加收款账户余额;两者的账户方向、会计分录、手续费计算逻辑相反,需分别验证。

🧪 功能测试要点

1. 金额限制

测试场景验证点预期结果
单笔金额超限BEPS单笔超过100万、IBPS超过5万拒绝交易,返回超限错误码
日累计金额超限同一账户当日累计支付超过日限额当日后续交易被拦截
月累计金额超限月度累计转账超过月度限额超限后交易拒绝,次月重置
零金额交易发起0元支付系统拒绝,返回金额无效
负金额交易发起负数金额支付系统拒绝,参数校验失败
边界金额恰好等于限额上限/下限边界值正常通过
大额授权超过授权阈值的交易需二次审批审批通过后方可发送

2. 超时处理

测试场景验证点预期结果
支付请求超时向央行系统发送报文后无响应超时后触发查询/冲正机制
渠道连接超时与HVPS/BEPS/IBPS连接中断自动切换备用线路,告警通知
对端响应超时接收行长时间不返回确认超时后自动查询交易状态
交易幂等性同一笔支付在超时后重发不会重复扣款/重复入账
异步回调超时支付结果异步通知超时未到达触发主动轮询查询机制
队列超时消息队列中报文滞留超过TTL报文过期丢弃,记录异常日志

3. 状态流转

状态含义触发条件可流转至
INIT初始/待受理客户发起支付ACCEPTED / REJECTED
ACCEPTED已受理系统校验通过PROCESSING / CANCELLED
PROCESSING处理中已发送至央行/渠道SENT / FAILED / TIMEOUT
SENT已发送渠道已接收并处理SETTLED / RETURNED
SETTLED已清算/已到账资金到账确认终态
FAILED失败交易处理异常终态(可冲正)
TIMEOUT超时未知超时未确认SENT / FAILED(查询后)
REJECTED已拒绝校验/风控拒绝终态
CANCELLED已撤销客户主动撤销终态(不可逆)
⚠️ 状态流转测试重点 重点验证非法状态跳转(如 CANCELLED→SETTLED)、并发状态下状态竞争、以及超时后查询更新状态的一致性。还需验证渠道返回状态与行内状态的对账一致性。

4. 异常场景

  • 扣款成功但渠道未发出:付款账户已扣款但因系统异常未发送至央行,需验证自动冲正/补偿机制
  • 渠道已清算但入账失败:收款行接收到清算信息但因账户状态异常入账失败,需验证挂账处理和人工干预流程
  • 重复报文:网络重传导致同一笔支付发送两次,需验证幂等控制和重复交易拦截
  • 报文格式错误:发送格式不符的ISO 20022报文,需验证校验拒绝和错误码返回
  • 日切窗口交易:日切时刻提交的交易,需验证交易归属日期的正确性
  • 断网恢复:渠道断网后恢复,积压报文的重发和顺序保证
  • 大并发下状态不一致:高并发时多个线程同时更新同一笔交易状态

5. 贷记/借记差异

对比维度贷记交易(Credit)借记交易(Debit)
资金方向本行资金流出本行资金流入
账户影响付款账户余额减少收款账户余额增加
会计分录借:客户存款 / 贷:清算往来借:清算往来 / 贷:客户存款
手续费从付款方收取通常不收取或从收款方收取
测试重点余额不足处理、透支控制入账校验、反洗钱筛查
冲正逻辑反向贷记(退款)反向借记(扣回)

⚡ 性能测试要点

1. 各渠道TPS参考

支付渠道典型TPS峰值TPS测试方法
HVPS(大额实时)100-200500+逐笔压测,关注延迟分布
BEPS(小额批量)500-10003000+批量压测,关注打包效率
IBPS(超级网银)300-5001500+混合场景压测,关注网关吞吐
银联CUPS2000+10000+多通道并发,关注清算批处理
网联NUCC5000+30000+高并发长连接,关注连接池
行内支付1000+5000+全链路压测,关注核心系统

2. 大额实时延迟要求

⏱️ 延迟SLA要求 大额实时支付(HVPS)端到端延迟需控制在2秒以内(从客户提交到对方行入账)。延迟分布需满足 P99 ≤ 2s、P95 ≤ 1s。超过5秒视为异常交易,需触发告警和自动查询。
  • 端到端链路分析:分解为网关延迟、核心记账延迟、渠道通信延迟、对端响应延迟四段,逐段压测定位瓶颈
  • P99延迟监控:重点采集P50/P90/P95/P99延迟分布,异常波动需实时告警
  • 长尾优化:分析P99以上慢交易的原因(GC停顿、锁竞争、网络抖动)
  • 同城/异地延迟:同城灾备切换场景下延迟变化,异地双活场景下的同步延迟

3. 小额批量打包

  • 打包策略验证:按时间窗口(如每5分钟)、按笔数(如满100笔)、按金额(如满500万元)触发打包
  • 批次文件生成:大批量交易明细文件(如10万笔)的生成耗时和文件完整性
  • 净额轧差计算:多场次轧差计算的正确性和计算耗时(需在秒级完成)
  • 场次管理:BEPS每天多个清算场次(如00:30、11:00、15:30等),各场次切换的衔接验证
  • 断点续传:批量处理中断后从断点恢复,不丢数据不重复

4. 网关并发

  • 连接池容量:支付网关连接池大小与并发数的匹配,连接泄漏检测
  • 队列深度:高并发下报文队列最大堆积深度,队列满后的拒绝策略
  • 线程池调优:核心线程数、最大线程数、队列容量的黄金配比
  • 限流降级:超过网关承载上限时的限流策略(令牌桶/漏桶),降级后最小可用保障
  • 超时重试策略:指数退避重试、最大重试次数、熔断器配置
  • SSL/TLS开销:加密通信对吞吐量的影响,会话复用优化