请选择 进入手机版 | 继续访问电脑版

QQ登录

只需一步,快速开始

登录 | 立即注册 | 找回密码
订阅

文章

最全支付系统设计包含:账户,对账,风控(三)

时间:2017-6-12 09:50作者:圈内编辑 阅读(162) 评论: 0

内容简介: 这一期,回到支付系统的核心业务,即支付。每个电商公司的支付系统都已经或多或少的实现了交易核心功能,可也都是一直在改进,总是不断的有新的需求冒出来。所以这一期开始,我们梳理一下:到底有哪些支付方式?每种 ...

这一期,回到支付系统的核心业务,即支付。每个电商公司的支付系统都已经或多或少的实现了交易核心功能,可也都是一直在改进,总是不断的有新的需求冒出来。所以这一期开始,我们梳理一下:到底有哪些支付方式?每种支付方式都是怎么运作的?

支付和交易

说到支付就不得不提交易。这两个概念在不同公司中是不一样的。我们的定义是,交易是生成订单;支付是对订单进行付款。 订单生成过程我们以后另开话题来说。这一次重点介绍支付。而就支付行为来说,我们碰到的大部分都是单次支付,其次还有转账和退款。在苹果推出订阅支付后,国内支付宝等也在陆续跟进。 单次支付是我们用的最多的支付方式了,即一次结清所有款项。把单次支付走通了,其他支付方式也容易处理。 本期重点介绍单次支付。

银行卡支付

先说大家比较熟悉的银行卡支付,它分为线上支付和线下支付两种形式。线下支付就是通常说的POS收单,这里不介绍这个内容。对线上支付,按照卡的类别,分为贷记卡支付,也叫motopay、ePOS,即信用卡支付;和借记卡支付。按照支付形态,又分为认证支付、网银支付、快捷支付几种形态。银行卡网银支付要求银行卡必须开通在线支付功能,而快捷支付并不需要开通在线支付功能。主要利用支付验证要素(卡号、密码、手机号、CVN2、CVV2等),结合安全认证(例如短信验证码),让持卡人完成互联网支付。

认证支付

指用户在绑卡时,将卡信息提供给电商。这样在支付时,用户无需再输入这些信息,由电商在服务器侧保留用户的账户信息,比如身份证号,卡号,手机号。在用户支付时,无需再输入这些内容,最多就提供个密码或者校验码,就可以完成支付。这基本不会打断用户的使用体验,所以也是电商喜欢的支付方式。但认证支付最让人诟病的就是安全性。一方面需要向电商暴露个人信息,一旦被窃取,资金就容易被盗走。还有在手机上执行支付,一旦手机丢失,窃取者就可以轻而易举的使用或者转移资金。

快捷支付

快捷支付和认证支付类似,不同点在于绑卡之后,有些银行接口会返回token,后续使用token来作为支付凭证,无需提供卡号信息,这样电商也不需要本地保留卡号了。目前主要是银联有提供token接口。

网银支付

相对来说,网银支付要安全很多。网银支付是由银联或者银行提供支付界面,用户必须在页面上输入卡号,密码等验证信息才可以执行支付。大部分银行还要求用户使用U盾或者其它安全硬件。但安全和易用永远是个矛盾。网银使用会打断用户体验,增加用户使用难度。对使用硬件加密的支付,不可能天天带着U盘跑。另外网银主要用在web端,在手机端,嵌入网银页面,还是比较难看的

支付流程

走一个具体的例子看看吧。比如用户在电商系统中买了200块钱的东西,然后通过浦发银行卡做结算,用的是快捷支付。这个过程是:

用户在交易界面上,提交订单到交易系统中; 交易系统确认订单无误后,请求支付系统进行结算。这是在交易系统做的,后面工作就进入支付系统。

用户被引导到收银台页面, 让用户确认交易金额,选择支付方式,调用支付系统接口。

支付系统接收到支付请求,验证请求的各个字段是否有问题,确认无误后,调用支付网关执行支付。

支付网关请求浦发银行的快捷支付接口执行支付。

支付网关接收到支付结果报文后,对结果报文做解析,获取结果,并将结果告知交易系统。这可以通过URL或者RPC调用来实现。

商城系统收到支付结果后,开始执行后续操作。如果是支付成功,则开始准备出库。这一步在交易系统中处理,这里不做介绍。

