笔者在上一篇blog<<第三方支付架构设计之—帐户体系>>中已经稍微全面的阐述了第三方支付架构设计中的账户体系,在该体系中,其实涉及了各种各样的账户:银行侧账户(包括用户在银行侧的账户:用户借记卡,信用卡,商户在银行侧的清算账户,结算账户等),第三方支付自有账户(跟银行侧账户比较类似,包括用户在第三方支付公司的账户和商户在第三方支付公司的账户)等。

          我们知道,第三方支付本身是不直接接触实际资金的,所有的资金流必须走银行系统进行,因此这里涉及到的实际资金流的时候就会把交易请求转接到银行系统进行,

银行侧账户我们大家相对比较了解,本章暂时先放一下,后续介绍快捷支付的时候,我们会进一步详细的讨论。

         本章我们重点会放在第三方自有账户体系中,大家知道,第三方支付公司都会建立自己的账户系统,比如国内主流的第三方支付公司:支付宝,财付通等,都有自己的账户体系,具体在产品上表现为:支付宝余额,财付通余额,这是比较官方to c的账户,还有其他二级账户如:理财通余额,积分子账户,微信钱包余额,红包余额等,另外还有to B的商户账户,我们常说的商户接入需要申请商户号就是这个道理。

         那么,这里有个问题:第三方支付搭建自有账户体系的必要性和目的是什么?让用户直接使用银行的账户本身不就是可以了吗?这里没有简单的答案,但笔者认为有几个方面的因素是非常重要的:

1,资金沉淀。

     通过建立自有账户体系,对用户的资金进行沉淀,这本身是一个比较大的资金池,用户通过充值,支付等把资金转入了第三方支付公司在相关银行的清算账户-客户备付金账户,同时,在自有账户体系记录了一笔虚拟资金的入账,即增加等额的余额。

通过自有账户体系对用户资金进行管控,当然该账户的资金会受到监管,第三方支付公司也能够获取对应资金的利息收入,并且这些资金如何进行盘活目前也是第三方支付公司在不断思考和需要突破的核心问题:如是否可以进行授信支付?贷款?

  2,产品粘性需要。

     在支付行业,特别是互联网金融,两个东西是非常关键,甚至是致命的:账户和入口。账户沉淀了用户的资金,是交易的基础,所谓交易是解决资金在不同账户之间进行流动的问题,为了有效的控制资金在账户之间转移的原则性和业务规则,在设计上引入了订单,因此,从这个角度看,交易的核心处理对象是订单和账户。只有用户的资金在你的系统里面,用户才会持续的使用你的服务,否则用户的转移成本基本是0。

  3,系统闭环需要。

     我们知道,在架构设计当中,有一个非常重要的方法论:系统闭环和自愈能力。所谓系统闭环就是说通过划分边界定义各个系统,其中相对可控的是属于内部系统,不可控的或者可控性更弱的属于外部系统,而我们总是希望更多的纳入到可控系统中,这样,我们就能进一步拥有对系统进行持续优化,快速问题定位,治标到治标的系统演进,使得系统更有效的,更低成本的,更高健壮的,更安全的,更可管理的,更高性能的服务我们的业务。

而通过创建自有账户,把用户的资金转移到自有账户体系,后续的支付和交易等均基于自有账户体系进行,就能够达到上面说的目标:系统闭环,提升支付的成功率和性能,改善用户体验。

二,自有账户体系的分类

      类似银行侧账户体系,银行侧账户有对私和对公账户,也就是说是个人和企业账户是否分开的,类似的,第三方支付公司的自有账户体系也是分为个人账户和商户号。

     个人账户:个人账户主要是面向to Client的账户体系,如财付通余额,用户通过注册财付通后系统分配给用户的一个账户,该账户支持充值,支付,提现,转账等功能。

这里有个特点:第三方支付个人账户的资金是没有利息收入的,一般也没有账户管理费的概念。

    商户号: 第三方支付公司面向商户to Business的账户体系,对商户号的管理相对复杂,也是第三方支付公司的收费对象,为了进行收费等账户管理手段的实施,参考银行账户体系(一般包括清算账户和清算账户),商户号其实对应了两个账户,一个是B账户,另外一个是C账户,B账户可以认为是清算账户,用户支付后资金后首先会在B账户记录入账流水(一般无需即余额),通过结算到对应的C账户-扣除平台手续费后入账到C账户,而C账户则是商户可以直接操作的账户,如进行提现到银行卡等。

三,自有账户体系的支付流程

1,用户充值进入自有账户体系:

       2,用户提现逃离自有账户体系:

       3,C2C转账:

       用户直接相互转账到对方的余额。

       流程:

       1,转出方账户: 扣除资金

       2,转入方账户: 增加资金

       实现方式上可以考虑通过强事务保障1和2的原子性

       4,C2B支付:

       最常见的支付;

       5,B2C转账:

       商户打款,中间账户;

      6,C2B2C支付:

       淘宝的担保交易模式。

原文链接:http://blog.csdn.net/tenfyguo/article/details/43350755

