本文摘录自: http://blog.lixf.cn/essay/2017/04/01/concept-01-overview/

一、支付概述--

1. 支付与交易

  • 交易过程: 交易的存在是支付发生的前提,债权和债务关系的形成导致支付偿返的出现。

  • 多重债务关系

  • 清结算
    结算: 通过银行内账户间的划转而实现债务关系清偿;这种结算方式提升了资金清偿的效率,减少结算过程中资金在途占用的时间,提高了资金使用率。

    清洁算:
    针对跨行的资金交易
    清分: 每日凌晨计算 A行前一天需要付给B行的钱。
    amount = (A行应该付给B行的钱 - B行应该付给A行的钱)

    清算: A行将清分结果对交易数据进行净额轧差,提交并完成资金划拨给B行。

如果有很多银行,每个银行都需要和对方执行清结算,这个很烦。于是,国家成立专门的机构来做这个事情,这就是央行,以及后来的银联

2. 支付方式

  • 现金货币支付 :现金
  • 转移支付方式 :抵押
  • 账户划转的支付结算方式 :转账
  • 第三方支付支持的中介担保支付方式 :第三方支付-支付宝

3. 支付工具
def: 支付工具是由银行或者其他支付机构发行的,能够发起支付指令,用于债务清偿或者资金转移的证件,比如支票、汇票、本票、银行卡等。

在金融机构中,支付工具一般分为三类:

  • 贷记支付工具:资金被划入银行应收账户
  • 借记支付工具:结算资金转移反映在银行账户上是债务的减少
  • 通用支付工具:银行卡、电子支付

二、在线支付流程

  1. 线上支付方式
    支付方式指消费时付款的方式,比如现金支付、货到付款、信用卡支付、借记卡支付、扫码支付等。

  2. 支付应用
    指提供给最终用户在特定场景下使用的产品。
    比如扫码收银、二维码支付、打赏、众筹、POS支付、生活缴费、信用卡返款、手机充值等。 这些应用是建立在支付产品的基础之上,直接面向最终的用户提供服务。

  3. 支付路由
    指根据用户选择的支付方式,结合费率、QOS等因素,选择合适的银行或者其他公司提供的支付接口来完成资金转移操作。

三、支付系统架构

支付系统从架构上来说,分为三层

  • 支撑层: 用来支持核心系统的基础软件包和基础设施, 包括运维监控系统、日志分析系统等。
  • 核心层: 支付系统的核心模块,内部又分为两个部分: 支付核心模块以及支付服务模块。
  • 产品层: 通过核心层提供的服务组合起来,对最终用户、商户、运营管理人员提供的系统。

支付核心系统
支付核心系统指用户执行支付的核心流程,包括:

  • 用户从支付应用启动支付流程。
  • 支付应用根据应用和用户选择的支付工具来调用对应的支付产品来执行支付。
  • 支付路由根据支付工具、渠道费率、接口稳定性等因素选择合适的支付渠道来落地支付。
  • 支付渠道调用银行、第三方支付等渠道提供的接口来执行支付操作,最终落地资金转移。

1、支付网关

在支付系统中,支付网关和支付渠道的对接是最核心的功能

  • 支付网关是对外提供服务的接口,直接对接业务系统的接口
  • 支付渠道模块是接收网关的请求,调用渠道接口执行真正的资金操作

2、支付产品

def1:支付产品模块是按照支付场景来为业务方提供支付服务
def2:支付产品是由支付系统对支付渠道进行封装而对业务方提供的支付能力

  • 这个模块一般位于支付网关之后,支付渠道之前
  • 根据支付能力将不同的支付渠道封装成统一的接口,通过支付网关来对外提供服务
  • 支付产品本身也是一个代理模式的微服务,它透过支付网关响应业务方请求, 进行一些统一处理后,分发到不同的支付渠道去执行,最后将执行结果做处理后,通过支付网关再回传给业务方

支付产品分类

支付产品功能

支付流程

3、银行卡支付

  • 认证支付
    def:指用户在绑卡时,将卡信息提供给电商,电商在服务器侧保留用户的账户信息。

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

  • 网银支付