网银支付,和快捷相比,就在第4步,插入一个步骤,将用户导航到网银页面输入支付信息,后续步骤是一样的。在资金流上也是相同的。 而在第五步获取返回结果上,一般银行就直接同步返回,银联是分为同步和异步返回。同步告知操作成功或者失败,异步告知扣款成功或者失败。同步操作和异步操作都需要调用方提供一个回调的URL地址,银联会将参数附加在这个地址上。通过解析这些参数可以得到执行结果。异步操作一般有2-3秒的延迟,取决于网络,以及该交易处理的复杂度。

资金流

上一节说的是支付的信息流,那资金流应该是怎么走的? 在第三步,会触发资金流。资金从用户个人账户上转移到电商公司的账户。当然,银行也不是活雷锋,这一笔交易是要收手续费的。资金是实时到账的,手续费一般是按月结算。有按交易笔数计费的,但大部分还是按照交易金额来收费。

同行快捷支付是比较简单的场景,让我们来逐步增加难度。如果支付系统没有对接浦发银行,那对浦发卡,就得走其它支付方式:银联或者第三方支付。

先说银联快捷。银联提供的多种接入方式,常说的快捷支付,在银联文档中叫商户侧开通token接口。通过这个接口,可以实现同行和跨行资金结算。不管收款行是浦发还是其它行,都可以完成结算。对本地和用户来说,体验是一样的。而在银联侧,后台资金流处理却不一样。了解这个资金流,有助于在异常情况下,了解资金到底跑到哪里了。

如果收款行也是浦发银行,银联发报文给浦发,浦发使用内部系统完成两个账户间的转帐,即时完成。

如果收款行是他行,比如工行。银联发指令给浦发和工行,分别完成各自账户上资金余额的增减,对个人和电商来说,这笔资金算是落地了。但实际资金流并不是立即发生。银联会在半夜做清结算后处理这笔资金。这个过程就是金融机构之间的清结算了,一般不需要关注。

如果使用的是第三方支付,对用户来说,处理的流程和银联一样。但资金流会不一样。 第三方支付在浦发和工行一般都会有落地的托管资金。 发生交易后,一般来说不会产生跨行资金流动。用户在浦发行的钱会被结算到第三方支付在浦发行的托管账户,而在工行的钱,会由第三方支付在工行的账户打到客户账户上。 这就降低了跨行资金流动成本。

目前国内主要银行都提供快捷和直联的接口。对电商来说,要对接哪些银行是个需要考虑的问题。怎么对接银行,渠道和第三方支付。

银联Token支付

一般来说,大部分银行都提供直联和网银接口,但不需要直接对接所有银行。银联和第三方支付也提供直联接口,可以直接对接国内主要银行。也不是所有银行都被银联支持,这和银联签约的接口有关,需要在对接时咨询银联。从我们使用情况看, 浦发借记卡、邮储银行卡是不支持的。 另外 交行、平安(含原深发)、上海银行、浦发、北京银行,上述银行卡需通过 这个地址 开通银联在线支付业务。

对接银行

大部分银行提供的银行卡支付接口,借记卡支付和贷记卡支付是不一样的。但也有几个好心的银行,可以用一套接口同时开通借记卡和贷记卡。点名赞一下这些银行: 宇宙第一大行工商银行和建设银行。其他同学对接中如果也发现借记卡和贷记卡用一个接口的,也请及时告知。 作为国内最保守的软件团队,和银行对接时务必做好足够的准备。在商务谈判完成、拿到银行的接口文档后,需要考虑两个问题:专线问题、加密问题。

专线问题

首先是专线问题。 大部分银行对接是需要专线的。 与银行沟通的时候,注意收集如下信息:

  • 专线类型: MSTP类型或者SDH类型。

  • 专线接入点:目前国内主要是联通、电信。

  • 封装类型: HDLC或者PPP

  • 专线代宽:默认是2M

前置机IP,这个需要在银行侧和电商侧进行配置。 专线其实是在银行和电商之间建立一个局域网,需要双方分配通讯IP。 其实这两组IP都是NAT后的IP,银行分配给我们的是电商真实的前置机IP经过最外端的网络防火墙转换后的IP段,后者也是对方的真实前置机IP经过转换后的IP段。 出于安全考虑,双方都不会将真实IP暴露出去,所以要NAT。

接入地址:即电商这边机房的地址。

