5. 退款
退款交易是对已发生的快捷支付、代收、网关支付等交易进行反向处理,将用户资金退回原有的银行账户。
例如用户在淘宝上选定商品并使用支付宝支付后,觉得商品不合适,这时发起了退款请求将资金退回原有的银行账户。
五、银行侧支付系统1. 总体架构
网联银行侧系统常见的架构设计思路可按照四个层次进行划分,分别是应用服务层、公共服务层、通讯前置层、基础服务层。
- 应用服务层:以网联平台所支持的交易类型为基础来设计对应的服务,服务与服务之间相互独立,可根据业务诉求、交易流程、性能等方面的需要独立扩展,以满足灵活多变的业务需求;
- 公共服务层:提供了应用服务层所需依赖的业务服务组件,可减少应用服务层重复造轮子;以协议管理服务为例,主要是对快捷支付协议以及代收协议进行管理,支持协议签订、协议解约、协议查询等子功能,并支持从行内的其他系统或网联平台发起的协议变更处理;同样的,交易限额一般有单笔限额、日累计限额、月累计限额等维度,可提供交易限额扣减、回滚、查询等子功能。而风控、反洗钱检查服务,一般行内都有风控中心或反洗钱中心提供相关服务,按照其提供的服务规范及业务部门规则进行校验即可;
- 通讯前置层:直接对应网联平台,提供了报文签名验签、敏感字段加解密、报文拆拼、格式转换、通讯组件等服务,这类服务变化较少,独立运行可保持系统的稳定性;如签名验签、加解密模块,网联平台有相应的安全信息规范,加密算法支持国密及国际算法,一般是采用硬件加解密,国内的产商有提供整套的解决方案,根据其API封装对应的服务即可;而像报文拆拼服务,由于网联平台的规范是XML报文,且每个交易类型都有不同的报文字段,可抽象出XML报文的拆拼包服务,专门处理处理报文的拼接和拆解;
- 基础服务层:提供了数据库、消息中间件、缓存组件、配置管理、任务调度等服务,实际按各家银行的技术架构进行设计。
2.快捷支付
快捷支付交易涉及的角色包含用户、支付机构、网联平台、银行,用户在支付机构发起交易请求后,经网联平台发送至用户银行卡所在银行(简称发卡行),发卡行经校验、账户扣款后返回交易结果。
在银行支付系统的交易流程中,有几个流程节点需要特别注意。
- 交易信息登记,可以理解为将交易订单信息存储至数据库,其关键交易要素包含交易日期、交易时间、支付机构编号、支付系统流水号、快捷支付协议号(标识着某张银行卡绑定了某个支付机构,用一串唯一的ID表示)、账户类型(如借记卡、贷记卡、公司结算账户)、网联平台流水号(标识唯一一笔交易,由网联平台生成)、网联平台场次号(标识着某个小时内的交易,由网联平台生成,是一串字母 日期 数字的组合)、付款方账户编号、付款方账户名称、收款方账户编号、收款方账户名称、交易金额、业务种类等,交易订单信息登记后,后续可提供相应报表给业务人员查询;
- 快捷支付协议检查,该流程主要是校验快捷支付报文中的协议号(标识着某张银行卡绑定了某个支付机构,用一串唯一的ID表示,由银行支付系统生成)在银行支付系统是否存在记录,存在记录的话是否协议状态是正常的,如果都不符合则拒绝交易请求,校验通过后则可获取协议信息中的签约人银行账户、名称等信息,用于后续环节从指定账户扣款;
- 交易限额扣减,如果是客户有在银行系统设置了银行卡所在支付机构的单笔限额、日累计限额、月累计限额,则会在扣款前进行交易限额扣减,以降低因盗刷等原因造成的资金损失风险,如交易最终失败,需将交易限额进行回滚处理,否则会导致交易限额虚减;
最后,流程的第七、八步不同银行有不同的校验规则、控制策略,这里只列出通用的处理流程。每年的京东618、淘宝天猫双11、双12都有快捷支付交易的保障要求,交易性能要求非常高,交易设计时需尽可能减少与外系统的交互环节,同时做好技术优化,才能使交易有足够高的性能来顶住电商大促活动带来的流量冲击。