💸 汇款业务
核心定位汇款(转账)是银行支付结算的基础业务,涉及行内转账、跨行汇款(大额/小额)、跨境汇款、批量代发代扣等。测试重点在于交易幂等性、金额精度、资金一致性、汇路选择以及峰值TPS下的系统稳定性。
📋 汇款渠道体系
1. 行内转账
同一银行内部账户间转账,实时到账,不经过人行支付系统。核心逻辑:扣付款方余额→增加收款方余额,借贷在同一核心系统内完成。
- 时效:实时到账,7×24小时可用
- 限额:按客户等级/渠道设置单笔和日累计限额
- 手续费:通常免费或按笔收取
2. 跨行汇款——大额支付系统(HVPS)
通过人行大额支付系统逐笔实时发送,资金实时到账,工作日 8:30-17:00 运行。
- 时效:实时到账(秒级),逐笔清算
- 限额:无上限(实际受账户余额和限额控制)
- 报文:XML格式,支持附言、用途等扩展字段
- 手续费:按金额阶梯或按笔收取
3. 跨行汇款——小额支付系统(BEPS)
通过人行小额支付系统批量打包发送,定时轧差净额清算,7×24小时运行。
- 时效:非实时,通常30分钟内到账
- 限额:单笔≤100万元(具体以人行规定为准)
- 模式:贷记(付款)、借记(收款)均支持
- 批量:支持批量代发、代扣、代收
4. 超级网银(IBPS)
人行网上支付跨行清算系统,7×24小时实时到账,单笔限额较低。
- 时效:实时到账(秒级)
- 限额:单笔≤5万元(可申请提高)
- 特点:支持协议支付、账户查询等增值功能
5. 跨境汇款
通过SWIFT网络发送报文,经代理行/清算行完成跨币种资金转移。涉及外汇管理、反洗钱筛查、报文格式转换等。
- 报文格式:MT103(客户汇款)、MT202(银行间头寸调拨)
- 时效:通常1-3个工作日
- 费用:汇款行、中间行、收款行各收取费用(OUR/SHA/BEN三种模式)
🔀 汇路选择
汇款系统需根据交易金额、时效要求、收款行信息,智能选择最优汇路:
| 条件 | 汇路选择 |
|---|---|
| 行内账户 | 行内转账(不走人行) |
| 金额 ≤ 5万元 + 实时要求 | 超级网银(IBPS) |
| 金额 > 5万元 + 实时要求 | 大额支付系统(HVPS,工作时间)/ 小额(非工作时间排队) |
| 无实时要求 | 小额支付系统(BEPS) |
| 批量代发/代扣 | 小额支付系统批量 |
| 跨境汇款 | SWIFT + 代理行/清算行 |
🧾 对账体系
汇款业务涉及多层对账:
- 行内对账:核心系统与支付前置的流水核对,确保每笔交易借贷平衡
- 人行对账:支付系统与人行清算系统的往来账核对,下载人行对账文件逐笔勾兑
- 往来户对账:存放中央银行款项科目的明细核对
- 挂账处理:来账无法自动入账时挂账,人工核实后入账或退汇
🧪 功能测试要点
幂等性
- 交易去重:同一笔交易(相同请求流水号)重复提交,只能成功一次,后续返回"交易已处理"
- 超时重试:客户端超时后重试,服务端须识别为同一笔交易而非新交易
- 幂等键设计:验证幂等键(请求流水号/交易唯一标识)的生成规则和有效期
- 资金不可重复扣划:重复请求绝对不能导致重复扣款,这是最关键的幂等性验证
- 幂等失效场景:数据库主备切换、缓存失效、系统重启后幂等记录的恢复
金额精度
- 舍入规则:验证交易金额、手续费、汇兑损益的舍入规则(四舍五入/银行家舍入)
- 多币种精度:日元(无小数)、人民币(2位)、外汇(2-4位)的精度处理
- 金额溢出:大额交易(亿元级以上)的金额字段溢出保护
- 手续费计算:按金额阶梯收费时,边界值(如5万元刚好跨档)的手续费计算正确性
- 金额一致性:发起方、中间渠道、接收方三方金额一致(跨境场景尤其重要)
限额控制
- 单笔限额:按渠道(柜面/网银/手机)、客户等级、账户类型设置单笔限额
- 日累计限额:同一账户/客户当日所有渠道累计金额不超过日限额
- 月累计限额:跨境汇款等受外汇管制场景的月累计限额
- 限额动态调整:验证限额实时生效(无需等待日终),调整后立即影响新交易
- 限额穿透:多账户联动的限额穿透(如信用卡溢缴款转出限额)
- 限额绕过:分拆交易规避限额检测的系统识别能力
挂账退汇
- 挂账场景:收款账号不存在、收款户名不符、账户状态异常(冻结/销户)、跨行来账信息不全
- 挂账处理:挂账后生成待处理任务,柜员人工核实后入账或退汇
- 退汇路径:原路退回,退汇金额=原汇入金额,退回手续费处理
- 超时处理:挂账超N天未处理(如30天),系统自动退汇
- 挂账科目:验证挂账使用的临时科目(如"待处理汇入款"),日终不得有余额挂账
冲正
- 实时冲正:交易异常时实时发起冲正(如支付超时),恢复付款方账户余额
- 冲正幂等:重复冲正请求不能重复入账,确保冲正操作的幂等性
- 冲正时效:冲正操作必须在原交易当日完成(T+0),隔日需走调账流程
- 部分冲正:支持部分金额冲正(如批量代发部分失败)
- 冲正对账:冲正交易需在日终对账中体现为冲正流水,不参与正常对账
- 调账流程:隔日差错通过调账(蓝字/红字冲正),需复核审批
⚡ 性能测试要点
峰值TPS
- 场景:工作日高峰期(如每月15日工资发放日、月末资金归集日),行内+跨行转账峰值
- 目标:支付网关 TPS ≥ 10000,核心系统接口 TPS ≥ 5000
- 验证点:线程池配置、数据库连接池、消息队列积压、GC暂停时间
- 压测方案:按生产峰值 3 倍加压,持续 30 分钟,验证系统稳定性
- 限流策略:验证过载保护(限流/降级)是否生效,避免雪崩
批量打包
- 场景:小额支付系统定时批量打包,将多笔小额汇款合并为一个清算包发送人行
- 目标:每次打包交易数 ≥ 10000 笔,打包耗时 ≤ 5分钟
- 验证点:打包策略(按收款行/金额/时间窗口)、文件生成/压缩性能、FTP传输效率
- 批处理窗口:批量代发(如工资发放)在上午10点前完成全量处理和发送
超网并发
- 场景:超级网银7×24小时实时交易,电商大促(双十一、618)期间支付并发激增
- 目标:超网接口 TPS ≥ 5000,P99 ≤ 500ms
- 验证点:与超网前置机的连接池管理、证书验证性能、报文组拆包开销
- 长连接:验证长连接复用效率,减少握手开销
对账批处理
- 场景:日终与人行对账文件下载、解析、逐笔勾兑、生成差错报告
- 目标:全量对账完成时间 ≤ 1小时(日交易量千万级)
- 验证点:对账文件解析效率(大文件流式读取)、数据库批量比对SQL优化
- 差错处理:对账不平时的自动重试、人工介入流程、差错调账
- 多场次对账:工作日支持多场次对账(如12:00、17:00、日终),减少日终一次性压力