这些专业名词,可以自己检索,太专业了,其实我也不懂。从可靠性角度考虑,一般建议从联通、电信各拉一条线路出来。一旦有一个线路出问题了,也不会导致所有交易被终止了。不需要专线的银行接口有:浦发、工行、交行信用卡等。 需要专线的有中行、农行、建行等。一般专线需要1个月左右的时间,包括银行侧的申请、施工时间。

加密问题

其次是加密问题。部分银行,如中行,前置要求使用加密机。此处加密机的常用功能有三方面:

  • MAC加密(完整性);

  • 支付会话\密码加密(安全性);

  • 密钥交换加密(防截取)。

对开发来说,加密机的主要作用,是让黑客都无法从内存中看到密码。 不是做广告,国内对接银行一般就用江南天安的加密机了

对接银联

对接银联比对接银行简单, 不需要专线,不需要加密机。 不过需要获取ADSS认证。 银联最近在推Token接口,有两套接口,一套是银联侧开通,一套是商户侧开通。前者类似网银支付,后者类似快捷支付。 务必要求接入后者接口啊。基本上读完接口文档就知道怎么写代码了。


在上一篇 支付系统之银行卡支付中,挖了个坑,就是关于绑卡的坑。 在用户使用银行卡做支付之前,首先需要完成绑卡的操作。怎么实现绑卡,怎么验证用户绑的是自己的而不是隔壁老王的卡,这就是本期的重点。


为什么要求用户绑卡?这和快捷支付有关。参见上一篇文章的分析,绑卡是将用户卡信息提供给电商,以后电商就用这个信息去银行完成支付。绑卡实际上是一个授权,让用户允许商家自动从他的账户上扣除资金。所以绑卡也叫签约,用户和银行,商家的三方签订的支付合约。 但我们知道,绑卡对用户和商户来说都存在巨大风险。

如果说用户绑卡是图省事,那商户为什么要做这个事?首先当然是提升用户体验了,让用户花钱更容易。其次,提升支付成功率。使用网银支付成功率在20%左右,银联直联成功率一般在50%左右,银行卡直联可以提升到70%左右。这是相当可观的数据。所以,当你看到绑卡送洗衣粉之类做法时,不需要担心商家会不会赔本。

怎么绑卡?我们知道对接银行有两种途径,直接对接银行接口和通过银联来间接对接。这两种情况下绑卡处理也不同。

绑卡场景

直观的,电商网站会在用户后台提供一个绑卡的入口,让用户直接绑卡。以支付宝绑卡流程为例,我们可以体验下:


这里有如下要点:

  • 只能绑自己的卡,这主要从安全角度考虑。

  • 需要用户在银行侧预留的手机号进行短信验证。但不是所有银行都需要。这个时候,为了统一处理,可以考虑自己发验证短信。

对这个入口不要指望太多,更多的用户是在支付中绑卡。也就是提交订单后,发现没有银行卡了,就开始绑卡。 和纯绑卡流程不同的是,最后一步,绑卡成功后,一般都同时完成支付。有些渠道会提供绑卡并支付的接口,减少交互次数。

绑卡流程

先介绍比较简单的银联直联绑卡。为了保证卡的安全,绑卡有这些前置需求:

  1. 用户必须已经绑定了手机号。该手机号用于修改支付密码;

  2. 用户需设置了支付密码。支付密码不同于登录密码。

针对用户不同状态,绑卡流程上有区别。当然,绑卡是安全操作,要求用户必须登录到系统中。为了避免和服务器端的交互被劫持,所有操作必须在安全链接中进行,即使用https。当用户开始绑卡时,执行如下流程:

  1. 检查用户是否有手机号。没有则进入设置手机号流程。

  2. 检查用户是否设置支付密码。如果已经设置,则需要用户输入密码。确认后开始绑卡。否则,也是先进去绑卡后设置密码。

  3. 用户输入卡号,系统根据卡号判断卡的发卡行,并显示给用户。有些实现,如微信支付,会提供扫卡识码功能。

  4. 用户输入银行预留手机。对于没有绑过卡的用户,需要用户提供真实姓名和身份证号。对于信用卡,还需要输入cv码和有效期。这一步,卡的信息都收集全了。

  5. 调用银行绑卡验证接口进行绑卡。这里有一个四要素验证的概念。由于国内要求实名制,所有银行卡都是实名办理的,所以银行可以验证姓名,身份证号,银行卡号和手机号是不是一致的,如果没问题,则会发短信到手机上。

  6. 用户输入短信验证码并确认绑卡,服务器端将用户实名信息以及短信验证码组合形成报文,发送给银行,执行签约操作。银行侧签约成功后,返回签约号给商户。