4、快捷支付

  • 快捷支付在支付场景上的优势:
  1. 提升支付成功率
  2. 提升支付安全性
  3. 提升用户体验
  4. 获取可靠支付数据

5、支付路由

  • 设计目标
    省钱、提升支付产品的QOS(服务质量)、支持营销、降低运营成本
    被支付网关调用

  • 计算因子
    路由规则是支付路由的核心

三、P2P网络借贷

1、 p2p业务流程

2、 P2P借贷的特点

  • 成交量大
  • 借款期限短
  • 贷款金额小
  • 参与人数众多
  • 回报丰厚

3、P2P监管

P2P网贷行业监管的十大原则:

  • P2P的发展要坚持业务本质,不得建资金池。
  • 落实实名制原则,资金流向要清晰。
  • P2P要清晰业务边界,区别于其他法定金融业务,打击冒名非法经营。
  • P2P要有行业门槛。
  • 贷款人和出借人的资金要进行第三方托管,不能以存管代替托管。
  • P2P自身不担保,引入的担保机构要有资质,不能承担过多担保倍数。
  • 要有明确的收费机制,力求长期的发展,不能盲目追求高收益。
  • 应充分进行信息披露,既要披露自身和运营信息,也要进行风险提示。
  • 要加强行业自律组织的建设、推动行业标准化和信息共享,打击伪P2P。
  • 坚持小额化、普惠金融、支持个人和小微企业 。

4、P2P系统设计

存管系统应用模型:

直接存管模式:

  1. 银行为P2P网贷平台开立网络借贷资金存管专用账户(大账户)和自有资金账户。
  2. 出借人和借款人在P2P平台注册账户,然后到银行界面开立个人存管账户(子账户)。这个银行子账户关联到P2P账户。
  3. 根据平台自身需求与实际情况为平台开立风险备用金存管账户和担保公司存管账户。

存管充值流程:

存管提现流程:

四、网联

释义: 非银行支付机构网络支付清算平台,主要是为第三方支付机构提供一个统一的独立清算平台.也就是说,之前的第三方支付机构(微信、支付宝等)线上支付是直接对接各大银行的,而现在只需要对接网联,再由网联作为中间平台实现与银行对接。

组成: 网联共注资20亿,支付宝和腾讯各占10%的股份,央行系占30%。股东总数44家,其中38家是第三方支付机构。同时支付公司也是网联建设的主力.

定位: 统一支付清算

  • 1、通过这种方式,网联可以获取所有的交易数据
  • 2、监督
  • 3、破解数据垄断
  • 4、扶持中小支付机构
    网联拉平了第三方支付公司的银行端对接能力,对中小第三方支付公司是好事情。

功能概述:

1、协议支付

对比现有快捷支付:
同:协议支付指客户需要先进行身份认证及签约,然后再根据签约协议进行支付,银行需要校验协议信息
异:协议支付业务与现有市场的快捷支付业务相比主要增加了银行端解约的功能

在支付宝卡通业务改造为快捷支付之后,快捷支付的解约支付机构不再通知到银行,银行本身也没有发起解约的功能,所以银行系统中保留的签约信息不是完全正确的——目前网联切量数据的迁移方案就需要解决这个问题。 网联建立后,根据人行发文要求,快捷支付业务的协议信息支付机构必须和银行保持一直,并且可以从银行发起解约交易。

2、数据中心

网联采用三地六中心的方案。在北京、上海、深圳三地。

3、支付机构接入网联

支付机构采取三大接入原则:

  • 平台分配: 网联平台将根据机构数据中心的位置进行分配,就近接入平台的数据中心。
  • 跨地域接入: 机构必须至少接入平台异地的两个数据中心
  • 跨运营商: 至少选择2家不同的运营商

