技术栈:java+groovy+velocity+支付系统相关概念
文章目录
前言
背景:支付系统通过对接大量的银行、第三方支付公司、银联/网联等为业务方提供支付能力,如支付系统为了提供代扣能力,对接了微信、支付宝、中金等,为什么要对接那么多支付渠道呢,原因有很多,如当微信通道不可用时候走支付宝,当微信不支持从用户某银行卡扣钱时候可以走支付宝,同一笔交易走中金手续费更低,那么就走中金,最终走哪个通道是由支付路由系统进行决策。
这篇文章我们讲解渠道对接的支付网关系统设计,支付网关系统作为与支付渠道交互的系统,也有公司叫前置系统,名字无所谓了,此系统主要负责接收内部系统请求,并将请求报文进行转换,转换为支付渠道要求格式的报文,发起调用请求支付渠道,将支付渠道响应的报文解析,业务处理,然后转为为内部系统所需要的格式的报文返回,每个公司技术架构模式不同,自然职责也不尽相同,但是一定是会有报文解析与组装。
有人可能会郁闷,支付网关有什么好设计的,Controller+Service+Dao三层架构模式开干,应届生都可以完成,特别符合所谓的敏捷开发,无需设计,对接支付宝代扣写一套流程,微信代扣写一套,中金支付写一套,多人并行开发互不影响,开发、测试、部署上线,一气呵成,支付系统多则对接几十家支付渠道,那么同一交易类型流程写几十遍,乐此不疲,代码量体现了程序猿的价值,我相信这是绝大多数