这是一个可能对您有用的社区。
一对一交流/面试手册/简历优化/求职答疑,欢迎加入“”知识星球。以下是星球提供的部分资料:
这是一个开源项目,可能对你有用
国内十几万星星的开源项目。前端包含管理后端+微信小程序,后端支持单体和微服务架构。
功能包括RBAC权限、SaaS多租户、数据权限、商城、支付、工作流、大屏报表、微信公众号、CRM等等:
【国内首批】支持JDK 21+3.2.2、JDK 8+Boot 2.7.18双版本
新手害怕的业务,老手头疼的业务。
通常在业务系统中,或多或少都会涉及到支付相关的功能,对于一些经验不足的同学来说,最有压力的就是面对这样的支付结算逻辑,因为流程中任何一个细节都有可能造成对账异常。
错误发生后,需要花费大量的时间来修复,而且还涉及到对错误数据的核对问题,最终可能导致账目混乱,进而需要人工干预。
在支付场景中,不仅涉及到很多复杂的业务、结算规则、较长的流程、第三方对接等,还涉及到很多技术细节,比如:事务管理、异步处理、重试机制、锁定等;下面我们来分析一下具体的详细逻辑。
基于Boot+Plus+Vue&的后端管理系统+用户小程序,支持RBAC动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能
1. 流程拆解
面对复杂的业务,最基本的能力就是懂得如何将流程拆分成模块,管理好每个模块,然后再考虑如何将整个流程串联起来,从而形成解决问题的思路和经验;
下图是常见的交易场景分解,大致可以分为四个模块:

这里我们只从一个常规的交易流程来分析,实际详细描述会比图示复杂很多,虽然业务细节不同,但处理思路大体一致。然后根据各个模块设计流程时序图,规划节点间的衔接与协作。
2. 工艺顺序
通过时序图的设计,我们分析各个节点应该如何处理连接和协作。在支付业务中,通常分为支付前、支付连接、支付后三个核心阶段:
其实对业务有了清晰的理解和拆分,再设计好时序流程之后,一个复杂的场景就会显得简单很多,接下来就是设计各个节点的数据结构了。
3.结构设计
基于以上业务场景分析分解,以及流程序列图的呈现,很容易就能输出一个基本的维度结构设计,下图可以作为参考:
即便只看上面简单的设计,我们也能感受到支付业务的复杂性,更不用说还增加了红包或者折扣等奖励规则,其复杂程度可想而知;
当然,如果有明确的开发规范,在复杂的版本中,所有开发人员都要输出业务的分解拆分思路、时序、结构设计,统一评审后再实现编码。这样,再复杂的业务也会有很大的质量保证。
基于++Vue&++用户小程序的后端管理系统,支持RBAC动态权限、多租户、数据权限、工作流、三方登录、支付、短信、商城等功能
以上流程是从支付的主要逻辑来分析的,其实涉及到的业务远不止流程里提到的这些,以常见的电商场景为例,交易中还有商品管理、库存管理、物流管理等,支付对接还涉及到优惠规则的嵌入等等。
这里简单介绍的商品和优惠券业务都和支付流程息息相关,比如分单后库存不足需要移除商品;支付中使用优惠券的策略,退款如何处理等等。
最后从技术实现的角度我们来总结一下支付过程中的几个关键问题:
很多复杂业务场景的管理需要一个长期迭代的过程,但前提是要牢牢把握核心逻辑;对业务的理解是一个由繁到简的过程,业务的实施也是一个由浅入深的过程,即分析理解,到实施,再到探索创新。