面向连锁零售与服务型企业的一套收款中台。这类企业通常同时有线下门店收款、线上小程序下单、对公转账三种进账方式,钱分散在微信、支付宝、银联、银行和现金五个口袋里,财务每天手工比对流水,月底对账要三个人做三天,差异还查不清是谁的责任。
系统把"收—记—对—开—报"五个环节串成一条线:收款入口统一、资金流水自动入账、多渠道账单自动对账、发票与退款闭环、经营报表实时可查。
核心业务流程:商户与门店建档 → 生成收款单(按订单、按合同账单或临时建单)→ 选择渠道发起支付(JSAPI、扫码、H5、APP、银行代扣、线下现金登记)→ 接收支付结果回调 → 自动核销对应应收 → 生成记账凭证 → 日终自动对账 → 差异生成工单人工处理 → 开票或退款。
· 收款单管理:手工建单、开放接口建单、Excel 批量导入、账单分期、逾期催收提醒
· 支付渠道网关:微信支付、支付宝、银联云闪付、银行代扣、线下刷卡与现金登记
· 应收与核销:按客户、合同、订单多维度核销,支持部分收款、预收转应收、跨期核销
· 对账中心:自动拉取渠道账单、逐笔匹配、长款短款识别、差异工单流转与闭环
· 退款与冲正:原路退回、部分退款、超时自动关单、差错冲正留痕
· 发票管理:开票申请、税号校验、电子发票对接、红冲处理
· 报表中心:收款日报月报、渠道占比、应收账龄分析、门店与业务员业绩
· 权限与审计:多组织多门店数据隔离、金额类操作双人复核、全量操作留痕
使用角色分为财务专员、财务主管、门店店长、收银员和系统管理员,每个角色只看到自己权限范围内的单据和金额。
合规方面,每一笔收款都能追溯到原始单据、渠道流水号和操作人,记账凭证可批量导出,满足内部审计和外部税务核查的要求;退款与冲正必须留痕并经复核,避免事后无法解释资金流向。
技术栈:后端 Java 17 + Spring Boot 3 + Spring Cloud Alibaba(Nacos 做注册与配置中心、Gateway 做统一网关),MySQL 8 主从读写分离,Redis 7 做缓存与分布式锁,RocketMQ 承载支付回调与对账消息,XXL-Job 调度对账与报表任务;前端 Vue 3 + Vite + Element Plus + ECharts;部署采用 Docker + Kubernetes,按服务独立扩缩容。
系统分四层:接入层提供开放 API,做签名验签、限流与防重放;业务层按领域拆成收款、支付、核销、对账、开票五个服务,各自独立库;渠道适配层用策略模式抽象统一的 PaymentChannel 接口,新增一个支付渠道只需实现一个类并配置参数,不动主流程;数据层负责流水、账单与报表存储。
几个关键设计:
支付幂等与状态机。支付单以"业务单号 + 渠道流水号"建唯一索引,状态机固定为待支付、支付中、成功、失败、已退款,所有流转做单向校验,重复回调直接返回成功,不重复入账。
异步通知的可靠投递。渠道回调先落库再回 ACK,业务处理投递到 MQ 异步执行,消费失败进重试队列,超过次数进死信由人工介入;同时用定时任务主动查单补偿,支付中状态超过 5 分钟触发查询,按指数退避拉长间隔,解决回调丢失问题。
资金一致性。收款、核销、凭证三步在同一事务内写本地消息表,再由 MQ 投递下游,保证最终一致;金额统一用 long 存"分",全链路不出现浮点数。
对账引擎。T+1 通过 SFTP 与渠道 API 拉取账单文件,按渠道流水号、金额、时间窗做三方匹配,用布隆过滤器先做存在性预判,再按商户分片并行处理,10 万笔账单 3 分钟内跑完。差异自动分为四类:我方有渠道无、渠道有我方无、金额不符、状态不符,分别生成差异工单并指派到人。
权限与安全。
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!

下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态
评论