跟蹤和保障用戶交易后锚沸,提供方執(zhí)行合同跟蹤執(zhí)行系統(tǒng)笔时。
履約系統(tǒng)會(huì)保存一份更交易訂單信息
1. B2C 履約系統(tǒng)和交易系統(tǒng)關(guān)聯(lián)
針對(duì)實(shí)物商品颓屑,平臺(tái)保存有訂單信息,無需推送訂單信息(時(shí)效性要求不高)识颊,由履約系統(tǒng)提供接口崭庸,由外部調(diào)用接口完善填寫履約,履約系統(tǒng)進(jìn)行跟蹤
訂單流程狀態(tài):
訂單已創(chuàng)建
訂單已下單(貨到付款)
訂單已支付(在線支付)谊囚,風(fēng)控訂單可以重復(fù)支付
訂單被風(fēng)控
訂單完成
訂單退款
訂單關(guān)閉
--
退款單流程類型:
退款單創(chuàng)建
退款單處理
退款單拒絕
退款單取消
退款單同意
退款單確認(rèn)商品
退款定單已發(fā)貨
--
退款單類型:
僅退款
退貨退款
取消訂單
退差價(jià)
-------
表:
訂單主表
訂單發(fā)票表
訂單商品表
訂單收貨人信息表
訂單物流信息表
訂單支付信息表
退款單表
退款操作流程表
退款商品表
訂單擴(kuò)展屬性表
風(fēng)控表
----
訂單流轉(zhuǎn):
在線支付=創(chuàng)建訂單->付款->發(fā)貨(反調(diào))
:(付款狀態(tài)后,商戶點(diǎn)擊發(fā)貨接口狀態(tài)變更為發(fā)貨[商品沒有全部退款])
:添加物流信息并且發(fā)貨接口(線上物流倉(cāng)庫(kù)發(fā)貨)
:內(nèi)部發(fā)貨(創(chuàng)建物流單执赡、發(fā)貨镰踏、跟蹤物流進(jìn)度)- 由平臺(tái)倉(cāng)庫(kù)發(fā)貨
:外部發(fā)貨(記錄落庫(kù)、跟蹤物流進(jìn)度)- 由商戶發(fā)貨沙合,有外部物流對(duì)接系統(tǒng)對(duì)接
:商家主動(dòng)調(diào)用發(fā)貨并上傳物流號(hào)接口(調(diào)用倉(cāng)庫(kù)發(fā)貨系統(tǒng)奠伪,需要回獲取物流公司/商戶信息)
:更新物流狀態(tài)
貨到付款=創(chuàng)建訂單->下單
訂單未發(fā)貨=取消訂單:用戶取消
運(yùn)營(yíng)取消訂單=反調(diào)交易中心同步取消訂單數(shù)據(jù)
訂單已發(fā)貨=貨到付款:未付款關(guān)閉
訂單已發(fā)貨=在線支付:商家關(guān)單->調(diào)用交易中心關(guān)單->記錄訂單日志
(由商戶直接發(fā)起的退款需要反調(diào)交易中心,這是一種運(yùn)營(yíng)手段),
訂單已發(fā)貨=在線支付:用戶關(guān)單->記錄訂單日志
----
退款單流轉(zhuǎn):
創(chuàng)建退款單->退款單處理(反調(diào))->退款單取消
:退款單針對(duì)某一特定商戶(nabaite)需要額外推送信息
:提供接受處理接口(商戶/運(yùn)營(yíng)處理非自動(dòng)绊率,僅支持退貨退款并且新建退款單)
創(chuàng)建退款單->退款單處理(反調(diào))->退款單拒絕(反調(diào)):提供接受處理接口(商戶/運(yùn)營(yíng)處理非自動(dòng))
創(chuàng)建退款單->退款單取消
創(chuàng)建退款單->退款單拒絕(反調(diào))
創(chuàng)建退款單->退款單同意(反調(diào)):提供接受處理接口(商戶/運(yùn)營(yíng)處理非自動(dòng))谨敛,ONLINE途徑
退款定單待收貨->退款單拒絕(反調(diào)):代收貨的前一個(gè)狀態(tài)必須是退款單處理中
退款單確認(rèn)商品->退款單同意(反調(diào))
:提供接受處理接口(商戶/運(yùn)營(yíng)處理非自動(dòng),支持退貨退款&&(待收貨退款單||待處理退款單))
退款單確認(rèn)商品->退款單拒絕(反調(diào))
通過MQ獲取訂單信息滤否,選擇 外部發(fā)貨訂單/B2C服務(wù) 才需要執(zhí)行履約脸狸。
履約系統(tǒng)需要保存一份訂單的快照持久化數(shù)據(jù)庫(kù)(此快照需要變更數(shù)據(jù)),作為履約跟蹤信息藐俺。
通過監(jiān)控?cái)?shù)據(jù)庫(kù) binlog 日志指定庫(kù)表炊甲,當(dāng)指定的信息變更動(dòng)作發(fā)生的時(shí)候,會(huì)通過MQ發(fā)出變更信息通知欲芹,內(nèi)部eventBus執(zhí)行指定履約動(dòng)作卿啡。
1.1. 下單信息履約記錄流程
-
訂單創(chuàng)建 不做履約業(yè)務(wù)處理。履約持久化記錄(created)
訂單主表菱父、訂單收貨人信息表颈娜、訂單商品表、訂單發(fā)表信息表浙宜、訂單支付信息表 -
訂單下單 (貨到付款支付)的訂單做履約處理官辽,后續(xù)都是實(shí)物交易,履約不再跟蹤梆奈。變更持久化記錄為(ordered)
訂單主表(支付狀態(tài)/收貨狀態(tài))野崇、訂單支付表(存在現(xiàn)金支付) -
訂單支付 (在線支付)的訂單做履約業(yè)務(wù)處理。需要判斷訂單是否正在風(fēng)控審核中亩钟。變更持久化記錄為(paid)
訂單主表(支付狀態(tài)/收貨狀態(tài))乓梨、訂單支付表(存在現(xiàn)金支付) -
訂單風(fēng)控中 變更持久化記錄為(被風(fēng)控)
風(fēng)控表(添加風(fēng)控訂單信息) -
解除風(fēng)控訂單 對(duì)外提供審核風(fēng)控信息接口,變更持久化記錄為(風(fēng)控訂單通過)
風(fēng)控表(修改風(fēng)控狀態(tài))清酥,訂單主表(已支付狀態(tài)) -
訂單已發(fā)貨 在修改為發(fā)貨狀態(tài)的時(shí)候扶镀,會(huì)拒絕全部未受理的退款單
調(diào)用交易中心拒絕退款單、訂單退款表(拒絕狀態(tài))焰轻、訂單退款流程(新建) -
訂單退款 最后完成退款的記錄臭觉,變更持久化記錄為(訂單退款)
訂單主表(訂單退款) -
關(guān)閉訂單 貨到付款/在線支付,貨到付款直接取消訂單(訂單已取消辱志、退款中/已退款等無需繼續(xù)操作)
訂單主表(訂單取消) -
訂單完成
訂單主表(訂單完成)
1.2. 退款單信息履約記錄流程
-
退款單創(chuàng)建 不做履約業(yè)務(wù)處理蝠筑。履約持久化記錄(created)
創(chuàng)建退款單表、退款商品表(每個(gè)sku記錄一條)揩懒、退款操作流程表
退貨退款->自動(dòng)注冊(cè)5分鐘后一次性job修改為退款單自動(dòng)受理
取消訂單->自動(dòng)注冊(cè)5分鐘后一次性job修改為退款單同意
僅退款->自動(dòng)注冊(cè)5分鐘后一次性job修改為退款單同意 -
退款成功 退款單完成退款什乙,判斷數(shù)據(jù)庫(kù)狀態(tài)。履約持久化記錄(success)
更新退款單表已球、退款商品表(每個(gè)sku記錄一條)臣镣、創(chuàng)建退款操作流程表 -
退款失敗 退款單退款失敗辅愿,判斷數(shù)據(jù)庫(kù)狀態(tài)必須是approve狀態(tài)。履約持久化記錄(fail)
更新退款單表忆某、退款商品表(每個(gè)sku記錄一條)点待、創(chuàng)建退款操作流程表 -
退款接受處理 履約持久化記錄(received)
獲取商戶退款地址、反調(diào)交易中心退款接受處理服務(wù)弃舒、更新退款單表癞埠、創(chuàng)建退款操作流程表
狀態(tài)變更后,會(huì)主動(dòng)發(fā)送站內(nèi)信/短信[summary, content] -
退款取消 履約持久化記錄(cancelled)
確認(rèn)退款單類型棒坏、如果不符合反調(diào)交易中心查詢退款單服務(wù)燕差、更新退款單表、創(chuàng)建狀態(tài)變更后坝冕,會(huì)主動(dòng)**發(fā)送站內(nèi)信/短信[summary, content]
**退款操作流程表 -
退款拒絕 履約持久化記錄(rejected)
反調(diào)交易中心退款單拒絕服務(wù)徒探、更新退款單表、創(chuàng)建退款操作流程表
狀態(tài)變更后喂窟,會(huì)主動(dòng)發(fā)送站內(nèi)信/短信[summary, content] -
退款同意 履約持久化記錄(accepted)
反調(diào)交易中心退款單同意服務(wù)测暗、更新退款單表、創(chuàng)建退款操作流程表
調(diào)用交易中心更新退款單信息服務(wù) -
退款待收貨 履約持久化記錄(delivery)
更新退款單表磨澡、創(chuàng)建退款操作流程表 -
退款確認(rèn)收貨 履約持久化記錄(confirmGoods)
反調(diào)交易中心退款單確認(rèn)收貨服務(wù)碗啄、更新退款單表、創(chuàng)建退款操作流程表
2. 履約與外部系統(tǒng)
監(jiān)聽訂單支付消息稳摄,如果是外部渠道系統(tǒng)訂單稚字,則調(diào)用外部網(wǎng)關(guān)“代下單代支付”接口,如果調(diào)用結(jié)果不成功厦酬,發(fā)出報(bào)警郵件或短信胆描;調(diào)用結(jié)果為成功,則把外部渠道系統(tǒng)訂單ID回傳到對(duì)應(yīng)訂單的擴(kuò)展字段中仗阅,然后插入該訂單數(shù)據(jù)到pash任務(wù)表昌讲。
如果訂單在風(fēng)控審核中,則發(fā)送通知短信給訂單用戶(根據(jù)不同用戶類型發(fā)送不同短信內(nèi)容)
訂單已創(chuàng)建
訂單已支付
訂單已下單
更新第三方訂單ID
訂單風(fēng)控
- 訂單已支付
- 履約系統(tǒng)需要和外部平臺(tái)系統(tǒng)交互减噪,執(zhí)行外部系統(tǒng)訂單履約 代客下單(第三方平臺(tái))
- 針對(duì)已完成支付的訂單短绸,類型是外部系統(tǒng)訂單,調(diào)用外部服務(wù)接口筹裕。
- 訂單信息通過MQ進(jìn)行解耦醋闭,履約信息監(jiān)聽對(duì)應(yīng)的Q來處理對(duì)應(yīng)的業(yè)務(wù)。
- 如果調(diào)用外部接口不成功朝卒,會(huì)觸發(fā)MQ的retry機(jī)制目尖,則等待mq重試,超過嘗試次數(shù)會(huì)給監(jiān)控告警
- 提交給外部系統(tǒng)代客下單的訂單信息由交易系統(tǒng) 通過MQ交互扎运。
- 調(diào)用與外部服務(wù)交互的網(wǎng)關(guān)服務(wù)(外部系統(tǒng)必須經(jīng)過外部網(wǎng)關(guān))瑟曲。
- 將訂單信息保存在履約持久化數(shù)據(jù)庫(kù)中,供后續(xù)查詢外部訂單信息豪治。并且發(fā)送更新第三方訂單號(hào)至擴(kuò)展字段的Q信息洞拨。
與外部系統(tǒng)交互的下單,需要考慮**重復(fù)支付的冪等問題**负拟,**重復(fù)支付不算支付失敗**
定時(shí)Job信息通過訂單創(chuàng)建的時(shí)候持久化在數(shù)據(jù)庫(kù)出吹,當(dāng)多次更新job信息失斂障小(長(zhǎng)期處于未發(fā)單狀態(tài)),持久化記錄錯(cuò)誤操作信息,并提示用戶退款惧财,如果Job成功執(zhí)行,則刪除此Job兢榨,后續(xù)不再調(diào)用
3. 對(duì)外提供服務(wù)
3.1. B2C履約提供外部(商戶/運(yùn)營(yíng))訂單服務(wù)
外部合作方猎醇,更新B2C訂單物流信息
3.1.1 分頁(yè)查詢訂單列表
orderStatus訂單狀態(tài)、orderType訂單類型
下單開始時(shí)間谬墙、下單結(jié)束時(shí)間
支付開始時(shí)間今布、支付結(jié)束時(shí)間
收貨人姓名、收貨人手機(jī)號(hào)
商品名(模糊查詢)拭抬、spuId部默、skuId
outId外部單號(hào)、tradeId內(nèi)部單編號(hào)
3.1.2 訂單詳情
sellerId商戶編號(hào)造虎、tradeId訂單編號(hào)
3.1.3 獲取B2C物流公司
一個(gè)商戶可以有多個(gè)B2C物流公司
sellerId商戶編號(hào)
3.1.4 獲取訂單物流狀態(tài)
sellerId商戶編號(hào)傅蹂、tradeId訂單編號(hào)
3.1.5 獲取訂單商戶備注
sellerId商戶編號(hào)、tradeId訂單編號(hào)
3.1.6 獲取訂單物流詳情
sellerId商戶編號(hào)算凿、tradeId訂單編號(hào)
3.1.7 獲取待發(fā)貨的物流商品信息
sellerId商戶編號(hào)份蝴、tradeId訂單編號(hào)
3.1.8 獲取商品原始的收貨地址信息
物流信息可以被更新,但是要記錄原始的收貨地址first
sellerId商戶編號(hào)澎媒、tradeId訂單編號(hào)
3.1.9 發(fā)貨并且上傳物流單號(hào)
當(dāng)外部物流發(fā)貨的時(shí)候搞乏,已知物流單號(hào),商戶需要修改履約狀態(tài)時(shí)
----
sellerId 商戶編號(hào)戒努、tradeId訂單編號(hào)
carrierId物流公司編號(hào)请敦、物流單號(hào)
3.1.10 新增/修改商戶備注信息
sellerId 商戶編號(hào)、tradeId訂單編號(hào)
備注等級(jí)储玫、備注內(nèi)容
3.1.11 修改訂單收貨地址
sellerId 商戶編號(hào)侍筛、tradeId訂單編號(hào)
地址信息、收貨人撒穷、收貨人手機(jī)號(hào)
3.1.12 新增/修改訂單物流
sellerId 商戶編號(hào)匣椰、tradeId訂單編號(hào)
物流單記錄主鍵ID、物流公司編碼端礼、物流單號(hào)
3.1.13 關(guān)閉訂單
商戶/運(yùn)營(yíng)主動(dòng)關(guān)閉訂單
----
sellerId 商戶編號(hào)禽笑、tradeId訂單編號(hào)
原因
3.1.13 確認(rèn)收貨
商戶確認(rèn)用戶已收貨入录,主動(dòng)修改訂單狀態(tài)
----
sellerId 商戶編號(hào)、tradeId訂單編號(hào)
3.2. B2C履約提供外部(商戶/運(yùn)營(yíng))風(fēng)控訂單查詢服務(wù)
3.2.1 分頁(yè)查詢風(fēng)控單
開始時(shí)間佳镜、結(jié)束時(shí)間
approveStatus審批狀態(tài)
3.2.2 風(fēng)控單審批
approveStatus審批狀態(tài)僚稿、tradeId訂單編號(hào)
3.3. B2C履約提供外部(商戶/運(yùn)營(yíng))退款訂單服務(wù)
3.3.1 分頁(yè)查詢退款單
開始時(shí)間、結(jié)束時(shí)間
退款單狀態(tài)蟀伸、退款單類型
tradeId訂單號(hào)蚀同、refundId退款單編號(hào)
sellerId商戶編號(hào)
3.3.2 退款單詳情
refundId退款單編號(hào)、sellerId商戶編號(hào)
3.3.3 退款單接受處理 received
refundId退款單編號(hào)啊掏、sellerId商戶編號(hào)蠢络、退貨信息(地址+收貨人姓名+手機(jī)號(hào))
3.3.4 退款單同意 approve
refundId退款單編號(hào)、sellerId商戶編號(hào)
3.3.5 退款單拒絕 reject
refundId退款單編號(hào)迟蜜、sellerId商戶編號(hào)
原因
3.3.6 賣家確認(rèn)收到用戶退款貨物
refundId退款單編號(hào)刹孔、sellerId商戶編號(hào)
3.3.7 賣家開始用戶線下退款
refundId退款單編號(hào)、sellerId商戶編號(hào)
3.3.8 賣家確認(rèn)用戶線下退款
refundId退款單編號(hào)小泉、sellerId商戶編號(hào)
3.3.9 重試退款
refundId退款單編號(hào)芦疏、sellerId商戶編號(hào)
3.4. B2C履約提供外部(商戶/運(yùn)營(yíng))商戶中心提醒
3.4.1 [消息提醒]商戶中心提醒
90天內(nèi)未發(fā)過訂單總計(jì)
24小時(shí)內(nèi)未發(fā)貨訂單總計(jì)
90天內(nèi)未處理的退款單總計(jì)
----
sellerId商戶編號(hào)
4. O2O 履約系統(tǒng)和交易系統(tǒng)關(guān)聯(lián)
參考B2C履約流程,線上支付沒有發(fā)貨狀態(tài)微姊,下單酸茴、確認(rèn)接單、用戶收貨都會(huì)發(fā)送sims短信提醒
5. 物流信息
持久化存儲(chǔ) 物流公司ID和物流公司名對(duì)應(yīng)關(guān)系
6. 履約賬單
6.1 月賬對(duì)賬
6.2 日賬對(duì)賬
OMS:訂單管理系統(tǒng)
WMS:倉(cāng)庫(kù)管理系統(tǒng)
ERP:系統(tǒng)