第三方支付设计——自有账户支付的更多相关文章

  1. 第三方支付设计——账户体系

    第三方支付架构设计之-帐户体系 一,      什么是第三方支付?         什么是第三方支付?相信很多人对这个名字很熟悉,不管是从各种媒体等都经常听到,可以说是耳熟能熟.但,如果非得给这个名词 ...

  2. 干货 | 高耦合场景下,Trip.com如何做支付设计与落地

    干货 | 高耦合场景下,Trip.com如何做支付设计与落地 https://mp.weixin.qq.com/s/VR9NTR3RpKVfmUPcwgMABg 原创 Ryann Liu 携程技术 2 ...

  3. 企业号微信支付 公众号支付 H5调起支付API示例代码 JSSDK C# .NET

    先看效果 1.本文演示的是微信[企业号]的H5页面微信支付 2.本项目基于开源微信框架WeiXinMPSDK开发:https://github.com/JeffreySu/WeiXinMPSDK 感谢 ...

  4. 微信支付-微信公众号支付,微信H5支付,微信APP支付,微信扫码支付

    在支付前,如果使用第三方MVC框架,则使用重写模式,服务器也需要配置该项 if (!-e $request_filename){ rewrite ^/(.*)$ /index.php/$ last; ...

  5. 李洪强iOS开发支付集成之支付宝支付

    iOS开发支付集成之支付宝支付 下载支付宝SDK 首先是开发包下载,还是比较难发现的,网上以前文章中的链接都打不开,我找了好久才找到的.最新的地址在这里(注意的是下载出来的SDK包里面并没有传说中的开 ...

  6. php微信支付(仅Jsapi支付)详细步骤.----仅适合第一次做微信开发的程序员

    本人最近做了微信支付开发,是第一次接触.其中走了很多弯路,遇到的问题也很多.为了让和我一样的新人不再遇到类似的问题,我把我的开发步骤和问题写出来,以供参考. 开发时间是2016/8/2,所以微信支付的 ...

  7. Payssion,海外本地支付_海外本地收款_小语种本地支付_外贸收款_外贸网店收款_欧洲本地支付_俄罗斯本地支付_巴西支付_跨境支付_PAYSSION,让跨境支付更轻松!

    Payssion,海外本地支付_海外本地收款_小语种本地支付_外贸收款_外贸网店收款_欧洲本地支付_俄罗斯本地支付_巴西支付_跨境支付_PAYSSION,让跨境支付更轻松!       首页 / 关于 ...

  8. 微信公众号支付|微信H5支付|微信扫码支付|小程序支付|APP微信支付解决方案总结

    最近负责的一些项目开发,都用到了微信支付(微信公众号支付.微信H5支付.微信扫码支付.APP微信支付).在开发的过程中,在调试支付的过程中,或多或少都遇到了一些问题,今天总结下,分享,留存. 先说注意 ...

  9. iOS开发支付集成之支付宝支付

    项目中要用到支付功能,需要支付宝,微信,银联三大支付,所以打算总结一下,写两篇文章,方便以后的查阅, 大家在做的时候也能稍微参考下,用到的地方避免再次被坑.这是第二篇支付宝集成,第一篇银联支付在这里. ...

随机推荐

  1. Dynamics CRM EntityCollection 根据实体中的某个字段为依据去除重复数据

    CRM中通过QueryExpression查询出了一个EntityCollection集,但有时会存在重复数据,QueryExpression中有个属性distinct,只要设置为true就能过滤 ...

  2. Socket编程实践(7) --Socket-Class封装(改进版v2)

    本篇博客定义一套用于TCP通信比较实用/好用Socket类库(运用C++封装的思想,将socket API尽量封装的好用与实用), 从开发出Socket库的第一个版本以来, 作者不知道做了多少改进,  ...

  3. UVa - 1618 - Weak Key

    Cheolsoo is a cryptographer in ICPC(International Cryptographic Program Company). Recently, Cheolsoo ...

  4. 《java入门第一季》之正则表达式小案例

    案例一: 判断手机号码是否满足要求 import java.util.Scanner; /* * * 需求: * 判断手机号码是否满足要求? * * 分析: * 13436975980 * 13688 ...

  5. (NO.00002)iOS游戏精灵战争雏形(五)

    完成了精灵自己移动之后,我们开始着手实现按住精灵拖动的功能. 要想处理触摸事件,我们需要做2件事: 1.在类的初始化中打开触摸接收属性 2.实现触摸处理回调方法 我们依次来做这2件事. 首先要搞清楚在 ...

  6. H5学习之旅-H5的框架(13)

    H5框架语法介绍 :frame:框架对于页面的设计有很大的作用 frameSet:框架集标签定义如何将窗口分割为框架 ,每一个frameset定义一些列行或者列,rowS/COLS规定了每行或者每列占 ...

  7. Python进阶 函数式编程和面向对象编程等

    函数式编程 函数:function 函数式:functional,一种编程范式.函数式编程是一种抽象计算机的编程模式. 函数!= 函数式(如计算!=计算机) 如下是不同语言的抽象 层次不同 高阶函数: ...

  8. How Many Processes Should Be Set For The Receiving Transaction Manager (RTM)

    In this Document   Goal   Solution   References APPLIES TO: Oracle Inventory Management - Version 10 ...

  9. Android 数据库框架ormlite

    Android 数据库框架ormlite 使用精要 前言 本篇博客记录一下笔者在实际开发中使用到的一个数据库框架,这个可以让我们快速实现数据库操作,避免频繁手写sql,提高我们的开发效率,减少出错的机 ...

  10. LeetCode之“链表”:Reorder List

    题目链接 题目要求: Given a singly linked list L: L0→L1→…→Ln-1→Ln, reorder it to: L0→Ln→L1→Ln-1→L2→Ln-2→… You ...