支付项目中的账户体系-程序员宅基地

提起第三方支付,大家都不陌生,会不由自主的想起支付宝,财付通和微信等,可以说在中国比较有名的第三方支付公司了。那么究竟什么是第三方支付呢?百度之后得到了一个结论:所谓第三方支付,就是一些和产品所在国家以及国外各大银行签约、并具备一定实力和信誉保障的第三方独立机构提供的交易支持平台。

一个简单的交易流程:买方选购商品后,使用第三方平台提供的账户进行货款支付,由第三方通知卖家货款到达、进行发货;买方检验物品后,就可以通知付款给卖家,第三方再将款项转至卖家账户。在这个流程中,涉及到第三方支付平台与各大银行之间的签约,商户与第三方支付平台的签约,而买方的资金从银行到第三方支付平台,然后由第三方支付平台到发货商户。因此,我们要充分理解第三方支付平台,得从用户,支付平台,商户,当然还有背后的银行和监管机构等进行全面分析,只有充分理解这些关系,才能对第三方支付的账户体系有充分的理解和掌握,从而充分理解支付中的资金流。

自从电子商务从零几年的快速发展,就不得不解决几个重要的流:信息流,资金流和物流,信息流一般是通过电子商务平台进行解决,包括用户信息,商品,商户和订单等,而资金流,即支付和结算等相关方面一般是通过第三方支付平台进行解决,第三方支付植入到电商平台中,帮助电商平台解决资金在用户和商户之间的流转,甚至在c2c交易中,第三方支付还起到了中介担保账户的作用;而物流,是解决物品如何送到用户手中的问题,各种物流公司或者电商自建物流网络等都是解决物流相关的解决方案。

那么现在想一想账户的问题?在第三方支付体系中肯定是要有账户系统的,它的账户系统是什么样子的呢?因为账户系统涉及到我目前不知道的会计学和经济学的内容,只能现在百度中科普一下:(以下有关账户的知识只是科普)

从会计学上来看,账户是根据会计科目设置的,具有一定格式和结构,用于分类反馈会计要素增加变动情况及其结果的载体。设置账户是会计核算的重要方法之一。同会计科目分类相对应,账户按其提供的信息详细程度和统驭关系不同分为总账账户和明细账户。

往往在设计IT账户系统中,总账户和明细账户是非常重要的概念。

而按照账户反映的经济内容不同可分为资产类账户,负债类账户,所有者权益类账户,成本费用类账户,损益类账户。会计要素主要有6个方面:资产,负债,所有者权益,利润,费用,收入。

账户是有结构和内容的,账户分为左方,右方两个方向,一个登记增加,另外一方登记减少。账户的内容包括了账户的名称,记录经济业务的日期,所依据记账凭证的编号,经济业务摘要,借贷金额和余额等。

而设计一个账户,从账户的结构和内容分析,一个账户需要记录账户变动的过程等,即借贷方向均需要进行记录,这里一般是通过账户流水来实现,即出入流水,同时,账户是记录会计要素变动结果的,因此需要根据变动的最终结果进行记录,即账户的余额。

总体来说,账户=账户余额+账户流水

在具体实现中,系统对账户流水的操作和余额的操作必须是一个事务,即入流水必然导致账户余额的增加,出流水必然导致余额的减少。

