相关概念
付款方式:付款方式指消费时的付款方式,如现金支付、货到付款、信用卡支付、借记卡支付、二维码支付等。
支付应用:支付应用是指提供给终端用户在特定场景使用的产品,例如扫码支付、二维码支付、打赏、众筹、POS支付、生活缴费、信用卡退款、手机充值等。这类应用构建在支付产品基础上,直接向终端用户提供服务。
引导路由:引导路由是根据支付应用程序、支付商户、订单金额等信息确定向用户提供的支付方式列表。
支付路由:支付路由是指根据用户选择的支付方式,结合费率、QOS等因素,选择合适的银行或其他公司提供的支付接口完成资金划转操作。
支付接口:支付接口是指银行提供的执行支付的接口。需要注意的是,对于同一家银行,除了总行,地方分行也可以提供此接口。但一般来说,同一家银行的接口规格是相同的,区别在于提供接口的服务器、速率、性能。
支付渠道:这是支付接口的封装,包括合作银行,渠道费用,商户费率,QOS等信息。
支付产品:是指将支付渠道包装成适应特定支付场景需求的产品,例如信用卡快通卡、信用卡摩托罗拉卡等。
支付系统:通过支付路由将支付通道提供的“支付产品”封装成业务所需的“支付产品”,这是支付的核心流程,支付路由在其中起到关键作用。
參與者
客户:客户是与商户发生交易关系,与商户存在未偿债权债务关系的一方。客户使用自己的支付工具发起支付,是支付操作的发起者之一。在交易中,客户也成为交易主体。
商户:商户是具有债权的商品销售者,根据客户发起的支付指令,商户向支付系统发起获取资金的请求,商户需要获得支付系统的访问权限,通常是在服务器端与支付系统进行交互。
客户开户银行:又称发卡银行、发卡机构等。指客户开立账户的支付渠道,客户需要使用该支付渠道支持的支付工具发起支付,此工具也意味着一种信用,为支付工具的支付提供担保。
商户银行:指商户开户的银行。商户将客户指令提交其银行后,该银行发起支付授权请求进行跨行清算。商户银行根据商户提供的账单进行操作,又称收单机构。
运营商:支付系统运营商除了常规的业务拓展外,还负责监控支付服务的状态,配置和管理渠道密码和密钥,对账处理以及其他日常任务。
风控人员:一般风控和运营是分开的,风控人员负责每天审核拦截交易情况,识别潜在风险,配置风控规则,保障支付系统资金安全。
财务会计:任何一家公司,和钱打交道都离不开财务部。那么财务部会重点关注什么呢?当然最重要的是会计信息。所有的交易都要记录,而且公司要定期审计,每一笔账都不能有差错。这当然不能等到审计的时候才去检查,而是需要每天对账,确保所有的交易费用互相抵消,也就是账目平衡。对账有三种情况:电商系统与商户对账;电商系统与支付系统对账;支付系统与收单机构对账。在支付系统中,我们只关注后两种。运营人员处理的是“信息流”,而财务会计则需要处理“资金流”,核实各个渠道的资金情况,根据运营需求对备用资金进行充值和调度等。

业务流程
1用户向电商系统提交订单,电商系统验证订单无误后,调用支付接口执行支付。
2.支付系统检查参数的有效性,特别是签名的有效性
3.根据用户选择的付款方式和系统付款路由设置,选择合适的收单机构。
4.调用收单接口执行支付,这是支付系统的核心。
5支付成功,收单机构将款项转入商户账户,商户准备发货。
其他异常情况
如何防止攻击者修改支付接口参数,比如把100元的物品修改成10元?
在调用收单接口执行最终实际支付时,如果支付失败,比如卡上没有钱,怎么办?
收单接口已从账户中扣款,但在通知支付系统时发生错误(例如断网或支付系统重启),支付系统不知道交易已完成,该怎么办?
仍有许多问题...
非功能性需求
性能:特别是在限时抢购期间,如何满足高频支付需求?
可靠性:毋庸置疑,系统能够达到的“9”的数量是软件设计技巧的重要指标。99%是基础,99.999%是目标,更多的“9”才是惊人的。
易用性:支付流程中多一个步骤,至少会流失2%的用户,产品经理绞尽脑汁想如何让用户快速付款。
可扩展性:近年来,支付产品创新很多,比如一元购、红包、积分等,支付场景也多种多样,如何快速满足产品经理的需求,尽快推出以抢占市场,可扩展性也是支付系统设计的一个挑战。
可扩展性:为了支撑公司业务,需要做一些促销活动,应对促销带来的流量爆发最好的办法就是增加机器,平时流量不多,不需要那么多机器,该释放的就释放,为公司省点钱。