成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

聊聊優雅的支付系統設計

開發 架構
很多復雜的業務場景管理,都需要一個長期的迭代過程,但是前提需要牢牢把握住核心的邏輯;對業務的認知是一個由繁入簡的過程,而業務的實現是一個由淺到深的過程,即分析與理解,到落地實現,再到探索與創新。

一、業務背景

在業務系統中,支付功能的實現尤為關鍵且挑戰重重,尤其是對經驗不足的開發者而言。支付結算邏輯的細微差錯可能導致對賬失誤,引發連鎖反應:錯誤排查耗時巨大,數據不平需調整,甚至可能演變成復雜的賬目混亂,最終不得不依賴人工逐一手動修正。

支付場景復雜,涵蓋多維度業務、結算規則及長流程,還需與第三方對接,技術上要求嚴格,涉及事務管理、異步處理、重試策略、并發控制等關鍵細節。接下來將深入探討這些技術要點。

圖片圖片

二、支付業務

1、流程拆解

圖片圖片

  • 賬面管理:對于開通支付功能的用戶,必須清晰的管理資金信息;比如可用,凍結,賬單等;
  • 交易流水:整個資金管理的流水記錄,不局限于交易場景,還有充值,提現,退款等;
  • 支付對接:通常流程中的支付功能都是對接第三方支付平臺來實現的,所以要做好請求和報文的記錄;
  • 訂單結構:比如在電商交易中,訂單模型的管理,拆單策略等,支付的商品規格等;

常規交易流程雖可概覽,實際操作細節更為繁復,各業務特異但處理邏輯相似。設計時,細化各模塊流程圖,確保節點銜接流暢,協同工作高效。

2、流程時序

通過時序圖的設計,來分析各個節點在銜接協作時應該如何處理,在支付業務中,通常分為支付前、支付對接、支付后三個核心階段:

圖片

  • 支付前:在商品下單時,構建訂單模型,根據拆單規則校驗庫存、商品狀態等,然后進行賬戶資金凍結,生成交易流水,此時的狀態都是待支付;
  • 支付對接:支付前業務模型初始化成功之后,構建第三方支付對接請求,發起付款流程,并記錄相應的請求動作和參數,等待支付結果的通知;
  • 支付后:根據支付結果的成功與否,執行相應的業務模型狀態更新,如果支付成功則交易記錄、凍結的資金、訂單結構與庫存等都需要做一系列更新;

理解并拆分業務后,精心設計時序流程,復雜場景將變得條理清晰。隨后,重點聚焦于定義各節點數據結構,進一步細化實現方案。

3、結構設計

基于上面的業務場景分析和拆解,以及流程時序圖的呈現,可以很容易輸出一份基礎維度的結構設計,下圖可以作為參考:

圖片圖片

  • 賬面管理:三個核心維度,賬戶金額,可用余額,凍結金額;
  • 交易記錄:存儲用戶的交易動作,但是可能會產生多個交易明細,典型的場景就是購物車下單;
  • 交易明細:通常因為訂單拆分,從而導致交易被拆分多條明細,進而將資金支付給不同商家;
  • 支付對接:請求第三方支付平臺時,需要記錄請求時參數,以及第三方回調通知的報文;
  • 訂單記錄:在一筆訂單中可能存在多個拆分的子單,拆分策略也很多,比如倉庫,商家,品類等;
  • 訂單明細:管理每筆子訂單的信息,下單的商品、規格、買賣雙方、單價、數量、金額等;

即使單看上面的簡單設計,都能感覺到支付業務的復雜性,更何況還會疊加紅包或滿減等優惠規則之后,其復雜程度可想而知;

當然如果有明確的開發規范,在復雜版本中,所有開發必須輸出業務的分解拆分思路,時序和結構設計,在統一評審之后再落地編碼,這樣即便是復雜的業務也會有極大的質量保證。

三、關聯業務

上面單從支付的主邏輯去分析流程,實際上涉及到的業務遠不止流程中提到的這些,以常見的電商場景為例,交易中還存在商品管理、庫存管理、物流管理,支付對接還會涉及優惠規則嵌入等等;

商品管理

