收单网关的设计元素包括:业务方、用户、业务系统、支付系统。
收单网关
收单网关是平台支付系统与用户/商户PC及手机APP使用的外部网络之间的接口,负责将外部网络传输的数据转换为支付系统运行所需的内部系统数据,同时负责将平台业务系统的内部请求转换为支付系统内部数据。
收单网关的职责在于支付平台建立之后,系统内部接口不能暴露给外界,因此所有外部系统都需要通过统一的网关接口来调用支付平台;网关会进行一系列的格式检查、参数检查、业务调用权限检查后,再转发给支付。
收单网关的设计要素包括:
商家方:指商家平台,需要接入的商家方可根据公司业务规模、业务领域或公司实体进行区分,接入后这些商家方将成为支付平台的收单商户,使用平台的支付产品实现其支付收款功能需求;
用户:业务平台的C端用户,可按照业务方进行划分;
业务系统:业务端的业务系统;
支付系统:支付清算结算平台。
收单网关流程
业务系统收到异步通知后,按照自身的业务规则改变支付订单状态,并进行更新订单状态等业务处理。
接口定义接口设计说明
①交易状态变更通知:在通知业务方时,接口信息会传达业务订单号、交易订单号、状态、金额、时间等相关信息,以便业务方更好的办理业务;
a.成交状态:该笔成交订单的状态;
等待买家付款。付款成功。交易成功。交易结束。交易关闭。
②退款状态变更通知:在通知业务方时,接口信息会传达原业务订单号、退款业务订单号、退款交易订单号、状态、金额、时间等相关信息,以便业务方更好的办理业务;
a.退款状态:退款订单的状态;
退款成功 退款失败 交易服务 交易服务的作用 担保获取交易
①担保交易:用户在商家平台上选择商家的商品进行购买,支付完成后订单资金进入平台担保账户,用户确认收货后订单资金结算到对应的商家账户。该交易类型也可以应用于一些有结算周期等时间属性的业务,通过网关的担保收款接口和结算接口,商家可以灵活控制结算周期。
②工艺流程
③证券交易设计
定义担保交易产品代码,以识别此类交易订单的类型。担保交易分为订单支付和结算两个阶段:
即时交易
即时交易是指用户在平台上选定需要购买的商品并支付,支付资金立即结算至商户的支付账户。
例如,在支付宝PC即时支付产品上线初期,用户通过PC网银即时支付产品支付后,单笔交易立即结算到商户平台账户,从中我们可以得到:
即时支付交易与业务场景紧密相关,在一些非担保流程中,如果用户支付后需要立即履行义务,则适合使用即时支付产品,比如各平台的会员产品购买场景。
①工艺流程
②即时支付设计要点:
充值交易
充值交易是指用户为自己的账户余额充值,一般用于充值虚拟货币、钱包余额等产品。用户为自己的账户余额充值,一般用于充值虚拟货币、钱包等产品。首先我们要区分一下这两种充值方式。
比如,从用户感知上看,早期支付宝和淘宝密不可分,支付宝看似是淘宝定制的钱包,但实际上用户在支付宝充值的余额与淘宝业务无关;而腾讯的虚拟货币Q币,则是商家发起的交易,因此与商家平台强相关。因此基于支付平台充值就分为两种方式:一是基于支付平台账户充值,二是基于商家平台充值。
①流程
②充值交易设计要点:
充值、虚拟货币的消费业务端完全闭环,在支付系统内部为充值业务开设统一收款账户,结算时通过支付系统提供的账户进行资金入账和分配,适合直播、视频等纯互联网虚拟业务; 接口定义:订单支付接口; 优点:开发成本低,实现相对简单,业务落地快; 缺点:账目不清,流程不一致,有一定的财务风险。 钱包收银员:充值行为发生在支付系统内部(参考上一篇提到的支付宝逻辑),与业务平台无关。原则上,当公司业务规模扩大,不同APP统一接入支付系统时,独立的钱包账户余额应该可以同时支撑不同业务的账户支付需求。比如美团账户余额充值的资金,同样适用于美团外卖、大众点评等,此时美团的钱包已经是一个有独立账户体系的产品了。 不同的业务端接入各个业务平台只需要识别用户唯一标识即可; 充值网关接口:对于业务方发起的充值行为,各个业务平台本身都具备充值业务所需的支付系统的账户能力来提供支持。充值通过网关(入口在业务端)进行,可以满足各个业务方不同账户类型的诉求。要求各个业务方在用户发起充值时,向该业务下用户开立的对应虚拟账户进行充值。例如B站的B币、金瓜子就来自于不同业务方开立的不同虚拟货币账户; 接口定义:充值接口(账户类型、uid、金额、支付方式等); 优点:资金账目清晰,流程规范,所有支付和账务都由支付系统控制,资金安全得到一定保障; 缺点:开发成本高,实现相对复杂。 提现交易
提现也叫现金提现,用户根据自身账户余额发起提现,一般电商平台涉及C端用户钱包账户余额提现、B端用户收入账户余额提现,是从平台虚拟货币账户向用户外部账户划转资金的过程,具体分类可分为提现到卡、提现到账户。
①流程
②提现交易设计要点:
定义产品代码,可以分为提现到卡、提现到账等不同产品。对于B端商户提现交易记录,原则上最好单独表格展示;如流程图所示,提现时应先做余额验证动作;
提现到账:目前常见的场景是用户发起提现到支付宝或者微信账户,这个需求可以通过接入支付宝、微信等第三方支付公司的支付产品来满足。商户端需要采集用户端的第三方账户信息,用户发起提现时,将账户等相关信息上传至第三方并等待提现结果。根据业务模型,在B端商户提现时,优先进行实名认证后才发起提现,且发起提现的账户信息与实名认证信息一致。然后根据商户端的需求,判断是否需要对C端用户进行实名认证。提现到卡:与支付到账的主要流程没有太大区别,但一般情况下,商户端需要采集用户银行卡信息。 因此需要在支付系统中存储银行卡相关数据(卡Bin信息、城市、省份等),并提供绑定、查询等接口给业务端。这样用户在前端绑定卡时,无论是卡Bin接口验证还是前端选择并进入银行,都能有更好的体验。 * 提现到银行卡需要接入对应的银行卡提现通道。
《支付系统设计白皮书》由支付学院(ID:)制作。