本篇主要讲清楚收银核心的设计与实现,包括收银核心如何渲染可用支付方式,如何做可支付检查,收银台核心的系统架构、领域模型,常见支付方式等。如果说电子商务是现代经济的繁华都市,那么在线支付系统无疑就是最繁忙的交通大动脉。在这个每年数十万亿规模的在线支付交易世界中,有两个默契十足的队友密切配合,确保每一笔交易都像优雅的华尔兹舞步一样流畅 -- 那就是:收银核心和支付引擎。
每个公司的账务系统设计思路、实现方式必然是不一样的,我个人经历过好几家支付公司,实现细节千差万别,但是整体思路都差不太多,比如账户设计一定有客户账户和内部账户,一定有中间户(过渡户),也一定使用复式记账,也都有实时记账和缓冲记账等。
除了从事账务系统研发的工程师外,大部分支付研发工程师对账务都了解甚少,主要原因仍然是账务系统的业务门槛往往大于技术门槛,比如很多支付研发工程师甚至不了解复式记账。所以有必要从研发工程师的角度来介绍一些账务系统入门的知识。需要说明的是,不同支付公司内部设计的账务系统必然存在差异,但有些基本原则大家都会遵守,比如复式记账、账户管理、记账、对账、会计中心、日切等。
本文描述的概念大部分做了极致简化,只是用于入门,对于理解概念应该是够用的。真实的实现会复杂非常多。这些概念如同支付核心系统拼图的一些小碎片,串起这些小碎片,就是一个完整的支付系统大图。另:后面的描述中,经常混着用“支付系统”、“支付平台”,“支付机构”,“收单机构”,本质是一个东西。在内部来说,就是一个支付系统,但从和外部机构交互来说,就是一个支付平台。对用户来说是支付,对商户来说就是帮商户收单。
本文主要讲清楚支付系统中拒付涉及的基本概念,产品架构、系统架构,以及一些核心的流程和相关领域模型、状态机设计等。拒付在中国比较少见,但是在海外非常普遍,只要做跨境收单支付系统,就无法绕开拒付。拒付涉及到冻结收单单据,并扣减商户的结算款,所以拒付经常和收单、结算一起讲。下面这个图第三次出现,只是想强调三者之间的紧密关系。
本文主要讲清楚支付系统中商户结算涉及的基本概念,产品架构、系统架构,以及一些核心的流程和相关领域模型、状态机设计等。收单结算是支付系统最重要的子域之一,行业内经常把有牌照的支付平台称为“收单机构”就可见一斑。我们在上一篇文章讲了收单如何帮忙商户收钱,收完钱还得转给商户,用户支付100块钱,那么到底给商户多少钱,什么时候给,这都是结算平台干的工作。谓之“结算”
收单结算是支付系统最重要的子域之一,行业内经常把有牌照的支付平台称为“收单机构”就可见一斑。有些监管严格的国家地区,没有收单牌照就不能碰收单和结算,商户必须入驻到有收单牌照的支付机构。本文主要讲清楚支付系统中收单涉及的基本概念,产品架构、系统架构,以及一些核心的流程和相关领域模型、状态机设计。
支付系统无论需求文档还是技术方案文档,都充斥着专业词汇和行业通用词语,这些术语有的直观易懂,有的则晦涩难解。在这篇文章中,我将揭开支付系统中常用术语的神秘面纱,用最通俗的语言解释这些专业词汇。需要说明的是:这些术语是我个人从业10来年经验的总结,多用于聊需求或设计时使用,严谨性可能不及一些权威书籍,但是足够实用,起码在中国绝大部分的支付大厂是通用的。此外,一些术语在不同的领域有不同含义,下面的定义只适用在线支付系统场景下。
下面描述的概念大部分做了极致简化,只是用于入门,对于理解概念应该是够用的。真实的实现会复杂非常多,后面的系列文章会展开做详细说明。后面的描述中,经常混着用“支付系统”、“支付平台”,本质是一个东西。在内部来说,就是一个支付系统,但从和外部机构交互来说,就是一个支付平台。
支付安全是支付系统最重要的根基之一,没有支付安全,在线支付系统就无从谈起。但是安全又是一门很大的学科,涉及密码学,网络设备,法律法规,流程制度等方方面面。这里只谈一些和软件研发比较紧密的一部分内容,不涉及网络防火墙等网络设备安全。主要包括以下几点内容:支付安全体系概要;常见加解密、加验签等密码学知识。统一密钥存储及加解密系统设计概要。