在電商業務中,商品的交付都是圍繞訂單號來進行的。交易的基礎流程包括建立訂單、支付訂單、交付訂單、簽收訂單。code
基於訂單,咱們能夠作不少事情。好比,創建一條交易的數據總線,按期覈對商品的交付狀況,以此保證數據的最終一致性。再好比,經過訂單號,將各個子系統中的請求串起來,扮演traceId
的做用,等等。電商
客戶端要購買商品,存在兩種程序上的交互方式:後臺
第一種、基礎
第二種、請求
兩種方式的本質區別在於:交易的過程,客戶端是否須要感知訂單號的存在程序
拿蘋果手機的IAP
支付舉例,通俗的講,就是在APP
內支付。簡單介紹一下蘋果支付的基礎流程:支付
蘋果服務
後臺建立商品,建立的商品須要和咱們服務端
實際的商品作對應。客戶端
和蘋果服務
交互,完成用戶扣款客戶端
獲取蘋果服務
返回的扣費憑據,提交給咱們的服務端
咱們的服務端
請求蘋果服務
,驗證憑據的有效性,決定是否給用戶交付商品在這個流程中,訂單號應該在步驟2以前建立,仍是在步驟4建立呢?若是在步驟4建立,在用戶行爲上,就缺失了用戶嘗試支付的訂單數據,數據表中也只存在用戶成功發起支付的訂單。數據