一、主题分享

支付渠道对账有两大块,信息流和资金流,主要分享一下信息流。一般流程可以分为四个部分:渠道对账单下载、本地交易记录准备、轧帐、平账(对差异的处理)。

一、渠道对账单下载

当前的渠道主要有支付宝、微信、京东支付、银联等; 有几个需要注意的点:

  1. 渠道对账单的格式不一致;
  2. 下载的时间不一致;
  3. 有可能会出现少文件的情况;

基于这几点,需要做的主要事情有对账单的处理,统一格式,方便后续轧帐;记录不同渠道读取账单的时间,如果在特定时间点没有拿到渠道文件或文件数量缺失,采用重试机制。

二、本地交易记录准备

对账一定是双方以上,在渠道对账单准备好之后,我们也要把本地的交易记录准备好;主要需要注意的点有:

  1. 本地交易记录主要包括消费、退款、充值、体现等;
  2. 在面对大数据量时,如何能降低对账时间(需要考虑使用者对界面刷新时间的接受度和系统存储的合理性)

三、轧帐

主要分为两个部分:自身系统、本地与渠道之间。 为什么要自身系统对账?自身系统的轧帐主要为系统业务订单与支付单之间的对账,取对平的单据进行下一步对账,主要是为了保证内部数据的一致性。 主要的一个大坑:对账时间窗。 众所周知,支付是需要时间的,这就会遇到跨对账周 期的情况;对于此,我们可以根据自己公司的情况,合理设置时间窗; 比如微信每日对账区间为第一天0点到第二天0点,面对小金额支付多的情况,可设置10-30min的时间窗,如差异的账单的成单时间 在23:30-0:00间,则默认为跨日交易产生的差异,不在当天对账差异文件中显示;

资金对账,目前只接触了一点,不足以分享给大家,所以就到这里了。

这就我的今天的分享,谢谢大家的聆听!


二、Q&A

Q1: 一般三方只提供生产环境的账户,比如支付宝,商户在开发、测试、生产环境配置的商户号都是一样的,对支付宝来说,都是生产环境。那么如何处理非生产环境的长款问题? A1. 对于测试归收入即可,或者直接退款。
A2. 打标记

Q2: 对账主要用什么技术?
A1: spring batch;现在java都用BigDecimal来定义金额单位;或者转整型分了。

Q3: 统一账户是个什么概念?
A1: 一个集团下会经营不同的业务,考虑到经济、社会等风险,可能会成立不同的子公司,不同子公司下挂有不同的业务;这样的话,不同的业务的收款账户可以是不同的; 展现给用户的就是,我在A地点买了一件商品,付款给了A公司;在B地点卖了一件商品,付款给了B公司;虽然A地点和B地点同属于一个集团,但付款给了不同公司,收款进了不同账户; 所以,我们做了一件事情是,统一收款至一个公司,再由此公司进行内部分账;这样对于顾客来说,我不管在哪里购物,付款给了同一个公司,收款进了同一个账户。


本文档来自支付产品技术交流群的聊天记录整理,由志愿者整理并发布到本网站。如需要及时收到来自支付产品技术交流群的最新消息,请扫码关注“凤凰牌老熊”的微信公众号。 本群面向支付行业的有经验(2年以上)的产品经理、软件工程师、架构师等,提供交流平台。如想加入本群,请在本文评论中留言(不公开),说明所在的公司、负责的工作、入群分享的主题和时间。