当前位置:网站首页>Talk about the design and implementation logic of payment process
Talk about the design and implementation logic of payment process
2022-07-07 23:13:00 【Cicada smiled】
Novices are afraid of the business that veterans have a headache ;
One 、 Business background
Usually in the business system , Will more or less involve payment related functions ; For some inexperienced students , The most important thing is to face the logic of this kind of payment and settlement , Because of any details in the process , May cause reconciliation exceptions ;
After the error occurs , Then I want to repair the process , The time cost is high , It also involves the leveling of wrong data , Eventually, it is likely to lead to disorderly accounts and unclear results , Then manual intervention is needed ;

In the payment scenario , It not only involves many complex businesses , Settlement rules , Long process , Third party docking , Among them, many technical details are involved , such as : Business management 、 Asynchronous processing 、 Retry mechanism 、 Lock, etc ; Let's analyze the specific detail logic .
Two 、 Payment business
1、 Process disassembly
When facing complex business , The most basic ability is to understand the process into modules , Manage each module , Then consider how to connect the whole process , So as to form ideas and experience to solve problems ;

The figure below is a common decomposition of trading scenarios , It can be roughly divided into four modules :
- Book management : For users who have opened the payment function , Must have clear management information ; For example, available , frozen , Bills, etc ;
- Transaction flow : The running records of the whole fund management , Not limited to trading scenarios , And recharge , Withdrawal , Refund, etc ;
- Payment docking : Usually, the payment function in the process is realized by connecting with the third-party payment platform , So make a good record of requests and messages ;
- Order structure : For example, in e-commerce transactions , Order model management , Split order strategy, etc , Specifications of goods paid, etc ;
Here is just an analysis from a conventional transaction process , The actual detailed description will be much more complicated than the legend , Although the business details vary , But the treatment ideas are generally the same ; Then design the flow sequence diagram according to each module , Plan the connection and cooperation between nodes ;
2、 Process sequence
Through the design of sequence diagram , To analyze how each node should handle when connecting and cooperating , In payment business , It is usually divided into before payment 、 Payment docking 、 There are three core stages after payment :

- Before payment : When placing an order , Build order model , Check the inventory according to the splitting rules 、 Commodity status, etc , Then freeze the account funds , Generate transaction flow , At this time, the status is to be paid ;
- Payment docking : After the business model is initialized successfully before payment , Build a third-party payment docking request , Initiate payment process , And record the corresponding request actions and parameters , Waiting for notification of payment results ;
- After payment : According to the success of the payment results , Perform the corresponding business model status update , If the payment is successful, the transaction is recorded 、 Frozen funds 、 Order structure and inventory need to be updated ;
In fact, after having a clear understanding of the business and splitting , Then do a good job in the design of timing process , This has made a complex scene look much simpler , Then it is to design the data structure of each node ;
3、 The structure design
Based on the above business scenario analysis and disassembly , And the presentation of process sequence diagram , It is easy to output a structural design of basic dimensions , The following figure can be used as a reference :

- Book management : Three core dimensions , Amount of account , Available balance , Freezing amount ;
- Transaction records : Store users' transaction actions , However, multiple transaction details may be generated , A typical scenario is to place an order in a shopping cart ;
- Transaction details : Usually because the order is split , As a result, the transaction is split into multiple details , And then pay the funds to different businesses ;
- Payment docking : When requesting a third-party payment platform , Need to record request parameters , And the message of the third party callback notification ;
- Order records : There may be multiple split sub orders in an order , There are also many splitting strategies , Like the warehouse , merchants , Category, etc ;
- The order details : Manage the information of each sub order , Goods ordered 、 specifications 、 round turn 、 The unit price 、 Number 、 Amount, etc. ;
Even if you just look at the simple design above , Can feel the complexity of payment business , What's more, it will be superimposed after preferential rules such as red envelopes or full discounts , Its complexity can be imagined ;
Of course, if there is a clear development specification , In complex versions , All development must output business decomposition ideas , Timing and structure design , Code after unified Review , In this way, even complex businesses will have great quality assurance .
3、 ... and 、 Related business
The above list analyzes the process from the main logic of payment , In fact, the business involved is far more than those mentioned in the process , Take common e-commerce scenarios as an example , There is also commodity management in the transaction 、 Inventory management 、 Physical distribution management , Payment docking will also involve preferential rule embedding and so on ;
Commodity management

