Skip to content

S8 取消與退款

S8-cancel-refund 流程圖

概述

處理所有場景的訂單取消與退款,包含取消資格判定、退款金額計算、退款執行與優惠券還原。不同場景有各自的取消政策與退款規則,從乘客自助取消到企業管理員批次取消,確保每筆取消都有明確的規則依據和完整的退款閉環。

執行者:乘客/家長(C2C)、企業管理員(B2B)、系統自動(退款重試)


觸發條件

  • 乘客在歷史訂單中主動取消行程
  • 企業管理員在後台取消班次或訂單
  • 系統自動取消(如無司機接單、班次取消)
  • 學期計畫變更導致的退費

Happy Path

步驟 1:發起取消請求

用戶或管理員在對應頁面選擇要取消的訂單,填寫取消原因。

步驟 2:取消資格判定

系統依據取消政策檢查是否允許取消:

判定項目規則
時間限制出發前指定時間(如 2 小時)內不可取消
例外條件無司機接單時可隨時取消
角色限制共乘發起者在已有人加入後不可取消
特殊日期特殊日期配置可覆蓋預設規則

步驟 3:判定付款狀態與退款路徑

付款狀態退款路徑
未付款直接取消,無需退款
零元訂單(已確認)狀態更新,不呼叫支付 API
已付款計算退款金額,呼叫支付管道退款 API

步驟 4:計算退款金額

依取消政策計算應退金額:

  • 全額退款:符合取消時限規則
  • 部分退款:超過免費取消期但仍在允許取消範圍內
  • 不可退款:超過取消截止時間

步驟 5:執行退款

  1. 呼叫原支付管道的退款 API(TapPay / 綠界 / 其他)
  2. 退款成功:更新訂單狀態為「已退款」
  3. 退款金額原路退回至用戶原支付帳戶

步驟 6:附帶處理

  • 優惠券還原:已使用的優惠券自動恢復為可用狀態
  • 共乘重算:若為共乘行程,重新計算剩餘乘客的費用分攤
  • 司機通知:通知已接單司機行程變更
  • 座位釋放:釋放已佔用的座位供其他人預訂

步驟 7:發送通知

依場景發送取消確認與退款通知(LINE / Email / 簡訊)。


Worst Case

WC-1:禁止取消時段

  • 觸發條件:用戶在出發前限定時間內嘗試取消已付款訂單
  • 系統行為:阻止取消操作,顯示取消政策說明
  • 處理方式:引導用戶聯繫客服處理特殊情況

WC-2:共乘發起者取消受限

  • 觸發條件:共乘發起者在已有其他乘客加入後嘗試取消
  • 系統行為:阻止發起者取消,避免影響其他乘客
  • 處理方式:需所有加入者先退出,或聯繫客服協調

WC-3:退款 API 失敗

  • 觸發條件:支付管道退款請求失敗(網路異常、服務不可用)
  • 系統行為:訂單標記為「待退款」,自動排程次日重試
  • 處理方式:系統持續重試,超過重試次數後轉人工處理

WC-4:部分退款爭議

  • 觸發條件:用戶對部分退款金額有異議
  • 系統行為:記錄爭議並通知管理員
  • 處理方式:管理員審核取消時間與政策,確認後調整或維持原判

WC-5:批次取消異常

  • 觸發條件:B2B 管理員取消整個班次時,部分訂單退款失敗
  • 系統行為:成功的訂單正常取消,失敗的訂單標記為「待退款」
  • 處理方式:失敗訂單進入自動重試佇列

WC-6:學期退費計算複雜

  • 觸發條件:學期中途退出,需按比例計算退費
  • 系統行為:依已使用天數與剩餘天數計算退費金額
  • 處理方式:系統計算後由管理員確認,再執行退款

場景差異表

維度C2C 彈性取消B2B 管理員取消學期計畫退費
取消發起人乘客本人企業管理員家長或學校管理員
取消時限出發前 2 小時依合約約定依學期退費政策
退款計算全額或不退依合約條款按比例計算
退款方式原路退回(7 個工作天)從帳單扣除或退回帳戶退回繳費帳戶
優惠券還原自動還原(特殊券除外)不適用不適用
共乘影響重算其他乘客費用不適用不適用
批次操作不支援支援整班次取消支援批次退費
通知對象取消者 + 共乘對方 + 司機所有受影響乘客 + 司機家長 + 學校

所屬主流程

主流程關聯說明
M2 需求收集觸發乘客在預訂後取消行程
M4 行程執行觸發行程中異常導致取消
M5 結算與回顧觸發結算階段的取消退款處理
S7 支付呼叫退款時呼叫支付管道退款 API