偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

聊聊優(yōu)雅的支付系統(tǒng)設(shè)計

開發(fā) 架構(gòu)
很多復(fù)雜的業(yè)務(wù)場景管理,都需要一個長期的迭代過程,但是前提需要牢牢把握住核心的邏輯;對業(yè)務(wù)的認(rèn)知是一個由繁入簡的過程,而業(yè)務(wù)的實現(xiàn)是一個由淺到深的過程,即分析與理解,到落地實現(xiàn),再到探索與創(chuàng)新。

一、業(yè)務(wù)背景

在業(yè)務(wù)系統(tǒng)中,支付功能的實現(xiàn)尤為關(guān)鍵且挑戰(zhàn)重重,尤其是對經(jīng)驗不足的開發(fā)者而言。支付結(jié)算邏輯的細(xì)微差錯可能導(dǎo)致對賬失誤,引發(fā)連鎖反應(yīng):錯誤排查耗時巨大,數(shù)據(jù)不平需調(diào)整,甚至可能演變成復(fù)雜的賬目混亂,最終不得不依賴人工逐一手動修正。

支付場景復(fù)雜,涵蓋多維度業(yè)務(wù)、結(jié)算規(guī)則及長流程,還需與第三方對接,技術(shù)上要求嚴(yán)格,涉及事務(wù)管理、異步處理、重試策略、并發(fā)控制等關(guān)鍵細(xì)節(jié)。接下來將深入探討這些技術(shù)要點(diǎn)。

圖片圖片

二、支付業(yè)務(wù)

1、流程拆解

圖片圖片

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

常規(guī)交易流程雖可概覽,實際操作細(xì)節(jié)更為繁復(fù),各業(yè)務(wù)特異但處理邏輯相似。設(shè)計時,細(xì)化各模塊流程圖,確保節(jié)點(diǎn)銜接流暢,協(xié)同工作高效。

2、流程時序

通過時序圖的設(shè)計,來分析各個節(jié)點(diǎn)在銜接協(xié)作時應(yīng)該如何處理,在支付業(yè)務(wù)中,通常分為支付前、支付對接、支付后三個核心階段:

圖片

  • 支付前:在商品下單時,構(gòu)建訂單模型,根據(jù)拆單規(guī)則校驗庫存、商品狀態(tài)等,然后進(jìn)行賬戶資金凍結(jié),生成交易流水,此時的狀態(tài)都是待支付;
  • 支付對接:支付前業(yè)務(wù)模型初始化成功之后,構(gòu)建第三方支付對接請求,發(fā)起付款流程,并記錄相應(yīng)的請求動作和參數(shù),等待支付結(jié)果的通知;
  • 支付后:根據(jù)支付結(jié)果的成功與否,執(zhí)行相應(yīng)的業(yè)務(wù)模型狀態(tài)更新,如果支付成功則交易記錄、凍結(jié)的資金、訂單結(jié)構(gòu)與庫存等都需要做一系列更新;

理解并拆分業(yè)務(wù)后,精心設(shè)計時序流程,復(fù)雜場景將變得條理清晰。隨后,重點(diǎn)聚焦于定義各節(jié)點(diǎn)數(shù)據(jù)結(jié)構(gòu),進(jìn)一步細(xì)化實現(xiàn)方案。

3、結(jié)構(gòu)設(shè)計

基于上面的業(yè)務(wù)場景分析和拆解,以及流程時序圖的呈現(xiàn),可以很容易輸出一份基礎(chǔ)維度的結(jié)構(gòu)設(shè)計,下圖可以作為參考:

圖片圖片

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

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

當(dāng)然如果有明確的開發(fā)規(guī)范,在復(fù)雜版本中,所有開發(fā)必須輸出業(yè)務(wù)的分解拆分思路,時序和結(jié)構(gòu)設(shè)計,在統(tǒng)一評審之后再落地編碼,這樣即便是復(fù)雜的業(yè)務(wù)也會有極大的質(zhì)量保證。

三、關(guān)聯(lián)業(yè)務(wù)

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

商品管理

圖片圖片

  • 商品主體:維護(hù)商品各個維度的信息,并提供各種規(guī)格選項,以及基礎(chǔ)的定價階梯,構(gòu)建商品詳情描述;
  • 倉儲管理:訂單拆單之后,需要根據(jù)商品編號去校驗倉儲信息,進(jìn)行相應(yīng)的庫存凍結(jié)以及支付后的倉庫發(fā)貨;

優(yōu)惠券規(guī)則

圖片圖片

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

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

四、實踐總結(jié)

最后從技術(shù)實現(xiàn)的角度,總結(jié)一下支付流程中的一些關(guān)鍵問題:

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

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

責(zé)任編輯:武曉燕 來源: 一安未來
相關(guān)推薦

2023-11-30 07:40:05

URLCMS

2022-04-11 08:17:07

JVMJava進(jìn)程

2024-04-24 12:34:08

Spring事務(wù)編程

2024-06-27 12:26:32

2025-06-30 07:10:00

JavaJVM線程

2021-10-26 13:55:53

搞定系統(tǒng)設(shè)計

2024-10-14 08:09:08

2024-10-29 11:19:23

點(diǎn)贊系統(tǒng)同步

2024-07-12 08:28:09

聊天系統(tǒng)架構(gòu)

2017-02-17 13:54:01

支付系統(tǒng)處理設(shè)計

2024-09-13 08:18:10

2017-02-28 17:48:29

支付支付路由

2024-09-10 08:06:41

2021-12-28 19:05:41

路由服務(wù)治理

2023-05-26 08:24:17

短信渠道模型

2025-05-09 09:05:00

Spring框架設(shè)計模式

2023-12-21 10:26:30

??Prettier

2022-05-13 08:48:50

React組件TypeScrip

2024-01-31 08:41:43

異步設(shè)計項目

2023-10-30 10:17:02

Go編程語言
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號