---
# System prepended metadata

title: Cashpool 取卡規則
tags: [HSress, Pool, Bank Card]

---

# CashPool 取卡規則

###### tags: `HSress` `Pool` `BankCard`

## 名詞定義

- **提現**：Withdraw，於其他平台或專案有不同名詞
- **充值**：Recharge，於其他平台或專案有不同名詞

### 取卡規則中的名詞

- `Handler`：處理程序/流程，通常代表某個環節，而這環節中會有一個或多個 Filter/Sorter/Picker
- `Filter`：過濾器，剔除絕對不會被挑選的卡片 (可使用量、區域分組、卡片類型...)
- `Sorter`：排序器，將符合條件的卡片進行排序 (優先度、支/微 最後取卡...)
- `Picker`：挑選器，挑選一張卡片 (實名制、同卡同額鎖...)，目前只有在「充值」中使用，會顯示最後由何種規則被挑選

## 取卡歷程

> 此功能目前為 Payment 用，非實際 Log 邏輯

- ERROR: 取卡錯誤，必定記錄
- PICKER: 顯示最後由何種規則被挑選，必定記錄
- SORTER: 排序，必定記錄
- HANDLER: 若數量有變動會記錄
- FILTER: 若數量有變動會記錄
- INIT: 進入取卡流程前的記錄
- FINAL: 離開取卡流程後的記錄

> FINAL 若為「提現急速單」因第一次建單並不會取卡，因此強制覆寫為該張「提現單」下的「轉帳單」來源卡號，而在 withdraw/retry
> 過程中若有取卡，則會再回傳取卡 Log，反之為空 array

## 取卡 Log 位置

- `payment/payment-{yyyy-mm-dd}.log`
- `payment/payment-request-{yyyy-mm-dd}.log`


## 取卡 OOAD

![OOAD](https://hackmd.io/_uploads/HyR91JvoJe.png)

## 詳細規則

- [「提現」取卡規則 - PaymentCardChooser](https://hackmd.io/@ERtbphuiQt2NzHaScvdV2Q/HyfA1N-1ye)
- [「充值」取卡規則 - RechargeCardChooser](https://hackmd.io/@ERtbphuiQt2NzHaScvdV2Q/SJHsyVW1ke)
