“持续创造,加速成长!这是我参加“掘金每日新计划·6月更新挑战”的第二天,点击查看活动详情”
可以说,对账是支付系统中最麻烦的事情。 对于每一笔交易,所有参与者的记录必须一致,不能有偏差。 对账系统的工作是发现有差异的记录,即对账; 然后手动或自动解决这些差异,即对账。
和解简介
如果您阅读了这篇文章,相信您对支付有所了解。 你应该熟悉和解,并且必须了解和解的目的。 一个简单的例子就是你和另一个人做生意,约定的结算是按月结算。 他每天都会向你购买商品。 你会记账,说我应该收多少钱,他也会记账,说他应该付多少钱。 ; 月底结账的时候,他会说我应该付给你一万; 然后给你一份详细的购买清单。 您可以将此列表与您自己的列表进行比较,看看它是否正确。 这就是和解。 只是支付系统的对账在涉及其他会计处理事项时相对复杂。
对账,我们一般称之为对账,支付系统的对账包括两个层面:
为什么需要和解?
正常支付情况下,双方(美国/第三方支付渠道)都会产生交易数据。 付款对账过程中,双方的数据都会保持一致,大家都没事,没什么可处理的。
但在某些异常情况下,可能会因为网络问题导致双方数据不一致。 付款对账可以主动发现这些交易。
对账可以说是支付系统的最后一道安全防线。 通过对账,我们可以及时纠正以往付款中的错误,防止订单错误累积,最终财务盘点成为账目混乱的情况。
付款对账系统
让我们从一张图片开始。 我们看一下整体对账系统架构图:
整个对账系统分为两个模块:
对账模块主要负责对账文件拉取、数据分析、数据验证、数据汇总等任务。 错误模块是协调模块的后处理任务。 对账模块的验证过程产生无法成功验证的数据。 这些数据将被推送到错误系统。 错误系统将根据规则生成错误订单,操作员可以在后台处理这些数据。
会计系统设计
就流程而言,对账系统实际上非常简单。
根据上面的流程,我们可以分为以下几个步骤:
平台数据采集
这个其实很简单,因为数据是从你自己公司的平台上获取的。 你可以随心所欲地得到它。 反正是属于一个公司的,也许是属于一个团队的,比如数据库、接口或者MQ。 啦,这取决于你喜欢什么
获取频道文件
银行、第三方支付公司、银联等基本都提供下载报表的功能。 但也有少数银行的工作做得不够好或做得太好。 他们只提供账单查询后台,不提供账单下载功能。
对于开发者来说,有几个陷阱:
看一下第三方支付明细:
在技术选择上,可以使用HTTP(S)来实现链接池和断点续传,FTP也可以使用Net API。 但无论是哪一种,都需要设置重试次数和链接超时时间。 设置重试次数和间隔时需要小心。 如果重试太频繁,很容易杀死服务器。 如果时间间隔太大,就会阻塞后续的处理步骤。 5 到 10 分钟是合适的重试间隔。
链接超时是指当服务器出现问题时,如果在规定的时间内无法获取到数据,就会自动断开连接。 这很容易被忽视。
频道账单数据解析器设计
这样的设计意味着什么?也就是说,我们可能从不同的渠道拉了很多单,但是每个渠道的字段命名不一样。 那么我们就需要根据我们的理解将这些字段映射到统一的字段上,这样我们就可以不加区分地进行处理。 有不同的渠道,但这需要根据具体情况具体分析。
调节数据的存储
核对账户时,必须考虑数据存储。 我觉得这个可以借助大数据平台来解决。
交易对账项目设计
交易对账错误处理
如果发现双方数据不一致,我们该如何处理? 当数据量不大时,只需记录并手动筛选即可。 但如果数据量很大,每天几千条,人工处理的成本就太高了。 对此没有统一的处理方法。 需要根据有问题的数据进行分析,然后自动处理。 交易记录对账的处理主要包括以下几种情况:
退款的对账处理主要包括以下几种情况:
商户清算及结算
商户清算结算是第三方支付系统的核心业务系统。 商户清结算业务流程可分为支付流程、对账流程、结算流程三个小业务系统,涉及商户、支付平台和银行(上游渠道)。 部分。
商户结算按照结算周期大致可以分为D+0和T+1两个结算周期。 当然,在此基础上又可以分为D+0、D+1、D+2、T+1、T+2。 等待; D代表自然日,T代表工作日; T+1是正式的结算流程,需要先对账,再结算。 无需第三方支付系统垫付资金。 第三方支付系统风险较小,需要商户支付手续。 费用较低。
为了满足商户的需求,第三方支付系统一般支持D+0结算方式,也称为实时支付。 先结算后对账,需要第三方支付系统垫付资金。 第三方支付系统风险较大,商户需支付手续费。 更高。
商户T+1结算
商户D+0结算(实时结算)
结束
好了,今天的分享就到这里。 感谢大家的阅读。 我是小六六。 我三天钓鱼,两天上网晒。