Saturday, January 9, 2016

第三方支付平台业务分析



http://www.cnblogs.com/leefreeman/p/4043959.html
    第三方支付平台通俗的讲就是作为一个中介,用户先把钱划给第三方平台,第三方平台暂时保管,并通知商家发货,商家将货物发送给用户,用户收货满意后,通知支付平台,第三方支付平台把钱划给商家,如果用户收货后不满意,就将货物退回,第三方平台将钱返还给用。就这样后来陆续产生了很多第三方支付平台,支付宝、财付通、快钱等是经过洗牌之后(支付牌照的颁发),目前规模比较大的第三方支付平台,顺便说一下,建设第三方支付平台门槛高、风险大、竞争激烈,首先公司要获得国家颁发的第三方支付支付牌照、因为涉及巨额的资金交易会承担巨大的风险,而且现在几家大支付平台都在实行免费策略,就这对于刚入门的中小企业来说有巨大的压力。

资金流
    正如上述所说第三方支付平台原理:
image
1:浏览商品、下单;
2:支付,用户将货款划到支付平台;
3:支付平台通知商家支付成功;
4:卖家收到支付通知,进行发货;
5:用户收到货物,验货完成,通知支付平台;
6:支付平台将货款划到商家账户。
    基于这个简单的原理,我们来逐步分析里面的细节,首先在用户和支付系统之间,有一个付款的过程,付款方式有两种,一、将用户银行卡账户的钱付给支付平台;二、将用户在支付平台账户上的钱,划到支付平台中间账户。不管哪种方式,用户都需要先将银行卡的资金转至支付平台(第二种方式也需要从银行账户的资金转至支付平台)。
image
1:浏览商品、下单;
2:支付,用户将银行账户信息提交给支付平台,支付平台连接银行支付网关,请求将买家账户的资金划至支付平台银行开的账户。
3:银行返回结果给支付平台,支付平台通知卖家支付成功
4:卖家收到支付通知,进行发货;
5:用户收到货物,验货完成,通知支付平台;
6:支付平台将货款划到商家账户。
这里我们理一下几个角色:
1、支付平台
2、用户
3、商家
4、银行
这几个角色会做以下事情:
结算、对账、差错处理
支付平台与银行
    用户的支付实际是将自己银行账户的钱划到支付平台的银行账户上(实际上支付平台在多家银行都有自己的账户),同时在支付平台做好记录。但银行实际划账是T+1,也就是说此时虽然支付成功了,但是支付平台的银行账户余额上并没有增加资金,在第二天银行结算完成后,支付平台银行账户的资金才到账。也就是说在此时,只有信息流的产生,没有资金流的产生。而这笔资金信息,在支付平台上也会特别标记,比如记为“应收款”,待实际划款后才记为“已收款”。
    基于这个流程,我们需要做一个事,就是对账。对账也就是看信息流是否和资金流匹配,比如我们的信息流上面有“应收款:500”,在第二天看银行发来的对账文件中是否实际划款了500。对账无误后,会将支付平台上的记录从“应收款”修改为“已收款”。如果对账过程中发现问题,则进行差错处理流程。常见对账问题有:
1、信息流中没有对应的应收款记录,而对账文件中有记录。
    也就是说支付平台,不知道自己收到款了,但支付平台银行账户上实际确实多了款项。这种情况是由于支付请求到达银行后,银行处理完成,但银行通知支付平台环节出现问题(可能是网络原因等),导致支付平台没有收到支付成功的通知,所以在支付平台上没有记录。但因为银行处理完成,在结算的时候仍然会将此款项划入了支付平台银行账户,所以对账文件中存在记录。针对这种情况,可以考虑对账后将信息填补上,并且后续通知商户继续发货。对于用户而言,他的支付状态可能一直待支付,但他实际支付成功,可能会电话投诉,客服做好合理的解释并提供必要帮助。
2、信息流中存在应收款记录,而对账文件中不存在。
    也就是说支付平台认为应该收款,但实际银行账户并未受到款项。这种情况通常是由于支付平台和银行系统系统时间不同,比如一笔交易在支付平台上是23:59分完成的,但银行系统认为是在00:01完成的,所以在银行当日的对账文件中就不存在此款项记录,而会在第二天的对账文件中体现。针对这种情况,因为并不会影响用户支付流程,所以在拿到第二天的对账文件时做处理就行了。
