当前位置:网站首页>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
边栏推荐
- 【刷题记录】3. 无重复字符的最长子串
- Use JfreeChart to generate curves, histograms, pie charts, and distribution charts and display them to JSP-1
- Classification and prediction of heartbeat signal
- The author of LinkedList said he didn't use LinkedList himself
- There is another problem just online... Warm
- Byte hexadecimal binary understanding
- Anta DTC | Anta transformation, building a growth flywheel that is not only FILA
- ./ setup. Insufficient sh permission
- ArcGIS:矢量要素相同字段属性融合的两种方法
- 2021-01-12
猜你喜欢
iNFTnews | Web5 vs Web3:未来是一个过程,而不是目的地
Introduction to redis and jedis and redis things
线上面试,该如何更好的表现自己?这样做,提高50%通过率~
The wonderful relationship between message queue and express cabinet
DTC社群运营怎么做?
It's no exaggeration to say that this is the most user-friendly basic tutorial of pytest I've ever seen
微信论坛交流小程序系统毕业设计毕设(2)小程序功能
Cascade-LSTM: A Tree-Structured Neural Classifier for Detecting Misinformation Cascades-KDD2020
Wechat forum exchange applet system graduation design completion (8) graduation design thesis template
I wish you all the best and the year of the tiger
随机推荐
Quelles sont les similitudes et les différences entre les communautés intelligentes et les villes intelligentes?
肠道里的微生物和皮肤上的一样吗?
微信论坛交流小程序系统毕业设计毕设(2)小程序功能
Cases of agile innovation and transformation of consumer goods enterprises
智慧社區和智慧城市之間有什麼异同
Introduction to redis and jedis and redis things
oc 可变參数传递
【微服务|SCG】gateway整合sentinel
Wechat forum exchange applet system graduation design completion (4) opening report
Redhat下安装fedora
PMP项目管理考试过关口诀-1
Txt file virus
成年人只有一份主业是要付出代价的,被人事劝退后,我哭了一整晚
今日创见|企业促进创新的5大关键要素
为什么市场需要低代码?
Lecture 30 linear algebra Lecture 5 eigenvalues and eigenvectors
DTC社群运营怎么做?
GEE(三):计算两个波段间的相关系数与相应的p值
Locate to the bottom [easy to understand]
Comparison of various development methods of applets - cross end? Low code? Native? Or cloud development?