在账户的核算中,账户一般简化为“T”字账的形式,即包括账户名称,借方,贷方,发生额,借贷方余额和账户余额等。账户的内部对账是:在一个指定的核算周期内,保证余额和流水的一致性。(如果具体实现是通过db的事务机制,则DB本身就可以保证两者的一致性,如果不是,比如即流水,异步落地余额的情况,则需要按每天根据流水对余额进行调整或者纠正

账户的外部对账是:保证账户操作的流水跟外部系统相关依赖流水的一致性。(对账过程)

借贷复试记账法:所谓复试记账法就是针对发生的每项经济业务都要以相等金额在相互联系的两个或者两个以上有关账户中进行同时登记的记账方法。而借贷记账法是复试记账法的一种,它是以“资产=负债+所有者权益”为依据,以“借“和”贷”为记账符号,以“有借必有贷,借贷必须相等”为记账规则的一种复试记账方法。

借贷记账法的记账符号就是“借”和“贷”,用来反映经济业务增减变化的方向而已,本身没有特别的意义,在实际的操作中,我们把账户的左方规定记为借方,右方规范记为贷方,在任何一笔经济业务中,都必须同时登记相关账户的借方和贷方。

资产类账户,资产的增加登记账户的借方,资产的减少登记在账户的贷方,期末有余额,一般出现在借方。在一个会计期间,所有借方金额的累加为“借方本期发生额”,所有贷方金额的累加为“贷方本期发生额”。而资产账户的余额=借方期初余额+借方本期发生额-贷方本期发生额。

负债类账户的记账规则跟资产类相反,负债增加记为贷,负债减少记为借,期末如有余额,一般在贷方,表明期末有债务实有额,负债类账户的余额计算:贷方期末余额=贷方期初余额+贷方本期发生额-借方本期发生额。

所有者权益类账户的记账规则跟负债类账户一致:所有者权益增加记为贷,减少记为借。

企业在日常经营活动中会发生各种各样的耗费,这些耗费在会计学上称为成本费用,它们是收入的抵减项目,在抵销收入之前,可以视为一种资产,因此成本费用类账户的记账规则跟资产类一样:增加记为借,减少或者转销记为贷,一般借方记录的增加额都要通过贷方转出,所有此类账户在期末转销后无余额,如有余额,出现在借方。

企业取得的收入最终会使得所有者权益增加,因此收入类账户的记账方法跟所有者权益一致:增加记为贷,减少或者转销记为借,通常该账户期末无余额(因为期末收入都会转为所有者权益,如未分配利润等)

第三方支付机构涉及的账户类型是否非常多的,就像在开始讲的,主要有以下几类:

用户在各个银行开通的账户:这个概念非常好理解,我们每个人在相关银行开通的储蓄卡,存折,信用卡等等都是我们在银行开通的账户,在实际的支付中,用户银行账户是资金的输出方,通过银行系统,在用户授权的情况下把资金从用户的银行卡转移到第三方支付在银行开通的收款账户。

第三方支付公司在各个银行开通的账户:第三方支付的银行账户,如支付宝在招商银行设置的收款账户。那么第三方支付公司为啥需要在各个合作银行设置账户呢?其实道理非常简单,第三方支付公司本身毕竟不是银行,本身是无法直接接触和管理资金的,真正的资金流是通过银行系统进行的,用户通过网银或者快捷支付等支付后,用户的资金是少了,那么肯定有一个地方是多的。

第三方支付自有账户体系:类似银行账户有对公账户和对私账户,第三方支付公司也有针对商户的B账户和针对个人的C账户。第三方支付自有账户体系是独立第三方支付在银行申请的账户的,是自有的账户体系,完成资金在第三方支付体系的闭环和结算

个人账户,我们称为c账户比较简单,而商户账户由于涉及到结算和提现等操作,按照不同的资金类别设置不同账户的设计原则,商户账户一个商户号其实对应两个账户:b账户和c账户,b账户是商户结算账户,用于交易的收款等,商户本身无法直接操作,是第三方支付进行结算的账户,而商户c账户则是商户可以直接进行操作的账户,如可以进行提现,充值和支付等等。

各个银行在第三方支付公司设置的账户:该账户是一个总账账户,一般用于记录资金进入第三方账户体系或者资金逃出第三方账户体系的,它一般不记录余额,而只是记录流水,方便跟各个银行进行对账。

原来对资金流不是很清楚,通过学习不仅了解了资金流,而且还能弄明白不同的账户系统和记账规则,感觉收获颇丰呀!!

最后再附上一个简单的资金流和记账案例:

例如:用户通过银行卡快捷支付进行充值100元,其资金流为:资金从用户银行卡进入第三方支付在对应银行的银行账户,同时对对应的第三方c账户记入一笔充值入账。

第三方支付在银行的账户 100元 ;某用户在第三方支付的c账户 100元。

其实这步操作后,资金进入了第三方支付的自有账户体系中,使得自有账户体系的资金盘子增加了100元,在实际的设计中,为了能够高效跟银行进行对账,每个银行会在第三方支付设置一个对应的账户,我们成为银行的第三方支付账户,比如招行在支付宝的账户,用户通过招行卡支付充值后,除了银行系统本身的记账外,第三方支付会在该账户同步记录一笔流水,使得所有通过招行进入自有账户体系的资金流都可以通过这个流水看到,我们理解为这个账户是一个总账账户,各个用户的c账户是一个分账账户。

转载于:https://www.cnblogs.com/desire2048/p/5327051.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30781631/article/details/95583247

智能推荐

oracle 12c 集群安装后的检查_12c查看crs状态-程序员宅基地

文章浏览阅读1.6k次。安装配置gi、安装数据库软件、dbca建库见下:http://blog.csdn.net/kadwf123/article/details/784299611、检查集群节点及状态:[root@rac2 ~]# olsnodes -srac1 Activerac2 Activerac3 Activerac4 Active[root@rac2 ~]_12c查看crs状态

解决jupyter notebook无法找到虚拟环境的问题_jupyter没有pytorch环境-程序员宅基地

文章浏览阅读1.3w次,点赞45次,收藏99次。我个人用的是anaconda3的一个python集成环境,自带jupyter notebook,但在我打开jupyter notebook界面后,却找不到对应的虚拟环境,原来是jupyter notebook只是通用于下载anaconda时自带的环境,其他环境要想使用必须手动下载一些库:1.首先进入到自己创建的虚拟环境(pytorch是虚拟环境的名字)activate pytorch2.在该环境下下载这个库conda install ipykernelconda install nb__jupyter没有pytorch环境

国内安装scoop的保姆教程_scoop-cn-程序员宅基地

文章浏览阅读5.2k次,点赞19次,收藏28次。选择scoop纯属意外,也是无奈,因为电脑用户被锁了管理员权限,所有exe安装程序都无法安装,只可以用绿色软件,最后被我发现scoop,省去了到处下载XXX绿色版的烦恼,当然scoop里需要管理员权限的软件也跟我无缘了(譬如everything)。推荐添加dorado这个bucket镜像,里面很多中文软件,但是部分国外的软件下载地址在github,可能无法下载。以上两个是官方bucket的国内镜像,所有软件建议优先从这里下载。上面可以看到很多bucket以及软件数。如果官网登陆不了可以试一下以下方式。_scoop-cn

Element ui colorpicker在Vue中的使用_vue el-color-picker-程序员宅基地

文章浏览阅读4.5k次,点赞2次,收藏3次。首先要有一个color-picker组件 <el-color-picker v-model="headcolor"></el-color-picker>在data里面data() { return {headcolor: ’ #278add ’ //这里可以选择一个默认的颜色} }然后在你想要改变颜色的地方用v-bind绑定就好了,例如:这里的:sty..._vue el-color-picker

迅为iTOP-4412精英版之烧写内核移植后的镜像_exynos 4412 刷机-程序员宅基地

文章浏览阅读640次。基于芯片日益增长的问题,所以内核开发者们引入了新的方法,就是在内核中只保留函数,而数据则不包含,由用户(应用程序员)自己把数据按照规定的格式编写,并放在约定的地方,为了不占用过多的内存,还要求数据以根精简的方式编写。boot启动时,传参给内核,告诉内核设备树文件和kernel的位置,内核启动时根据地址去找到设备树文件,再利用专用的编译器去反编译dtb文件,将dtb还原成数据结构,以供驱动的函数去调用。firmware是三星的一个固件的设备信息,因为找不到固件,所以内核启动不成功。_exynos 4412 刷机

Linux系统配置jdk_linux配置jdk-程序员宅基地

文章浏览阅读2w次,点赞24次,收藏42次。Linux系统配置jdkLinux学习教程,Linux入门教程(超详细)_linux配置jdk

随便推点

matlab(4):特殊符号的输入_matlab微米怎么输入-程序员宅基地

文章浏览阅读3.3k次,点赞5次,收藏19次。xlabel('\delta');ylabel('AUC');具体符号的对照表参照下图:_matlab微米怎么输入

C语言程序设计-文件(打开与关闭、顺序、二进制读写)-程序员宅基地

文章浏览阅读119次。顺序读写指的是按照文件中数据的顺序进行读取或写入。对于文本文件,可以使用fgets、fputs、fscanf、fprintf等函数进行顺序读写。在C语言中,对文件的操作通常涉及文件的打开、读写以及关闭。文件的打开使用fopen函数,而关闭则使用fclose函数。在C语言中,可以使用fread和fwrite函数进行二进制读写。‍ Biaoge 于2024-03-09 23:51发布 阅读量:7 ️文章类型:【 C语言程序设计 】在C语言中,用于打开文件的函数是____,用于关闭文件的函数是____。

Touchdesigner自学笔记之三_touchdesigner怎么让一个模型跟着鼠标移动-程序员宅基地

文章浏览阅读3.4k次,点赞2次,收藏13次。跟随鼠标移动的粒子以grid(SOP)为partical(SOP)的资源模板,调整后连接【Geo组合+point spirit(MAT)】,在连接【feedback组合】适当调整。影响粒子动态的节点【metaball(SOP)+force(SOP)】添加mouse in(CHOP)鼠标位置到metaball的坐标,实现鼠标影响。..._touchdesigner怎么让一个模型跟着鼠标移动

【附源码】基于java的校园停车场管理系统的设计与实现61m0e9计算机毕设SSM_基于java技术的停车场管理系统实现与设计-程序员宅基地

文章浏览阅读178次。项目运行环境配置:Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。项目技术:Springboot + mybatis + Maven +mysql5.7或8.0+html+css+js等等组成,B/S模式 + Maven管理等等。环境需要1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。_基于java技术的停车场管理系统实现与设计

Android系统播放器MediaPlayer源码分析_android多媒体播放源码分析 时序图-程序员宅基地

文章浏览阅读3.5k次。前言对于MediaPlayer播放器的源码分析内容相对来说比较多,会从Java-&amp;amp;gt;Jni-&amp;amp;gt;C/C++慢慢分析,后面会慢慢更新。另外,博客只作为自己学习记录的一种方式,对于其他的不过多的评论。MediaPlayerDemopublic class MainActivity extends AppCompatActivity implements SurfaceHolder.Cal..._android多媒体播放源码分析 时序图

java 数据结构与算法 ——快速排序法-程序员宅基地

文章浏览阅读2.4k次,点赞41次,收藏13次。java 数据结构与算法 ——快速排序法_快速排序法