- Commodity subject : Maintain the information of each dimension of goods , And provide various specifications and options , And the basic pricing ladder , Build product details ;
- Warehouse management : After the order is split , You need to verify the storage information according to the commodity number , Carry out corresponding inventory freezing and warehouse delivery after payment ;
Coupon rules

- Coupon subject : In order to adapt to more business scenarios , There need to be many designs for preferential rules , Such as full reduction or discount ratio 、 Price ladder discount 、 Validity limit, etc ;
- Distribution rules : Support daily operational activities , Maintenance of user life cycle , And the transformation of channel flow , Provide the basic ability of user group marketing ;
Here is a brief description of the commodity and coupon business , Are closely related to the payment process , For example, the inventory is insufficient after splitting , This item needs to be removed ; The use strategy of coupons in payment , And how to handle the refund ;
Four 、 practice
Finally, from the perspective of technical implementation , Summarize some key issues in the payment process :
- business model : Have a clear understanding of the business , And can split the core nodes , Design the corresponding process sequence and data structure ;
- Business management : Commonly used in the transaction process TCC Transaction mechanism , namely Try( Preprocessing )、Confirm( confirm )、Cancel( Cancel ) Pattern ;
- Lock and retry : Send the message of successful payment after payment , Then update the business , It is usually necessary to lock the processed order number , Avoid data problems caused by message retry mechanism ;
- Capital settlement : Calculation of amount involved , The problem of accuracy loss cannot occur naturally , In a transaction, it must be ensured that each fund can be verified by reconciliation ;
- Process maintenance : The process itself is difficult to ensure that there are no errors , It needs to be developed , Provide a visual interface of the process , And support the mechanism of manual maintenance ;
Many complex business scenario management , Both need a long-term iterative process , But the premise needs to firmly grasp the core logic ; Understanding business is a process from complexity to simplicity , The realization of business is a process from shallow to deep , Analysis and understanding , To the ground , Then to exploration and innovation .
END
边栏推荐
- 微信论坛交流小程序系统毕业设计毕设(7)中期检查报告
- What is ADC sampling rate (Hz) and how to calculate it
- What does the model number of asemi rectifier bridge kbpc1510 represent
- Introduction to redis and jedis and redis things
- Locate to the bottom [easy to understand]
- ArcGIS:字段赋值_属性表字段计算器(Field Calculator)依据条件为字段赋值
- USB(十六)2022-04-28
- PMP project management exam pass Formula-1
- Wechat forum exchange applet system graduation design completion (1) development outline
- Brush question 5
猜你喜欢

微信论坛交流小程序系统毕业设计毕设(8)毕业设计论文模板

高级程序员必知必会,一文详解MySQL主从同步原理,推荐收藏

Lecture 30 linear algebra Lecture 5 eigenvalues and eigenvectors

ArcGIS: field assignment_ The attribute table field calculator assigns values to fields based on conditions

14、 Two methods of database export and import

Use JfreeChart to generate curves, histograms, pie charts, and distribution charts and display them to jsp-2

微信论坛交流小程序系统毕业设计毕设(4)开题报告

PMP project management exam pass Formula-1

Brush question 4

【微服务|SCG】gateway整合sentinel
随机推荐
微信论坛交流小程序系统毕业设计毕设(3)后台功能
Introduction to redis and jedis and redis things
Wechat forum exchange applet system graduation design completion (6) opening defense ppt
Transform XL translation
数字藏品加速出圈,MarsNFT助力多元化文旅经济!
高级程序员必知必会,一文详解MySQL主从同步原理,推荐收藏
网络安全-对操作系统进行信息查询
Line test - graphic reasoning - 1 - Chinese character class
知识点滴 - PCB制造工艺流程
海内外技术人们“看”音视频技术的未来
Wechat forum exchange applet system graduation design completion (1) development outline
网络安全-CSRF
Network security -burpsuit
消费品企业敏捷创新转型案例
DTC社群运营怎么做?
What is ADC sampling rate (Hz) and how to calculate it
Use JfreeChart to generate curves, histograms, pie charts, and distribution charts and display them to JSP-1
Circumvention Technology: Registry
Develop those things: go plus c.free to free memory, and what are the reasons for compilation errors?
[language programming] exe virus code example