支付系统、账户系统有关模型

简介:账户体系是支付系统的基础,一个支付系统必须要有账户体系。因此账户体系的设计显得尤为重要。

支付账户和登陆账号

  两个概念:支付账户和登陆账号,这是属于两个不同业务的领域。

  支付账户:用户在支付系统中用于交易的所有者权益的凭证。

  登陆账号:用户用于登录系统的凭证和个人信息。

  两者的联系:一个用户可能会有多个登录账号,一个登录账号又可能会有多个支付账户。比如,用户可以有零钱账户,储值卡账户等各种账户。一般来说,一个支付账户不可能在多个登录账号中公用。

账户的设计需求

  在支付系统中,对于账户的设计可能从以下几个方面考虑:

    1、交易的需求:比如检查账户是否被锁定,账户余额是否足够,账户是否有效等

    2、记账的需求:按照公司会计需求记录账户上的所有行为,包括支出,充值和转账等

    3、对账的需求:包括政府渠道,商户和个人的对账需求,核对交易和账户余额是否正确

    4、风控的需求:如反洗钱,反欺诈等,都需要依赖账户体系来提供核心数据

    5、信用的需求:对用户,资产,商户等主题进行信用评估的时候,也需要依赖账户体系来提供核心数据

    这五个需求设计的优先级分为支付,记账,对账,风控来进行。

交易与账户

  账户设计一般是从交易开始的,交易的实现必须要有账户的支持,交易是账户的基本组成元素,从支付系统的角度,交易的资金流的流向是从一个账户流向另一个账户,发起交易的一方,被称为交易主体。他可以是

个人也可以是一个机构。

  资金会从主体所拥有的账户中流出,而接收交易的一方被称为交易对手,他也可以是一个人也可以是一个机构。

  而在电商系统中,交易会涉及到渠道。

  由于电商本身并没有清结算的资质,所有资金从交易主体到交易对手的账户的流动,在大部分的情况下,并没有经过电商系统,而是由电商系统调用支付渠道的接口,由他来完成真正交易的过程。而在渠道完成交易的过程中,渠道是要收取渠道费的。

  因此在电商系统中,一次交易会涉及到三个账户,交易主体账户,交易对手账户和交易渠道账户。

记账和账户

  当用户使用银行卡来进行支付的时候,电商系统需要与银行来进行对接,从用户银行卡所代表的账户上去扣除资金。对接了银行,第三方支付等机构的电商支付系统,他需要连接到用户在这些机构的账户来进行扣款和充值操作。这些账户或称为外部账户。

  对于外部账户,支付系统只能记录在本系统的交易明细和累计消费额。而无法得知账户的真正余额。因此有些电商系统会做零钱的做法,让用户充值到零钱,使用的时候直接从零钱中扣除资金。这就是账户系统所说的零钱账号。所谓的零钱账号,就是电商系统在本系统中设置的自己内部的账号,所以也叫作内部账号。可以知道账户的全部消费明细和余额。

  除了零钱账号还有储值卡账号,以及信用账号。

问题:有没有优惠账户,一次消费的储值卡账户和可以充值的储值卡账户?

收款账户和收单账户

  当电商要对接银行的时候,电商会被要求开一个收款账户,当用户通过这个银行来进行支付的时候,钱就会自动转到这个账户中。

  对于第三方支付也是一样的,收款账户会开设在银行和第三方这边,也就是渠道侧,一般来说,渠道每天都可以提供这个账户的交易流水提供给电商进行对账,这样在电商这边,渠道就称为了一个收单机构。所以在

电商在这边,建立这个收款账户对应的对账用的收单账号,用来记录通过这个渠道进行的各项交易流水。

账户建模

  账户模型是和公司业务密切相关的。账户建模有三大核心模型:

    1、实体模型

    2、账户模型

    3、交易模型-------》针对各个角色的账户流水,明细模型,用于支持对账。

实体模型

  支付相关的实体模型会有如下的属性:

  1、用户ID,一般直接映射到账户的id

  2、是否允许执行支付

  3、支付密码

  4、用于设置和重置密码的手机号

  5、用于设置和重置密码的邮箱

  6、用户的安全级别,根据业务需求来设置

