對(duì)于退款/拒付這類逆向訂單操作需要?jiǎng)?chuàng)建新的單號(hào)么
一、問題背景
這兩天被問了這么一個(gè)問題,所以才開啟了這個(gè)話題。問題如下:
支付中心一般都是由交易系統(tǒng)和支付系統(tǒng)兩大系統(tǒng)構(gòu)成,其中交易系統(tǒng)主要是處理跟商戶或用戶的請(qǐng)求,創(chuàng)建相關(guān)訂單并發(fā)起支付,支付系統(tǒng)主要是處理跟支付通道的對(duì)接,將支付請(qǐng)求轉(zhuǎn)給支付通道并處理響應(yīng)。正常用戶發(fā)起支付請(qǐng)求,交易系統(tǒng)創(chuàng)建交易訂單,給到支付系統(tǒng),支付系統(tǒng)創(chuàng)建支付單,并記錄跟交易訂單的關(guān)系,給到支付通道。但是如果遇到退款或者拒付的情況,想問一下,對(duì)于這種逆向訂單,交易系統(tǒng)和支付系統(tǒng)還要?jiǎng)?chuàng)建新的逆向單號(hào)么
二、問題解決
1. 正向支付(正常支付流程)
-
交易系統(tǒng)
-
面向商戶和用戶,負(fù)責(zé)生成業(yè)務(wù)層面的 交易訂單號(hào)(Trade Order ID),一般是平臺(tái)唯一訂單標(biāo)識(shí)。
-
訂單狀態(tài):待支付、支付中、支付成功、支付失敗。
-
主要職責(zé):記錄交易請(qǐng)求、訂單金額、商品、商戶信息。
-
-
支付系統(tǒng)
-
面向支付通道(銀行、Google Pay、Apple Pay、銀聯(lián)等)。
-
負(fù)責(zé)生成 支付單號(hào)(Payment ID),與交易訂單一一或一對(duì)多關(guān)聯(lián)。
-
訂單狀態(tài):已受理、支付中、成功、失敗。
-
主要職責(zé):處理支付路由、下發(fā)支付請(qǐng)求、接收通道回調(diào)、通知交易系統(tǒng)。
-
正向鏈路舉例:
用戶下單 → 交易系統(tǒng)生成交易單 T202509090001 → 請(qǐng)求支付系統(tǒng) → 支付系統(tǒng)生成支付單 P202509090001 → 調(diào)用 Google Pay / Apple Pay → 通道返回結(jié)果 → 支付系統(tǒng)更新支付單 → 交易系統(tǒng)更新交易單。
2. 逆向訂單(退款 / 拒付場(chǎng)景)
為什么需要新的逆向單號(hào)?
-
審計(jì) & 冪等性:退款/拒付不是簡(jiǎn)單修改原單狀態(tài),而是一個(gè)新的資金流向,必須有獨(dú)立編號(hào)。
-
對(duì)賬:正向支付與逆向交易需要分開記錄,以便資金對(duì)賬清晰。
-
風(fēng)控:拒付、退款可能原因復(fù)雜(欺詐、用戶發(fā)起、銀行撤銷等),單獨(dú)單號(hào)便于跟蹤溯源。
-
通道要求:支付通道(如銀行、Google、Apple)通常要求每筆退款/拒付有唯一的 Refund ID/Dispute ID,不能直接復(fù)用支付單號(hào)。
3. 逆向訂單在系統(tǒng)中的處理
-
交易系統(tǒng)
-
會(huì)生成 退款單號(hào) / 拒付單號(hào)(Trade Refund ID)。
-
與原始交易訂單關(guān)聯(lián)(例如
T202509090001-R01表示交易單T202509090001的第一次退款)。 -
狀態(tài):退款申請(qǐng)中、退款中、退款成功、退款失敗;拒付處理中、拒付成功、拒付失敗。
-
-
支付系統(tǒng)
-
同樣需要生成 支付退款單 / 支付拒付單(Payment Refund ID / Payment Dispute ID)。
-
與支付單綁定(例如
P202509090001-R01)。 -
狀態(tài):受理、處理中、成功、失敗。
-
記錄與支付通道(如 Google Pay API、Apple Pay API)的交互流水號(hào)(Refund Txn ID / Chargeback ID)。
-
4. Google Pay 的處理邏輯
-
Google Pay 本身并不直接做資金清算,而是作為 代扣渠道。
-
商戶集成 Google Pay API 后,實(shí)際交易和退款要通過 網(wǎng)關(guān)/收單行/處理器。
-
對(duì)退款:
-
商戶系統(tǒng)必須生成 Refund ID 并調(diào)用收單行的退款 API;
-
Google Pay 只會(huì)作為支付授權(quán)入口,退款狀態(tài)依賴收單行返回;
-
退款單號(hào)在 交易系統(tǒng)和支付系統(tǒng)都需要單獨(dú)記錄,因?yàn)閷?duì)賬和風(fēng)控都要追溯。
-
5. Apple Pay 的處理邏輯
-
Apple Pay 類似,它是 支付憑證(Tokenized Card)提供方,不做清算。
-
商戶發(fā)起退款時(shí):
-
必須生成 Refund ID,調(diào)用網(wǎng)關(guān)/收單行的退款接口;
-
Apple Pay 不會(huì)幫你生成退款單,商戶/支付系統(tǒng)必須自行生成并追蹤;
-
對(duì)于拒付(chargeback),通常由發(fā)卡行觸發(fā),商戶會(huì)收到異議單(Dispute/Chargeback ID),需要在支付系統(tǒng)和交易系統(tǒng)中掛載獨(dú)立單號(hào)處理。
-
6. 設(shè)計(jì)對(duì)比總結(jié)
| 系統(tǒng)角色 | 正向支付(訂單/支付單) | 逆向交易(退款/拒付單) |
|---|---|---|
| 交易系統(tǒng) | 生成交易訂單號(hào)(Trade Order ID) 記錄商品/金額/商戶信息 |
生成退款單號(hào) / 拒付單號(hào)(Trade Refund/Dispute ID) 關(guān)聯(lián)原交易單,追蹤用戶維度請(qǐng)求 |
| 支付系統(tǒng) | 生成支付單號(hào)(Payment ID) 與交易單對(duì)應(yīng),調(diào)通道 |
生成退款/拒付支付單號(hào)(Payment Refund/Dispute ID) 與原支付單對(duì)應(yīng),調(diào)通道退款接口 |
| Google Pay | 提供支付授權(quán) & Token,商戶生成支付單 | 不生成退款單,商戶需生成退款單號(hào)并調(diào)收單行退款 API |
| Apple Pay | 提供支付 Token,商戶生成支付單 | 不生成退款單,商戶需生成退款單號(hào)并調(diào)網(wǎng)關(guān)/收單行退款 API |
? 結(jié)論:
無論是退款還是拒付,交易系統(tǒng)和支付系統(tǒng)都需要生成新的逆向單號(hào),分別記錄在交易層和支付層。
-
交易系統(tǒng):關(guān)注業(yè)務(wù)維度、用戶/商戶可見。
-
支付系統(tǒng):關(guān)注資金維度、通道可見。
-
Google Pay / Apple Pay:本身不管理逆向單,依賴商戶/支付中心自行生成并與收單行交互。

浙公網(wǎng)安備 33010602011771號(hào)