卡bin

这里有个问题,如何根据卡号判断发卡行?这就需要卡bin。 BIN号即银行标识代码的英文缩写。BIN由6位数字表示,出现在卡号的前6位,由国际标准化组织(ISO)分配给各从事跨行转接交换的银行卡组织。银行卡的卡号是标识发卡机构和持卡人信息的号码,由以下三部分组成:发卡行标识代码(BIN号)、发卡行自定义位、校验码。

目前,国内的 银行卡 按照数字打头的不同分别归属于不同的银行卡组织,其中以BIN号“4”字打头的银行卡属于VISA卡组织,以“5”字打头的属于MASTERCARD卡组织,以“9”字和“62”、“60”打头的属于中国银联,而“62”、“60”打头的银联卡是符合国际标准的银联 标准卡 ,可以在国外使用,这也是中国银联近几年来主要发行的银行卡片。 大部分银行卡号前6位即可确定发卡行和卡类型,但也有非标卡需要6-10位才可以判断出来。需要维护一个卡bin库。附件是一个比较完整的卡bin库, csv格式的。

短信和身份验证

一般绑卡操作第五步需要银行下发短信验证码。 短信验证的接口,不同银行还不一样。有些银行是短信和身份验证一起做了;有些银行是可以配置身份验证是否同时发短信。还有些比较奇葩的机构,比如某联,接口中让你传身份信息,但实际上没传也是可以的,也不验证身份信息到底对不对。这在对接渠道时需要特别注意。

此类接口一般包含如下内容:

  • 版本号:当前接口的版本号;

  • 编码方式: 默认都是UTF-8,指传输的内容的编码方式;

  • 签名和签名方法: 生成报文的签名。 不是所有的字段都需要放到签名中,文档中会说明哪些字段需要签名;

  • 签名算法:生成签名的算法,RSA, RSA128, MD5等。

  • 商户代码:在渠道侧注册的商户号。

  • 商户订单号:即发送给渠道的订单号;

  • 发送时间:该请求送出的时间。

  • 账号和账号类型: 银行卡、存折、IC卡等支持的账号类型以及对应的账号;

  • 卡的加密信息:如信用卡的CVN2,有效期等。

  • 开户行信息:开户行所在地以及名称;大部分是不需要的。

  • 身份证件类型和身份证号: 可以用于实名验证的证件,指 身份证、军官证、护照、回乡证、台胞证、警官证、士兵证等。不同银行可以支持的证件类型不一样,这也不是问题。大部分就是身份证了。

  • 姓名:真实姓名,必须和身份证一致;

  • 手机号:在所在银行注册的手机号。

系统会返回上述数据的验证结果。如果验证通过,则会发短信。但这不是所有的渠道都是这样。哪些字段会参与验证、需不需要发短信,需要注意看接口文档。

绑卡接口

绑卡接口和发短信接口类似,还需要将用户的卡号,身份证等信息传递过去。在绑卡成功后,会返回一个签约号。这个签约号是后续调用支付,解约等接口所必须的。 这里有个问题,已经绑卡的用户,调用绑卡签约接口再绑一次,会出现什么情况?这个和银行实现有关。 大部分银行,如农业、浦发、建行等,对绑卡签约接口调用,会首先验证身份信息,如果验证不通过,则不执行后续操作。验证通过后,再检查这个卡在该商户下是否已经绑过了, 如果没有绑过,则执行绑卡,否则会提示卡已经绑定过了,不能重复签约。 但工行的实现不一样,他是首先验证这个卡是不是已经绑过了,如果已经绑卡,则不继续验证身份信息。 总之,银行都不支持重复绑卡。

银联绑卡

银联直联绑卡和银行绑卡类似,但是得注意验证接口,仅验证卡号和姓名,不验证身份证号和手机号。这导致第5步无法正常进行。银联只有到第六步执行绑卡时才做身份验证。 所以在处理上,还需要做一些调整,来确保和银行的流程的一致。 一种处理方法是,对银联,在第五步就开始调用银联接口执行绑卡操作,但是在本地标记为预绑卡状态;商户侧发送短信验证码,验证通过后,才将状态设置为绑卡成功。