圖片圖片

  • 商品主體:維護商品各個維度的信息,并提供各種規格選項,以及基礎的定價階梯,構建商品詳情描述;
  • 倉儲管理:訂單拆單之后,需要根據商品編號去校驗倉儲信息,進行相應的庫存凍結以及支付后的倉庫發貨;

優惠券規則

圖片圖片

  • 優惠券主體:為了適配更多的業務場景,需要對優惠規則有諸多的設計,比如滿減或折扣比例、按價格階梯優惠、有效期限制等;
  • 發放規則:支撐日常的運營活動,用戶生命周期的維護,以及渠道流量的轉化,提供用戶群營銷的基礎能力;

這里簡述的商品和優惠券業務,都是與支付流程有緊密的聯系,比如拆單后庫存不足,需要移除該商品;優惠券在支付中的使用策略,以及退款時的處理方式等;

四、實踐總結

最后從技術實現的角度,總結一下支付流程中的一些關鍵問題:

  • 業務模型:對業務有清晰的理解,并能拆分出核心的節點,設計出相應的流程時序和數據結構;
  • 事務管理:交易流程中常用TCC事務機制,即Try(預處理)、Confirm(確認)、Cancel(取消)模式;
  • 加鎖與重試:支付完成后發出支付成功的消息,而后進行業務更新,通常需要對處理的訂單號加鎖,避免消息重試機制引發數據問題;
  • 資金結算:涉及金額的計算,自然要求不能出現精度損失的問題,在一次交易中必須保證每筆資金可以通過對賬核驗;
  • 流程維護:流程本身是很難保證不出現錯誤的,需要在開發的時候,提供流程的可視化界面,并且支持手動維護的機制;

很多復雜的業務場景管理,都需要一個長期的迭代過程,但是前提需要牢牢把握住核心的邏輯;對業務的認知是一個由繁入簡的過程,而業務的實現是一個由淺到深的過程,即分析與理解,到落地實現,再到探索與創新。

責任編輯:武曉燕 來源: 一安未來
相關推薦

2023-11-30 07:40:05

URLCMS

2022-04-11 08:17:07

JVMJava進程

2024-06-27 12:26:32

2024-04-24 12:34:08

Spring事務編程

2021-10-26 13:55:53

搞定系統設計

2024-10-14 08:09:08

2024-10-29 11:19:23

點贊系統同步

2024-07-12 08:28:09

聊天系統架構

2017-02-17 13:54:01

支付系統處理設計

2024-09-13 08:18:10

2017-02-28 17:48:29

支付支付路由

2024-09-10 08:06:41

2021-12-28 19:05:41

路由服務治理

2023-05-26 08:24:17

短信渠道模型

2025-05-09 09:05:00

Spring框架設計模式

2022-05-13 08:48:50

React組件TypeScrip

2023-12-21 10:26:30

??Prettier

2024-01-31 08:41:43

異步設計項目

2023-10-30 10:17:02

Go編程語言

2024-10-06 12:56:36

Golang策略設計模式
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美精品久久久久 | 91一区二区三区 | 91久久久久久久久 | 国产中文一区二区三区 | av黄色免费在线观看 | 新超碰97 | 黑人巨大精品 | 免费观看一级毛片 | 一道本不卡 | av网站在线免费观看 | 午夜精品福利视频 | 精品乱码一区二区三四区 | 国产中文字幕在线观看 | 狠狠干天天干 | av在线免费观看不卡 | 日韩二区| 成人高清视频在线观看 | 国产一区二区a | 精品欧美黑人一区二区三区 | 日韩在线一区二区三区 | 日日日干干干 | 在线国产视频 | 男女精品网站 | 日韩免费av| 国产精品久久久久久久久免费樱桃 | 久久一区二区免费视频 | 国产精品美女www爽爽爽视频 | 大吊一区二区 | 欧美1级 | 99久久精品国产麻豆演员表 | 亚洲欧美国产毛片在线 | 日日夜精品视频 | 亚洲www啪成人一区二区 | 久久91| 欧美精品v国产精品v日韩精品 | 欧美一区二区三区在线观看视频 | 作爱视频免费观看 | 野狼在线社区2017入口 | 国产一区二区三区免费 | 性高湖久久久久久久久 | 亚洲国产二区 |