編輯導語:在日常生活中很多時候都會遇到交易的時候,比如日常的買單付款等等都是一種交易方式,交易的步驟比較簡單,但每一步都非常的嚴密謹慎;本文作者分享了關於交易的核心設計指南,我們一起來了解一下。

交易?······清晰記得那年冬天,一屋子人吵到不可開交,購物車讓訂單算應該付多少錢,訂單讓購物車自己算;我斜眼一看,交易系統同學藏在角落瑟瑟發抖,似乎在祈禱“這不關我的事!!!”
是啊,什麼是交易呢?整個體系都可以稱為交易,那什麼又是交易系統呢?交易核心呢?似乎我也迷茫了,為了要寫,那麼暫且這麼定義吧——“那個夾在訂單系統,支付系統和賬務系統之間的那個少年,他幫助訂單記錄了賬單,對各支付方式進行支付的加工和請求以及處理,並且將支付系統返回的收銀台返給用户端,以及將支付結果告知各方,最後再告訴賬務系統要記賬了…..。”
我想説“少年您辛苦了”,您還是那個青澀的少年,從來不曾改變!
先看個案例:
陳老師在外賣平台買了一個雞腿100塊,微信支付了60元,用了一張20的代金券,又使用了10元的積分,參與了分享立減10元的活動的權益。

陳老師啃了一口發現是個鴨腿,以實物不符為由將骨頭退還給商家,申請退貨,商家同意退貨,但是要罰40元精神損失費,所以只退了20到微信,代金券,積分,立減活動因為不退,所以陳老師最後只收到20元退款。

就像電影台詞裏經常説的“今晚碼頭交易”;我要跟你做一個交易;交易被終止了。
貌似交易不容易被定義,但也可以定義,以下來自百度詞條:
交易(Transactions)是指雙方以貨幣為媒介的價值的交換。
看起來交易是這件事情本身,但是我們今天講的交易可能是交易這件事情中的一個環節,交易處理。
02 什麼是交易系統交易系統就是在支付體系當中,對交易進行記錄和處理的應用系統,而交易我們在開頭已經將範圍界定在了對各支付方式進行加工處理的範疇了;所以交易的實體是賬單和支付流水,核心服務是對各支付方式的請求處理以及支付流水的記錄,並推動交易完成的核心模塊。

交易核心我們暫且定義為交易服務的“核心處理引擎”,就是交易核心的部分,對各支付方式的支付加工以及請求,驅動各環節促使交易的完成;以及逆向交易的完成。
04 交易在支付體系的位置和作用交易處在支付體系的核心位置,就像支付的中央樞紐一樣,推動着整個支付流程的進程;一方面接受訂單的賬單創建請求,另一方對各類支付方式進行加工處理,並完成賬務記賬推動。

一個訂單可以創建多條賬單,比如一個訂單分2次支付則創建2個賬單;一個賬單又可以進行組合支付,比如三方支付+卡券+活動優惠;分別針對不同支付方式請求各系統完成支付處理;最後基於各渠道的支付結果推動清結算完成費用計算清分以及賬務記錄。


- 用户購物車選好商品後去結算進行訂單的填寫;
- 提交訂單後完成訂單的生成;
- 用户去支付訂單完成賬單的創建和支付請求的封裝;
- 交易核心請求支付核心獲得收銀台鏈接返回給用户端;
- 用户完成支付;
- 交易核心完成各類支付方式的支付結果處理並通知訂單支付成功;
- 交易核心基於支付結果通知清結算進行相關計費和記賬;
訂單通知交易核心進行賬單的創建,我們以一對一為例,以開頭的例子為交易場景。
訂單信息如下:

生成如下賬單記錄:
08 賬單支付記錄賬單基於支付方式創建支付請求:

交易核心依託於支付記錄向各個系統發起支付請求:
- 微信支付:封裝支付參數請求支付系統進行付款,成功後通知交易核心。
- 代金券:封裝券核銷參數請求券系統鎖定優惠券,待微信支付成功後核銷優惠券。
- 積分和立減通優惠券。
交易發生逆向時要控制好處理的順序,比如部分退款,先退誰;先退微信還是先退券,這只是個策略問題。
10 支付流水的生成基於各系統返回的支付請求結果,更新支付流水狀態;並更新賬單為已支付;通知訂單用户已完成付款,訂單進入待發貨或者待服務流程。

將交易信息封裝成整體以後展示給各方使用。
12 交易驅動賬務交易系統基於支付結果通知賬務系統進行記賬:

後面講清結算的時候我們再接着細講賬務部分。
13 交易後台交易後要主要展示這幾部分信息,每部分就不細講了
感覺交易系統很薄,又感覺交易系統很厚;其實交易系統如果從後台能看到的部分看是很薄的,比不上其他系統那麼多頁面,那麼多操作。
但是從交易系統的處理服務上去看,是非常複雜的,很多看不到的處理引擎,也印證了那句話“低調的背後永遠是實力”。
希望各位讀者朋友可以基於這個架子,去深究交易系統更多不為人知的一面!
作者:陳曉光,一個會彈吉他會算命的產品經理老司機,微信公眾號:陳曉光
本文由 @陳天宇宙 原創發佈於人人都是產品經理。未經許可,禁止轉載
題圖來自Unsplash,基於CC0協議