银联网银绑卡处理起来比较麻烦。用户在电商页面上输入卡号,然后被导航到银联页面上去完成绑卡操作,成功后,银联返回一个token作为签约号,用于支持后续操作。这问题就来了,用户可以在银联页面上绑定一个别人的卡,而电商侧是无法知道这个卡的情况的。所以这种方式尽量不要用。

实名认证

绑卡操作有个不错的副产品,就是实名认证。常说的二要素,三要素,四要素认证,可以通过这个操作完成。 二要素指姓名和身份证号,三要素加上银行卡号,四要素则加上手机号。看起来,似乎银行都应该支持四要素验证,但大部分银行接口仅支持三要素,毕竟手机号还是非常容易变。 当然,实名认证,也就是二要素认证,是应用最多的认证了。国内唯一的库是在公安部这,由NCIIC负责对外提供接口。可以提供如下功能:

  • 简项核查:返回“一致”“不一致”“库中无此号”

  • 返照核查:返回“一致+网纹照片”“不一致”“库中无此号”

  • 人像核查:返回“同一人”“不同人”“库中无此号”

官方接口收费是 5元/条。 市面上主要的第三方服务提供商有国政通(简项、返照)、诺证通(简项)、IDface(三接口)等,收费简项核查:0.5~2.0元、返照核查为0.8~2.1元、 人像核查2.0~8.0元不等。一般都和访问量有关,量大从优。

当然,这里也要注意,涉密人员是没法查到相关信息的。 性能上, XX通一般在200ms内即可返回结果,普通商用应该是没问题的。 有些公司还会额外提供四要素接口,以XX通为例,它号称支持大部分银行卡的四要素认证。但是实现上有点儿懵,居然是实时请求银行的接口,这就导致接口延迟非常高,1秒以上的占大部分,甚至10秒以上的都不少见,基本无法商用。这种情况下,还不如直接上银联。


鲜花
(0票)

握手
(0票)

雷人
(0票)

路过
(0票)

鸡蛋
(0票)
收藏 邀请

发表评论

推荐阅读
中国移动支付安全大会开幕在即!等你来!
中国移动支付安全大会开幕在即!等你来!
国庆之后,2016年还剩下不到四分之一的时间,是时候抓紧时间赶KPI了。就在此时,你有
请珍惜你身边做支付的人......
请珍惜你身边做支付的人......
支付人熬过了艰难的2015,迎来了更难的2016,也许希望就在2017!做支付的人,奔波忙碌
中国有多少张第三方支付牌照?完全名单表在此!
中国有多少张第三方支付牌照?完全名单表在
央行2011年首次发放第三方支付牌照,到2015年3月26日,已有270家第三方支付机构获得了
2016上半年度:中国第三方支付支付市场专题研究报告(全文高清版) ... ...
2016上半年度:中国第三方支付支付市场专题
来源:Analysys易观(ID:enfodesk)2016年10月9日,易观发布了《中国第三方支付市场
战争打响!消失1个月"信用卡封顶POS机"回来了!
战争打响!消失1个月"信用卡封顶POS机"回来
自2016年9月6日起开始实施,由国家发改委、中国人民银行在今年3月初就下发的《关于完
小伙身份证被冒用欠银行9万元!身份证安全使用攻略!
小伙身份证被冒用欠银行9万元!身份证安全
小邢,河南新郑市人。在西安读研后,应聘于一家通讯公司上班。9月9日,他接到一个电话
精彩图片
  • 请珍惜你身边做支付的人......
  • 中国有多少张第三方支付牌照?完全名单表在此!
  • 2016上半年度:中国第三方支付支付市场专题研究报告(全文高清版) ... ...
  • 中国移动支付安全大会开幕在即!等你来!

关注支付行业,打造支付交流平台,推送最新支付信息,做您圈里圈外的资讯助手,关注互联金融,P2P,支付产品创新!




QQ|Archiver|手机版|小黑屋|支付圈 ( 京ICP备15065834号

QQ|Archiver|手机版|小黑屋|支付圈 ( 京ICP备15065834号

GMT+8, 2017-10-22 06:42 , Processed in 0.171875 second(s), 24 queries.

返回顶部