VortMall 使用文档
退款管理
售后申请通过后涉及到需退款的业务需要在此栏目下单独操作。如下图所示,选择指定的售后订单,输入所需要退款的金额(可选择退款渠道),同意退款后在线支付金额会原路退回.余额会返回客户余额,线下需自行与客户联系。


退款日志记录了所有售后的信息,所有记录有迹可循。

1. 在线退款流程
说明: 用户或运营发起的退款在审核通过后,系统向原在线支付渠道发起退款请求,资金按渠道规则原路退回用户支付账户;退款结果以渠道异步通知或查询为准。
参与角色: 用户或运营、VortMall 退款服务、原支付渠道、订单与售后、支付日志。
sequenceDiagram
participant op as 用户或运营
participant refund as 退款服务
participant ch as 原支付渠道
participant log as 支付与退款日志
op->>refund: 发起或审批通过退款
refund->>log: 校验原支付单可退金额
refund->>ch: 提交退款申请
ch-->>refund: 受理返回退款单号
ch->>refund: 异步通知退款结果
refund->>refund: 验签与状态更新
refund->>log: 更新退款流水与订单退款状态
步骤说明:
- 售后或运营流程审核通过,生成退款单并指定退款金额(不超过可退上限)。
- 退款服务根据原支付单定位渠道、商户订单号、渠道交易号。
- 调用微信、支付宝或 PayPal 等退款 API,传入退款单号、金额、原交易标识。
- 渠道返回受理结果;异常时记录失败原因并支持重试或人工处理。
- 渠道异步通知退款成功或失败;验签后更新退款流水状态。
- 同步更新订单或售后单的已退款金额与状态;通知用户到账提示(按渠道实际到账时间)。
- 若部分退款,保留剩余可退额度供后续再次申请。
特别说明:
- 退款请求号在商户侧应唯一,避免重复退。
- 跨境 PayPal 退款需遵守原币种与原 capture 规则。
2. 余额退款流程
说明: 当退款策略为退回用户账户余额时,系统增加用户可用余额并写入余额入账流水,不涉及外部渠道;可与订单关闭、售后单完结联动。
参与角色: 用户或运营、VortMall 退款服务、账户余额服务、订单与售后。
flowchart TD
startNode([退款审核通过])
routeCheck{退款去向是否为余额}
onlineRef[走在线原路退款见第7节]
creditBal[增加用户可用余额]
writeFlow[写入余额退款入账流水]
linkOrder[更新订单或售后退款状态]
finishNode([完成通知用户])
startNode --> routeCheck
routeCheck -->|否| onlineRef
routeCheck -->|是| creditBal
creditBal --> writeFlow
writeFlow --> linkOrder
linkOrder --> finishNode
onlineRef --> finishNode
步骤说明:
- 审核通过且配置为「退款至余额」时进入本流程。
- 校验用户账户状态正常,无司法冻结等限制。
- 在事务内增加可用余额,金额等于本次批准退款额。
- 写入余额流水,类型为退款入账,关联原订单与退款单号。
- 更新订单或售后状态,累计已退款金额。
- 用户可在余额明细中查看到账记录。
特别说明:
- 与余额支付扣减使用同一套账户科目,保证账务可核对。
- 若需同时支持原路退回与退余额,由第 9 节拆分规则决定各段金额。
3.退款金额拆分流程
说明: 混合或多种支付来源的订单发生退款时,按原支付方式比例拆分退款额:线上支付部分优先原路退回,其次退回余额部分,剩余归为线下处理部分。计算顺序与公式如下。
参与角色: 退款服务、支付日志(各渠道已付与已退)、运营(线下处理)、用户。
计算规则(每笔退款申请内):
onlineBalance = min(退款额, 原线上支付额 - 已线上退额)- 剩余金额
rem1 = 退款额 - onlineBalance refundBalance = min(rem1, 原余额支付额 - 已余额退额)rem2 = rem1 - refundBalanceofflineBalance = rem2(即「剩余」全部归入线下处理额度)
flowchart TD
startNode([输入退款总额])
calcOnline["onlineBalance=min(退款额,原线上-已线上退)"]
rem1["rem1=退款额-onlineBalance"]
calcBal["refundBalance=min(rem1,原余额-已余额退)"]
rem2["rem2=rem1-refundBalance"]
offline["offlineBalance=rem2"]
routeOnline{onlineBalance大于0}
routeBal{refundBalance大于0}
routeOff{offlineBalance大于0}
doOnline[向渠道发起原路退款]
doBal[入账用户余额]
doOff[生成线下处理任务或待办]
doneNode([更新退款单各段状态])
startNode --> calcOnline
calcOnline --> rem1
rem1 --> calcBal
calcBal --> rem2
rem2 --> offline
offline --> routeOnline
routeOnline -->|是| doOnline
routeOnline -->|否| routeBal
doOnline --> routeBal
routeBal -->|是| doBal
routeBal -->|否| routeOff
doBal --> routeOff
routeOff -->|是| doOff
routeOff -->|否| doneNode
doOff --> doneNode
步骤说明:
- 读取订单原始支付构成:原线上支付额、原余额支付额、原线下记帐额(若有)。
- 读取已累计:已线上退款额、已余额退款额、已线下处理额。
- 按公式计算本次
onlineBalance、refundBalance、offlineBalance,三者之和应等于本次退款额。 - 若
onlineBalance > 0,向对应渠道发起原路退款(可能多笔子流水)。 - 若
refundBalance > 0,执行第 8 节余额入账流程。 - 若
offlineBalance > 0,生成线下退款工单或由运营线下打款并回填凭证。 - 更新退款单各段状态,便于对账与审计。
特别说明:
min与「剩余」顺序保证线上优先、余额次之、线下兜底,避免超额分段。- 多次部分退款时每次都基于「已退」累计量重新计算,避免重复退。
4. 一次退款的完整闭环
用户发起售后起,经审核、退货物流、商家确认、退款计算、原路退回、库存与财务冲销直至用户收到退款的全流程。
参与角色: 消费者、平台客服/售后规则引擎、商家、仓储库存、支付渠道、结算账务。
flowchart TB
subgraph applyRefund["申请与审核"]
userApply["用户发起售后(退款/退货退款)"]
platformAudit["平台或商家审核"]
auditReject["审核拒绝"]
auditPass["审核通过"]
end
subgraph returnFlow["退货物流"]
needReturn{"是否需要退货"}
userShip["用户填写运单寄回"]
merchantRecv["商家确认收到退货"]
inspectGoods["验货与责任判定"]
end
subgraph calcRefund["退款计算"]
calcAmount["计算应退金额(商品/运费/优惠券等)"]
splitRefund["按原支付拆分退款路径"]
end
subgraph systemSync["系统联动"]
restoreStock["恢复库存(可售)"]
reverseLedger["冲销或调整结算分账"]
notifyUser["通知用户退款进度"]
end
subgraph payRefund["退款到账"]
channelRefund["支付渠道执行退款"]
userAccount["原支付方式到账"]
end
userApply --> platformAudit
platformAudit --> auditReject
platformAudit --> auditPass
auditPass --> needReturn
needReturn -->|"否"| calcAmount
needReturn -->|"是"| userShip
userShip --> merchantRecv
merchantRecv --> inspectGoods
inspectGoods --> calcAmount
calcAmount --> splitRefund
splitRefund --> restoreStock
splitRefund --> reverseLedger
splitRefund --> notifyUser
splitRefund --> channelRefund
channelRefund --> userAccount
分步说明:
- 用户在订单可售后时限内发起申请,选择仅退款或退货退款并说明原因。
- 平台或商家按规则审核;不通过则流程结束或用户可补充材料申诉。
- 审核通过后,若需退货,用户寄回商品并填写物流单号。
- 商家签收退货后验货,确认与售后单一致(或进入争议处理分支)。
- 系统根据商品金额、运费承担、已用优惠券/积分规则计算应退金额。
- 按原支付组合拆分退款(如微信+余额则分别退回)。
- 可售库存按规则恢复;财务侧冲销或调整已入账的分账与待结算数据。
- 向用户推送退款受理与到账通知;支付渠道退款成功后用户账户收到款项。
特别说明与规则:
- 已确认收货超过售后期限可能关闭售后入口,除非平台特批。
- 部分退款时,服务费与分销佣金可能按比例冲回,以平台结算规则为准。
- 跨境或特殊支付方式可能存在退款时效与币种差异。
文档结束。若各业态(国内 / overseas)开关不同,请在部署层区分渠道配置与回调 URL,业务逻辑以订单与支付单上的渠道字段为准。
大纲
1. 在线退款流程
2. 余额退款流程
3.退款金额拆分流程
4. 一次退款的完整闭环
赣公网安备36010902001041号