账户模型

  根据业务需要,可以设置多种账户模型,一般来说,电商系统中涉及到的账户模型有:

  1、虚拟币账户

  2、代扣账户

  3、零钱账户:电商的内部账号,用户商户清算单位需要建立零钱账户

  4、第三方支付账户:用于在第三方支付机构建立的账户

  5、银行卡账户:用户的银行卡信息,一个卡对应一个账户

  6、结算账户:用于支持和第三方和银行进行结算用的账户。第三方为每个商户号建立一个结算账户;银行需要为借记卡,贷记卡建立结算账号(银行卡直连的时候使用)

  7、代扣代缴账户

账户模型有关的属性

  账户号:也就是账户id,一般是系统自动生成的(这里要事先约定好账户id生成的规则)-------》问题:账户id生成有什么规则?

  账户名称:这里的账户名称是用户自己设置

  账户使用的货币类型:一张银行卡会涉及多种币种,实际在内部,也会为每个币种建立一个独立的账户。

  会计科目代码:

账户控制相关

  是否允许充值,是否允许提现,是否允许透支,是否允许支付,是否允许转账进入,是否允许转账转出,是否有安全保障,是否冻结,是否激活

资金相关

  当前账户余额=可用余额+冻结余额

  当前账户可用余额:

  当前账户冻结余额:--------》冻结余额?银行卡和第三方支付信息:

  第三方实体id:

  第三方账号,银行卡账号和第三方支付的open_id

  第三方的app_id

  账户的失效日期,该账户什么时候失效

注意:有些第三方信息是不能保存的,如用户的账号密码,信用卡的CV号等,对敏感信息,密码进行加密保存,有时候甚至保存在另一张表中,还可以增加校验字段,在读取数据的时候做校验,一旦发现数据有问题,

关闭该账号。

交易模型

  交易记录,交易流水,账户流水----------》这三者的核心是交易流水

账户流水是从账户视角的交易流水。

交易模型对应的属性

  流水号:每一笔交易的流水号都不一样,需要根据业务需要详细设计流水号,这个号往往也是对交易表做分表分库的依据

  交易记录创建时间:

  交易记录最后修改时间:

  会计科目代码:

  关联的订单号,由商户提供:

  订单名称,描述,关联的地址信息等等

  费用信息,包括:结算货币类型,原始费用,实际费用

  交易主体信息:记录主体id,类型,名字,账号,账号类型,使用的ip地址,手机号,平台,通知邮箱,当前位置等。这些信息虽然从主体表中获取,但考虑到主体表信息随时被修改,所以这里需要记录详细的各原始信息。

  交易对手信息:记录对手主体的id,类型,名字,账号,账号类型,手机号,平台,通知邮箱等

  交易渠道信息:记录所使用的的交易渠道的主体id,渠道账户,渠道执行支付时间,渠道侧返回的订单号等。如果有错误发生,还需要记录从渠道接收到的错误信息和错误码

原文地址:https://www.cnblogs.com/hengzhou/p/9438786.html

时间: 2024-11-10 00:14:41

支付系统、账户系统有关模型的相关文章

互联网账户系统如何设计(上篇)?

在很多互联网公司业务发展的早期,业务模式比较单一的情况下,涉及用户账户资金交易相关的逻辑也比较简单,但是随着公司业务模式的不断创新及类型的多元化发展,会渐渐发现现有系统账户逻辑越来越雍肿,不仅难以支持新业务的扩张,对现有业务的支持也适配困难,最终导致新业务系统不得不重新搭建自己的业务账户逻辑,造成重复建设不说,也往往给后续的财务资金核算造成混乱. 以某互联网A租车公司的业务发展路径为例? 阶段A A公司在早期开展租车业务时根据用户使用场景规定用户必须在缴纳押金以后才可以租车,并且支持用户进行余额

[译]搭建账户系统

原文地址:Building account systems 原文作者:Mike Hearn 译者:shawnchenxmu 校对者:undead25 DeadLion 搭建账户系统 Troy Hunt 近期发表了一篇题为『新时代的认证指南』的博文.文章对于「你的网站应该使用什么样的密码规则」给予了很多实用的建议,而通过参考权威机构的建议总是有助于说服同事或老板. 我在 Google 工作期间从事过的一个项目就是他们的统一账户系统(特别是反劫持).大多数网站都会有一个登录系统,阅读 Troy 的文