支付平台与商户
    支付平台和商家也有对账的需求,因为商家的资金存在支付平台的账户上,而发货由商家做。商家就得核对每天的货款是否和自己支付平台上的账户金额对的起来。通常的做法是支付平台提供一个商家系统,商家可以在系统中查询下载一段时间内的账户信息,然后和自己的货款信息对账。
支付安全
支付平台作为交易的中介,支付安全就至关重要,支付平台通常面临的安全问题,包括:
1、用户密码被盗;
2、钓鱼网站诱导用户骗取资金;
3、用户银行卡信息泄露;
4、网络传输数据被截取;
    针对第一种情况,大部分支付平台会设置两个密码,即登录密码和支付密码,登录密码和支付密码严格要求不能相同,如果你两个密码都被盗了怎么办?一般支付平台在支付时要求你安装数字证书,数字证书和某台电脑是绑定的,没有安装数字证书的电脑不能完成支付。而新安装数字证书必须通过手机短信进行验证。纳尼?手机也丢了,那就只有打110了。
    钓鱼网站就是域名和界面都和真实的支付平台网站非常相似的网站,用户误认为是真实网站而输入了自己的账户信息支付,导致资金转到了非法账户。防止钓鱼网站,支付平台可以与浏览器厂商合作,比如输入类似域名的网站时警告用户该网站可能存在风险,而正确域名的网站则提醒用户该网站是安全可靠的。
    用户银行卡信息被泄露,一般在支付时还会有手机短信验证进一步保证安全,另外在交易风险监控方面也可以做一些事情,例如限制一张银行卡当日的最大交易量。如果交易量超过设定阀值,则交易失败,另外发送短信给用户提示账户存在风险。
    由于支付的过程相关的支付信息、账户信息都会在网络上传输,为了保证数据在传输过程中的安全,一般会采用SSL协议(Secure Socket Layer即安全套接层)或SET协议(Secure Electonic Transcation 即安全电子交易协议)来进行传输,他可以实现数据的加密,并且提供认证服务和保证数据完整性。具体的技术细节有机会在慢慢分析。
http://www.cnblogs.com/leefreeman/p/4043959.html

Labels

Review (572) System Design (334) System Design - Review (198) Java (189) Coding (75) Interview-System Design (65) Interview (63) Book Notes (59) Coding - Review (59) to-do (45) Linux (43) Knowledge (39) Interview-Java (35) Knowledge - Review (32) Database (31) Design Patterns (31) Big Data (29) Product Architecture (28) MultiThread (27) Soft Skills (27) Concurrency (26) Cracking Code Interview (26) Miscs (25) Distributed (24) OOD Design (24) Google (23) Career (22) Interview - Review (21) Java - Code (21) Operating System (21) Interview Q&A (20) System Design - Practice (20) Tips (19) Algorithm (17) Company - Facebook (17) Security (17) How to Ace Interview (16) Brain Teaser (14) Linux - Shell (14) Redis (14) Testing (14) Tools (14) Code Quality (13) Search (13) Spark (13) Spring (13) Company - LinkedIn (12) How to (12) Interview-Database (12) Interview-Operating System (12) Solr (12) Architecture Principles (11) Resource (10) Amazon (9) Cache (9) Git (9) Interview - MultiThread (9) Scalability (9) Trouble Shooting (9) Web Dev (9) Architecture Model (8) Better Programmer (8) Cassandra (8) Company - Uber (8) Java67 (8) Math (8) OO Design principles (8) SOLID (8) Design (7) Interview Corner (7) JVM (7) Java Basics (7) Kafka (7) Mac (7) Machine Learning (7) NoSQL (7) C++ (6) Chrome (6) File System (6) Highscalability (6) How to Better (6) Network (6) Restful (6) CareerCup (5) Code Review (5) Hash (5) How to Interview (5) JDK Source Code (5) JavaScript (5) Leetcode (5) Must Known (5) Python (5)

Popular Posts