Extract - <<凤凰牌老熊-现代支付系统设计>>的更多相关文章

  1. VS Extract Method

    前言 看重构6.4Replace Temp with Query(以查询取代临时变量)中提到Replace Temp with Query往往是你运用Extract Method之前必不可少的一个步骤 ...

  2. Unable to extract 64-bitimage. Run Process Explorer from a writeable directory

    Unable to extract 64-bitimage. Run Process Explorer from a writeable directory When we run Process E ...

  3. php extract 函数的妙用 数组键名为声明为变量,键值赋值为变量内容

    extract 函数的妙用 数组键名为声明为变量,键值赋值为变量内容 它的主要作用是将数组展开,键名作为变量名,元素值为变量值,可以说为数组的操作提供了另外一个方便的工具

  4. 关于Oracle GoldenGate中Extract的checkpoint的理解 转载

    什么是checkpoint? 在Oracle 数据库中checkpoint的意思是将内存中的脏数据强制写入到磁盘的事件,其作用是保持内存中的数据与磁盘上的数据一致.SCN是用来描述该事件发生的准确的时 ...

  5. extract()函数

    extract(),它的主要作用是将数组展开,键名作为变量名,元素值为变量值 extract($_POST);//相当于$username = $_POST['username'];//$passwo ...

  6. Extract Stylish styles and save as JSON format

    Introduction Stylish is a easy browser extension/plugin for users to customizing the web page stylin ...

  7. Extract QQ from iPhone and analyze it

    QQ is one of the most popular chat App in the world. Now let me show you how to extract QQ from iPho ...

  8. GoldenGate 配置extract,replicat进程自启动

    在GoldenGate中主进程是manager进程,使用start mgr启动.可以在mgr进程中添加一些参数用来在启动mgr进程的同时启动extract和replicat进程 GGSCI (gg01 ...

  9. php变量与数组相互转换的方法(extract与compact

    #php变量与数组相互转换的方法(extract与compact) #compact 多个变量转数组 $name = 'sui'; $email = 'sui@qq.com'; $arr = comp ...

  10. PHP extract() 函数

    PHP extract() 函数从数组中把变量导入到当前的符号表中. 对于数组中的每个元素,键名用于变量名,键值用于变量值. 第二个参数 type 用于指定当某个变量已经存在,而数组中又有同名元素时, ...

随机推荐

  1. linux下多线程断点下载工具-axel

    今天要下载一下14G左右的文件,用wget约10小时,后来发现linux下有个多线程支持断点续传的下载工具axel,试了一下,下载速度大大增加. 包地址:http://pkgs.repoforge.o ...

  2. mongodb导入json文件(WINDOWS)

    mongodb导入json格式的文件的命令是mongoimport: 在下面的这个例子中,使用mongoimport命令将文件pi.json中的内容导入loacal数据库的pi集合中. 打开CMD,进 ...

  3. python3.x 安装命令

    在root下执行下面的命令即可: sudo apt-get install python3-dev build-essential libssl-dev libffi-dev libxml2 libx ...

  4. ssh.sh_for_ubuntu1204

    #!/bin/bash sed -i 's/PermitRootLogin without-password/PermitRootLogin yes/g' /etc/ssh/sshd_config s ...

  5. mssql发布订阅事项

    在发布订阅过程中遇到2个需求: 1.在原有的发布快照中增加发布内容,追加模式需要在追加的表中设计一个主键,要不然没有办法进行发布的,另外还得注意将这两个字段进行更改: select immediate ...

  6. 团队项目-第三次scrum 会议

    时间:10.25 时长:30分钟 地点:线上 工作情况 团队成员 已完成任务 待完成任务 解小锐 根据初步讨论结果编写初步的api文档 编写project和projectGenerator类 陈鑫 采 ...

  7. 软工实践Alpha冲刺(8/10)

    队名:起床一起肝活队 组长博客:博客链接 作业博客:班级博客本次作业的链接 组员情况 组员1(队长):白晨曦 过去两天完成了哪些任务 描述: 已经解决登录注册等基本功能的界面. 完成非功能的主界面制作 ...

  8. update-database -script

    update-database -script 更新脚本生成失败? 项目选择的不对 update后面-database空格-script

  9. 【bzoj2565】最长双回文串 Manacher+树状数组

    原文地址:http://www.cnblogs.com/GXZlegend/p/6802558.html 题目描述 顺序和逆序读起来完全一样的串叫做回文串.比如acbca是回文串,而abc不是(abc ...

  10. [bzoj] 3224 Tyvj 1728 普通平衡树 || 平衡树板子题

    #include<cstdio> #define N 100010 #define which(x) (ls[f[(x)]]==(x)) using namespace std; int ...