大众点评支付渠道网关系统的实践之路

业务的快速增长,要求系统在快速迭代的同时,保持很好的扩展性和可用性.其中,交易系统除了满足上述要求之外,还必须保持数据的强一致性.对系统开发人员而言,这既是机遇,也是挑战.本文主要梳理大众点评支付渠道网关系统在面对这些成长烦恼时的演进之路,以及过程中的一些思考和实践. 在整个系统的演进过程中,核心思路是:大系统做小,做简单(具体描述可参考<高可用性系统在大众点评的实践与经验>).在渠道网关系统实践过程中,可以明显区分出几个有代表性的阶段. 一.能用阶段 早期业务流量还不是很大,渠道网关系统业务

电商系统中的商品模型的分析与设计

前言 在电商系统中,商品模型至关重要,是整个电商的核心,下面通过一个简单的分析,设计一个基础的商品模型. 商品模型的演化 在以前,那时CMS很流行,最常见的模型是栏目-文章模型.于是做电商的时候,自然就继承了这种一对多的关系.只是栏目变成了分类,文章变成了商品.商品也具备了独特的业务属性.现在很多电商网站上左侧的菜单,也就是这个分类. 后来我们慢慢发现一个问题,只有分类并不能适应所有的需求,比如nike鞋和nikeT恤,用户可能希望先看nike的所有商品,这个模型就不能满足.我们想在这个关系中,

SharePoint 2010 系统账户没完全控制权限了

网上下载了一个试用版的wsp包,安装部署后感觉不好就卸载掉了.坑爹的事情发生了,系统账户登录网站集竟然没完全控制权限了.连添加列表项的权限都没有了. 去管理中心查看,网站集管理员,没发现问题. 更坑爹的是在管理中心,系统账户权限一切正常.google一圈才发现,网站集莫名其妙的改为只读状态了. 管理中心-----应用程序管理----配置配额和锁定 解决办法:选'未锁定',然后确定即可. SharePoint 2010 系统账户没完全控制权限了,布布扣,bubuko.com

电商系统中的商品模型的分析与设计&mdash;续

前言     在<电商系统中的商品模型的分析与设计>中,对电商系统商品模型有一个粗浅的描述,后来有博友对货品和商品的区别以及属性有一些疑问.我也对此做一些研究,再次简单的对商品模型做一个介绍. 从SPU.SKU开始     首先我们需要澄清上篇中的这两个概念,在上篇文章中"货品"是指一种概念物品,这种物品并不是一个具体的实物,当它具备具体的属性.价格时,才是一种实物,也就是商品."商品"就是库存中一个具体的实物.例如:iphone6,就是一种货品,但用户

构建账户系统

最近项目需要,自主构建一套账户系统,总结一下需要注意的问题.账户系统技术上不难,但是里面涉及到多种状态与交互,工程性比较强. 这里只考虑用邮箱注册的情况,登录名即邮箱. 1.安全问题.首选https. 2.注册,激活,登录,登出,找回密码,重置密码,重新获取激活链接,注销(暂时不做),获取用户信息. 3.设计是规划好错误提示信息和错误码 注册:邮箱已注册, 邮箱已注册,未激活 注册成功,请打开邮箱激活, 系统错误 激活:激活成功, 激活失败, 该用户已激活, 激活码过期. 登录:用户或密码错误(

Meteor 添加账户系统

Meteor 添加账户系统 我们给meteor添加一个账户系统 导入包 meteor add ian:accounts-ui-bootstrap-3 meteor add accounts-password 在界面添加登陆按钮 {{> loginButtons}} result

3.运维平台之账户系统

历程: 0. 账户系统(accounts)分为用户认证和权限分配两部分. 1. 刚开始运维平台业务比较单一,只提供给运维组人员使用即可,根本没有用户账号的概念. 2. django系统本身有用户.用户组.权限,需要进行一些扩展开发,以满足需求. 在16年独立出用户认证注册模块,形成accounts项目,简单API认证. 3. 在17年时,前端设计获得很大突破,基于Django实现RBAC权限管理. 需求: 1.需要用户认证和角色权限管理,实现资源控制访问. 2.基于用户-角色-权限数据链,在多模