一.什么是支付路由?
Routing通过分析支付请求的参与情况,返回当前支付请求分配的支付通道(payment channel)。
二、支付路由的作用?
路由主要解决:降低公司支付手续费,提高支付成功率。
三、实战示例
下面以A公司为业务主体,说明支付路径是如何设计的。
1、业务介绍
(1)P2P网贷信息匹配(网银存管),每个银行的存管业务模式可能不一样。下图以其中一个为例。存管银行提供提现服务,银行存管系统负责对接支付公司。A公司不需要和支付公司做系统对接,但需要和每个支付公司分别签订支付合同,支付公司费用。业务流程见图1。
图1 P2P婚介服务流程
投资人在P2P平台充值。
平台信息核实后,请求银行的存管系统,跳转到存管银行的充值页面。
用户在存管页面确认支付,银行存管系统请求支付公司。
支付公司向发卡行发送支付请求。
发卡行后台业务系统验证支付请求,支付成功后返回支付公司。
支付公司返回银行存管系统,支付成功。
银行存管系统返回P2P平台支付成功。
投资人支付成功,投资人P2P账户余额增加。
投资人成功投资借款人发放的贷款,借款人账户余额增加。
借款人发起提款。通常,该步骤由平台自动启动。
支付公司备付金合作银行将资金划入支付公司的存款银行账户。
向平台支付公司结算充值在存管银行开立存管账户,存管账户平台不能操作资金。
存管银行使用大小支付系统在银行间转账。转账成功后,通知平台借款人提现成功。
通知平台借款人提现成功。
当借款人充值/扣款还款时,平台请求银行存管系统发起充值/扣款。充值/扣款成功后,银行存管系统通知平台,平台进行入账。
(2)贷款援助(自有贷款、金融机构贷款(直接融资))。自有借贷通过个人资金借给借款人,再通过债权转让模式转让给贷款援助机构。该模式被监管认定不合规,暂停业务;在直接融资模式下,A公司向金融机构推荐借款人,金融机构直接向借款人放款。在这种模式下,有两种还款模式,一种是借款人直接向金融机构还款;另一种是借款人向A公司还款,A公司通过集合还款的模式向金融机构还款。在贷款辅助模式下,A公司需要与支付公司进行系统连接,提供存取款服务。直接模式的业务流程见图2。
图二。贷款援助业务流程
借款人向平台发起借款申请。
向金融机构推荐平台贷款信息
金融机构通知贷款成功。
借款人成功提取现金。
借款人直接向金融机构还款;或者借款人向平台还款,借款人通过充值/代扣的方式还款。
平台对公转账/对公支付给金融机构
2、系统框图图
系统框图
以下描述了与支付相关的流程。
存管支付流程
(1)投资人/借款人充值:投资人/借款人在A公司前端充值,前端请求内部存管系统,存管后端系统请求支付路径,支付路径返回支付公司代码。前端跳转到银行存管系统发起支付,银行存管系统向指定支付公司发起支付请求。支付公司支付成功后,异步通知银行存管系统,银行存管系统异步通知A公司存管系统,存管系统
(1)借款人充值还款:借款人通过A公司前端还款充值,前端还款请求后台系统,后台系统请求统一支付平台,统一支付平台请求支付路径,支付路径返回支付公司代码。统一支付平台向支付公司发起支付(认证通过前先进行认证,认证通过后发起支付)。支付成功后,支付公司异步通知统一支付平台,统一支付平台异步通知后台系统。如果支付公司没有异步通知机制,统一支付平台会定期查询支付公司的查询接口,内部封装异步接口通知内部调用方。
(2)代扣代缴:业务系统
调用统一支付平台发起代扣,统一支付平台请求支付路由,支付路由返回支付公司代码,统一支付平台向支付公司发起支付(未鉴权先鉴权,鉴权通过后发起支付),支付公司支付成功后,异步通知统一支付平台,统一支付平台异步通知后台系统。如果支付公司没有异步通知机制,统一支付平台定时查询支付公司查询接口,内部包装异步通知接口,通知内部调用方,业务系统记账入账等操作。(3)代付业务暂时未接入路由,由业务系统指定支付公司,由支付平台负责和指定支付公司对接。
统一支付平台介绍:统一支付平台集中管理A公司所有和资金相关的业务,对外负责和支付公司交互,对内提供标准的接口:代扣接口、代付接口、鉴权接口和充值接口、异步通知接口,业务主要包括代扣、代付和充值。
3、支付路由规则
从A公司的业务分析,同一个业务比如还款,有存管还款或者助贷业务还款,如何区分,我们使用支付场景区分,
场景包括:存管快捷充值、存管网银充值、存管代扣、非存管快捷充值、非存管代扣、非存管网银。
支付路由规则有:单笔、单日、支付费用、通道维护、单日余额不足次数、最优次优通道切换
根据支付路由入参:用户、支付场景、金额和银行,返回给调用方支付通道(支付公司)代码。
(1)支持场景和银行下,是否有可用通道,如无可用支付通道则返回无可用支付通道,反之则进入(2)
(2)计算可用支付通道下的单笔最大限额,如果充值金额大于单笔最大限额则提示单笔超限,反之则进入(3)
(3)计算可用支付通道的单日限额是否满足,如果所有可用通道都不满足,则提示单日超限,反之进入(4)
(4)计算可用支付通道的单日失败次数是否满足,如果所有可用通道都不满足,则提示当日余额不足次数超限,反之进入(5)
(5)可用支付通道里排除单日、单笔和单日失败次数不满足的通道,如果剩余通道等于1,则返回支付通道代码,反之则进入(6)
(6)根据通道的费率,按照充值金额,计算(5)可用通道下每个支付通道的费用,按照费用从低往高排序,如果费用相同,则查询费用相同通道的优先级别,再按照优先级别从高往低排序。至此支付公司的支付优先级别排序完成,则进入(7)
(7)查询(6)排序最优的支付通道最近一笔是否支付成功或者无交易,如果支付成功或者无交易,则返回支付通道代码,反之进入(8)
(8)查询最优支付通道支付失败的原因,如果是用户原因,则返回最优支付通道,反之进入(9)
(9)查询(6)排序次优的支付通道最近一笔支付状态,如果支付失败并且失败原因非用户原因,则返回最优支付通道,反之返回次优支付通道。