(干货)产品分类模块功能业务流程参考架构

2024-05-23
来源:网络整理

支付系统架构总体设计详解 产品分类 模块 功能 业务流程参考架构 01 由于接入渠道和应用的差异,不同公司对支付产品的分类略有不同。基于支付场景和流程,支付产品可以分为以下几类: 支付产品是支付系统封装支付通道提供给业务方的支付能力。一般可以提供以下几种支付产品: 快捷支付:用户完成卡绑定后,支付时不需要再次输入卡或身份信息,只需要输入支付密码就可以完成支付。对于小额支付,甚至可以启用小额免密码支付,直接完成支付。这种支付方式不会打断用户的体验,是目前主要的线上支付方式。一般快捷支付产品都是通过封装银行或第三方支付平台提供的快捷支付接口或支付接口来实现的。 网银支付:用户支付时需要跳转到银行的网银页面完成支付。在网银页面需要输入用户的卡号和身份信息。 此支付方式会中断用户当前的体验,一般只用于网络支付。网银支付是通过封装银行提供的网银支付实现的。平台支付:使用微信、支付宝等第三方支付平台完成支付。使用时一般需要用户预先安装支付平台系统(手机上),注册并登录第三方支付平台,并在平台上完成绑卡等操作。

自从微信、支付宝被广泛使用之后,用户对这些平台也产生了信任,平台支付往往是电商企业的主要支付方式。 国外卡支付:针对境外支付的需求,需要提供国外卡支付支持,国内很多支付渠道都可以支持国外卡支付,比如支付宝全球购,直接对接也是最常用的国外卡支付渠道。 账户支付:又称余额支付、找零支付等,是指为用户建立一个本地账户,支持充值,然后使用这个账户完成支付。 信用支付:比如京东的白条、蚂蚁花呗等,是指使用信用账户进行透支,类似于信用卡支付。 02 支付产品根据支付能力的不同对外提供不同的功能一般来说,一般的支付产品需要提供以下接口: 支付产品根据支付能力的不同对外提供不同的功能。 一般来说,一般的支付产品需要提供以下几个接口:签约与解除合同:在快捷支付、扣费等产品中,用户使用之前需要完成合同签订。合同签订可以在渠道侧进行,一般第三方支付采用这种方式,电商需要接入时,授权第三方。银行与银联的合同一般签订在电商侧,电商侧负责采集用户信息,调用银行、银联接口签约。签约完成后,后续的支付行为都是使用合同号进行,不需要录入个人信息。与合同对应,解除合同就是取消合同关系。支付;支付是必不可少的操作,不同的产品,支付行为是不一样的。

快捷支付是在电商服务器发起,请求渠道支付;网银支付是转入银行支付网关;而账户支付和虚拟货币支付都是在本地进行。撤销与退款:有些渠道区分撤销和退款,比如银联、农行,撤销是指取消当天在渠道侧还未结算的交易;而退款只是针对已经结算的交易,有些渠道不做区分。预授权完成撤销:预授权完成撤销交易必须是对原预授权完成交易的全部撤销,预授权撤销后的预授权仍然有效。10、对账:通过FTP或者HTTP提供对账文件供商户对账。 11.余额查询:“查询商户交易账户余额,避免余额不足导致交易失败。注意不是客户的余额。当然不是所有的银行或者第三方支付都提供这个接口。” 03除了对账、订单查询外,每个操作的主要流程一般包括参数校验、支付路由、订单生成、风险评估、渠道服务调用、订单更新、消息发送等。对于一些更复杂的服务,还会涉及到异步通知处理步骤。支付路由系统是在支付结算过程中,智能选择最佳的路由去做正确事情的系统。比如我们使用支付宝或者微信扫码支付进行线下消费时,如果余额充足,系统会优先处理余额,如果余额不足,会优先处理用户设置的第一个消费银行卡。所有支付操作都需要对输入进行参数校验,防止接口被攻击。

支付架构_支付平台架构_支付平台系统架构

验证输入参数中各个字段的有效性,如用户ID、商户ID、价格、退货地址等参数。 验证账户状态。交易主体、交易对手及其他账户的账户状态为可交易状态。 验证订单:如果涉及预购,还需要验证订单号的有效性,订单状态为未付款。为了防止用户缓存某个URL地址,还需要验证下单时间和付款时间是否超出预定的间隔。 验证签名。签名也是为了防止支付接口被伪造,一般签名使用分发给商户的密钥对输入参数连接起来的字符串进行加密或者RSA,然后作为参数连同其他参数一起提交给服务器。正如支付网关设计中介绍的,签名验证也可以在网关中统一完成。 评估交易风险;检查这笔交易是否有风险。风控接口返回三种结果:阻断交易、加强验证、放行交易。 1)阻塞交易,即该交易风险较高,需要终止交易,不执行步骤5; 2)加强验证,即该交易具有一定风险,需要确认是否是用户本人操作,可以通过发短信验证码或者其他可以验证用户身份的方法进行验证,验证通过后,交易可以继续进行。 3)释放交易,即交易安全,可以继续进行。 异步通知:如上述流程中,涉及到调用远程接口,其延迟不可控,如果调用方一直阻塞等待,很容易超时。引入异步通知机制,可以让调用方在主线程尽快返回,通过异步线程获取支付结果。

对于异步获取支付结果的渠道接口,还需要在异步通知中将结果返回给调用者。异步通知需要调用者提供回调地址,一般为http或者 的形式。这样有技术风险,如果调用失败,需要重试,但重试不能太频繁,每次重试的时间间隔需要逐渐增加。在异步处理程序中,订单根据处理结果改变状态后,还必须发送消息通知相关系统。 04 一般来说,支付系统的典型架构会包含以下几个模块: 从架构上看,支付系统分为三层; 支撑层:用于支撑核心系统的基础软件包和基础设施,包括运维监控系统、日志分析系统等。 核心层:支付系统的核心模块,内部分为支付核心模块和支付服务模块两部分。 产品层:结合核心层提供的服务,提供给终端用户、商户、运营管理人员的系统。

分享