浅析通用支付模块

Posted by Wcof on June 28, 2020

原文地址:https://blog.csdn.net/qq_41634666/article/details/88799350

支付账户:

登陆账户与支付账户组成账户体系,登陆网站或游戏等登陆操作所使用的就是登陆账户,而支付账户是在用户登陆账户成功之后在软件中进行金钱交易时专门用于办理账户转款、刷卡消费、投资、贷款等各项支付结算业务账户。

一个人可能只拥有一个登陆账户,但不可能只拥有一个支付账户。

img

支付模块的组成:

支付模块由很多系统组成,涵括了支付应用,支付网关、支付产品、支付渠道、资金管理、结算、账户账务、账户计算、校对、风控(采集和评定)、订单系统、运营营销、商家、用户等等。

支付准备:

img

以支付宝为例,你需要有自己的登陆账户,登陆成功之后,为了正常使用支付宝,支付宝将会提示我们进行银行卡绑定,并在我们绑定银行卡的过程中同时进行实名认证。绑定银行卡(同时为实名认证)的流程基本为,先设置支付密码,在填写你的姓名、身份证(有些不需要银行卡号),输入你所需要绑定银行卡号,最后填写银行卡所预留的手机接收验证码,这样就绑定银行卡(实名认证)成功了。

img

在绑卡(实名认证)过程其实是算是一次服务的购买,这种服务有叫实名验证也有叫银行卡验证,但我赞同四要素验证,这样更贴切。每一次验证都是收费的,价格如下。

img

其实还有其他的验证方式,列:二要素指姓名和身份证号,三要素加上银行卡号,四要素则加上手机号。看起来,似乎银行都应该支持四要素验证,但大部分银行接口仅支持三要素,毕竟手机号还是非常容易变。当然,实名认证,也就是二要素认证,是应用最多的认证了其原因也是价格相对便宜。

img

但因金融类产品的特殊性,所以不能用二要素进行验证,但为了节约成本,我们可以在上传数据进行验证前把明显错误的数据进行筛选提示用户更改可以有效的节约成本。

注册限制:

1、姓名限制为 2-6 个中文字名,因为根据《中国新名登记条例(初稿)》要求除使用民族文字或者书写、译写汉字的以外,姓名用字应当在2个汉字以上、6个汉字以下。

2、身份证号限制为 18 位数字加最后一位字母 X,因为现在使用的均为 18 位居民身份证号码, 原 15 位身份证以全部淘汰且换成新的二代身份证。

3、银行卡号限制可以根据《中国银联规范》其实银行卡,卡号的数量限制为 16-19 位。在输入卡号如何判定发卡行了,这就需要了解卡 bin 号,他是银行代码的缩写,一般由 6 位数字表示,银行卡卡号前 6 位国际标准化组织 (ISO) 分配给各从事跨行转接交换的银行卡组织。银行卡的卡号是标识发卡机构和持卡人信息的号码。

img

手机号限制为 11 位纯数字 ,根据需要还可以根据不同的运营商号段来做出限制:

  • 中国移动:134、135、136、137、138、139、150、151、152、157、158、159、187、188;

  • 中国联通:130、131、132、155、156、185、186;

  • 中国电信:号段:133、153、180、189)。

银行卡绑定 & 实名认证:

img

支付账户类型:

根据不同类型来分类列:用户管理虚拟货币的账户:Q 币,战网点。用于支持定时支付的代扣账户:订阅。用户直接支付的零钱账户:支付宝,微信的零钱。第三方支付的账户:支付宝里的定期,基金,保险等账户。银行卡的账户等等,我们需要根据业务需要,来设计这多类账户。这些支付账户区别于登陆账户的地方除了账户 ID、名称、类型外,还需要设置他们的状态,是否允许充值,是否允许提现,是否允许透支,是否允许支付,是否允许转账进入,是否允许转账转出,是否有安全保障,是否激活,是否冻结等及他们状态。在涉及金钱交易时我们还需要主要账户的可用余额而非余额(可用余额 = 余额 - 不可用余额)。

银行卡支付:

银行卡的支付分为网关支付和快捷支付,网关支付就是在你支付的时候需要跳转至相应的页面进行认证,需要考虑安全控件和浏览器的问题。快捷支付则是初次支付时需要进行绑卡设置,而后续支付中只需要输入支付密码就可以完成支付。相比较快捷支付用户体验更好,网关支付更安全。还有一个钟网关支付就是网银支付,网银支付跳转的是银行提供的支付页面并输入相关信息也需要 U 盾等硬件设备,所以网银支付其性质也是网关支付。

支付流程:

支付流程我们需要确定参与角色:

消费者:交易的发起者

商家:交易的接受者

渠道(第三方):提供交易的服务机构

银行:交易结果

img

消费者发起交易商家接收到后把交易信息发送到渠道,渠道确认该信息后向银行发起扣款,银行扣款成功把信息原路返回给渠道,渠道在返回给商家,商家就给用户显示交易成功。

异常流程:

正常交易中出问题,不管是什么问题我们都称之为异常。没有交易成功叫订单异常,交易成功后叫交易异常。

交易异常的处理方式大多数是:全额退款、退手续费、资金原路退回。但退款需要根据不同的渠道、银行规则来定,列:订单必须是在 90 日内产生,当日订单由于未结算,直接可退款,订单必须处于未退款状态或者退款失败状态,部分退款有剩余可退资金等等。

退款流程如图:

img

支付安全:

如果说风控是对人,那么支付安全就是对数据,如何保证支付数据安全也是问题。除了一类, 通常有加密、数字签名、访问控制、数据完整性、认证交换、流量填充、路由控制、公证等方式, 还有二类, 通常有可信功能、安全标签、事件检测、安全审计跟踪、安全恢复等技术性的要求外,在支付流程上我们可以在各个环节上设计数据校对,对比数据以保证安全。

银行资金流向:

首先再了解资金流向之前需要知道什么是备付金

备付金是支付机构为办理客户委托的支付业务而实际收到的预收代付货币资金,这个是属于客户的资金,因客户的支付结算行为而产生的资金在途。

其中可以与支付机构签订的协议,提供客户备付金存管服务的境内银行业金融机构叫做备付金银行。包括了备付金存管银行和备付金合作银行。

可以为支付机构办理客户备付金的跨行收付业务,并负责对客户备付金信息进行归集、核对与监督的备付金银行叫做备付金存管银行。备付金存管银行仅可选择一家,可以办理跨行收付业务。

可以为支付机构办理客户备付金的收取和本银行支取业务的备付金银行叫做备付金合作银行。备付金合作银行可以设立多家。

支付机构每月在存管银行存放的备付金日均余额合计数,不得低于上月所有备付金银行账户余额合计数的 50%。

支付机构在备付金银行开立的专户存放客户备付金的活期存款账户,称之为备付金专用存款账户,其中包括备付金存管账户、备付金收付账户和备付金汇缴账户。

备付金存管账户:

支付机构在备付金存管银行开立的,可以以现金形式、以银行转账方式办理客户备付金收取和支取业务的专用存款账户。存管账户功能齐全,具备本行和跨行收付款、调整备付金账户头寸、结转手续费和计提风险准备金等功能。支付机构在同一个省,只能开立一个备付金存管账户。在备付金存管账户下,各公司可根据业务需要开立二级分户,该二级分户为实体账户,便于区分不同业务的出入金;亦可以根据业务需要在主备付金存管账户下开通虚拟账户,虚拟账户一般都是实时归集到备付金存管账户。

备付金收付账户:

支付机构在备付金合作银行开立的,收款可以以现金形式或以银行转账方式、出款仅以本银行资金内部划转方式办理客户备付金支取业务的专用存款账户。支付机构在同一备付金合作银行或其授权的分支机构只能开立一个备付金收付账户。

备付金汇缴账户:

支付机构在备付金银行(存管银行或合作银行)开立的,收款可以以现金形式接收或以本银行资金内部划转方式接收客户备付金,还可原路退回原资金转出账户,不能开通一般付款功能。日终清零,将备付金汇缴账户内的资金全额划转至支付机构的备付金存管账户或本行备付金收付账户。

支付机构应当在备付金存管银行开立一个自有资金账户,用于手续费收入、利息结算等。

img

img

以淘宝购物为例:淘宝的备付金存管银行是中国银行,当我们购买商品使用工商银行卡付款时,这笔钱是先进入淘宝位于工商银行的汇缴账户内,如当日发生用户退款,该笔钱直接退回用户本卡内,如未当日发生退款,日终时该笔钱转如淘宝在工商银行的收付账户内。

如用户使用银行卡与淘宝存管银行为同行,该笔钱在终日时直接转入存管账户。

img

什么是风控?

风控就是风险控制,指风险管理者采取各种措施和方法,消灭或减少风险事件发生的各种可能性,或风险控制者减少风险事件发生时造成的损失。那么在支付系统中如何设计风控模块了。先从定位上确定风控,他是一个独立的体系,根据不同的产品在有必要的情况下来制定相对应的风控体系。风控也需要一个闭环。

img

作者:Wcof