Appearance
提款(開發文檔)
最後更新:2026-04-10
📖 功能說明請參考 提款
架構
相關檔案
ViewController(5 個)
| 檔案 | 說明 |
|---|---|
.../Withdraw/C/WithdrawDetailViewController.swift | 提款詳情 |
.../Withdraw/C/WithdrawViewModel.swift | 提款 ViewModel |
.../UserInfo/C/BBVirtualWithdrawViewController.swift | 虛擬提款 |
.../UserInfo/C/BBAddVirtualAddressViewController.swift | 新增虛擬地址 |
.../UserInfo/C/BBScanViewController.swift | 掃碼 |
基礎路徑:
BBSport/Tab/我的/Mine/
Model(5 個)
| 檔案 | 說明 |
|---|---|
.../Withdraw/M/WithdrawInfoModel.swift | 提款資訊 |
.../Withdraw/M/WithdrawModel.swift | 提款記錄 |
.../Withdraw/M/WithdrawLastStatusModel.swift | 最新狀態 |
.../Withdraw/M/WithdrawStatusInput.swift | 狀態枚舉 |
.../Withdraw/V/Detail/WithdrawStatusEnums.swift | 狀態顏色枚舉 |
基礎路徑:
BBSport/Tab/我的/Mine/
View(2 個)
| 檔案 | 說明 |
|---|---|
.../Withdraw/V/BottomView/WithdrawTypeChannelView.swift | 通道限額顯示 |
BBSport/Tab/我的/Mine/Helpers/HttpService.swift | 提交提款(Service) |
API Request(13 個)
| 檔案 | 說明 |
|---|---|
.../User/Address/USDT/STAPI+WithdrawalUSDTAddressRequest.swift | USDT 地址 |
.../User/Address/TB/STAPI+WithdrawalTBAddressRequest.swift | TB 地址 |
.../User/Address/TBU/STAPI+WithdrawalTBUAddressRequest.swift | TBU 地址 |
.../User/Address/EB/STAPI+WithdrawalEBAddressRequest.swift | EB 地址 |
.../User/STAPI+WithdrawalCryptoSortRequest.swift | 加密貨幣排序 |
.../Withdraw/STAPI+WithdrawLastStatusRequest.swift | 最新狀態 |
.../Withdraw/STAPI+WithdrawRateRequest.swift | 匯率 |
.../Withdraw/STAPI+ReserveInfoRequest.swift | 預約配置 |
.../Withdraw/STAPI+WithdrawSubmitConfirmReceiveRequest.swift | 確認到帳 |
.../Withdraw/STAPI+C2CSubmitConfirmReceiveRequest.swift | C2C 確認到帳 |
.../Withdraw/STAPI+C2CSplitSubmitConfirmReceiveAllRequest.swift | C2C 拆單全部確認 |
.../User/BankCard/STAPI+UserBankCardRequest.swift | 銀行卡列表 |
.../User/BankCard/STAPI+SupportBankRequest.swift | 支援銀行 |
基礎路徑:
BBSport/API/STAPI/
銀行卡 API(3 個)
| 檔案 | 說明 |
|---|---|
BBSport/API/STAPI/User/BankCard/STAPI+AddBankCardRequest.swift | 新增銀行卡 |
BBSport/API/STAPI/User/BankCard/STAPI+DeleteBankCardRequest.swift | 刪除銀行卡 |
BBSport/API/STAPI/Transfer/STAPI+TransferInfoRequest.swift | 轉帳資訊 |
API
銀行卡管理
用戶已綁定銀行卡
POST api/forehead/fund/userbankcard/list — urlForm — STAPI.UserBankCardRequest
無參數,靠 Header token/uid 認證。
Response:
| 欄位 | 型別 | 說明 |
|---|---|---|
| name | String | 持卡人姓名 |
| cardList | [BankCard] | 已綁定的銀行卡列表 |
BankCard 欄位:bankId(Int), bankName(String), bankLogo(String), cardId(Int), cardNo(String), status(Int, 2=人工審核中), canDelete(Bool)
支援銀行列表
POST api/forehead/fund/userbankcard/supportBankList — urlForm — STAPI.SupportBankRequest
無參數,靠 Header token/uid 認證。
Response: data: [Bank]
| 欄位 | 型別 | 說明 |
|---|---|---|
| bankId | Int | 銀行 ID |
| bankName | String | 銀行名稱 |
| bankLogo | String | 銀行 Logo |
新增銀行卡
POST api/forehead/fund/userbankcard/v2/bindcard — urlForm — STAPI.AddBankCardRequest
| 參數 | 型別 | 必填 | 說明 |
|---|---|---|---|
| name | string | ✅ | 真實姓名 |
| bankId | string | ✅ | 銀行 ID |
| cardNo | string | ✅ | 銀行卡號 |
| code | string | ✅ | 驗證碼 |
Response: 無 data,僅含 code 和 message。
申請人工新增銀行卡
POST api/forehead/fund/userbankcard/v2/apply/bindcard — urlForm — STAPI
| 參數 | 型別 | 必填 | 說明 |
|---|---|---|---|
| name | string | ✅ | 真實姓名 |
| bankId | string | ✅ | 銀行 ID |
| cardNo | string | ✅ | 銀行卡號 |
| code | string | ✅ | 驗證碼 |
| imagePath | string | ✅ | 銀行卡照片路徑(人工審核用) |
Response: 無 data,僅含 code 和 message。
刪除銀行卡
POST api/forehead/fund/userbankcard/delete — urlForm — STAPI.DeleteBankCardRequest
| 參數 | 型別 | 必填 | 說明 |
|---|---|---|---|
| cardId | int | ✅ | 銀行卡 ID |
| code | string | ✅ | 驗證碼 |
Response: 無 data,僅含 code 和 message。
數字貨幣地址
USDT 地址查詢
POST api/forehead/fund/user/usdt/list — urlForm — STAPI.WithdrawalUSDTAddressRequest
無參數,靠 Header token/uid 認證。
Response: data: [AddressInfo]
| 欄位 | 型別 | 說明 |
|---|---|---|
| id | Int | 地址 ID |
| nickName | String | 地址暱稱 |
| address | String | 錢包地址 |
| protocol | String | 協議名稱(如 TRC20) |
| status | Int | 狀態 |
| userId | Int | 用戶 ID |
| userName | String | 用戶名 |
| createDate | Double | 建立時間 |
USDT 協議列表查詢
POST api/forehead/fund/user/usdt/protocol/list — urlForm — STAPI
無參數,靠 Header token/uid 認證。
Response: data: [GeneralCryptoProtocol]
| 欄位 | 型別 | 說明 |
|---|---|---|
| protocol | String | 協議名稱(如 TRC20, ERC20) |
| message | String | 協議說明訊息 |
TB 地址查詢
POST api/forehead/fund/user/tb/list — urlForm — STAPI.WithdrawalTBAddressRequest
無參數,靠 Header token/uid 認證。
Response: 同 USDT 地址查詢。
TBU 地址查詢
POST api/forehead/fund/user/tbu/list — urlForm — STAPI.WithdrawalTBUAddressRequest
無參數,靠 Header token/uid 認證。
Response: 同 USDT 地址查詢。
EB 地址查詢
POST api/forehead/fund/user/eb/list — urlForm — STAPI.WithdrawalEBAddressRequest
無參數,靠 Header token/uid 認證。
Response: 同 USDT 地址查詢。
加密貨幣提款排序
POST api/forehead/fund/user/tb/digiCoin/sort — urlForm — STAPI.WithdrawalCryptoSortRequest
無參數,靠 Header token/uid 認證。
Response: data: [CryptoSort]
| 欄位 | 型別 | 說明 |
|---|---|---|
| coin | String | 幣種代碼(如 USDT, TB, EB, TBU) |
| sort | Int | 排序順序 |
省份列表
POST api/forehead/system/area/load — urlForm — STAPI
無參數,靠 Header token/uid 認證。
Response: data: [Province],包含省份 ID 和名稱。
提款提交
提交提款申請
POST api/forehead/fund/withdraw/submit — urlForm — HttpService
| 參數 | 型別 | 必填 | 說明 |
|---|---|---|---|
| amount | double | ✅ | 提款金額 |
| type | string | ✅ | 提款類型代碼 |
| orgSubmitType | int | ✅ | 提款方式(1=銀行卡, 2=普通, 3=C2C, 4=USDT, 6=EB, 21=TB, 22=TBU) |
| cardId | int | 銀行卡 ID(法幣提款) | |
| usdtId / ebId / tbId / tbuId | int | 數字貨幣地址 ID | |
| code | string | 驗證碼 | |
| durationId | int | 預約提款時段 ID | |
| reallyName | string | 真實姓名(隱私模式首次提款) |
Response: 無 data,僅含 code 和 message。成功後呼叫 WithdrawLastStatusRequest 取得新訂單。
提款最新狀態
POST api/forehead/fund/withdraw/last/status — urlForm — STAPI.WithdrawLastStatusRequest
無參數,靠 Header token/uid 認證。
Response:
| 欄位 | 型別 | 說明 |
|---|---|---|
| bankCards | [WithdrawBankModel] | 用戶銀行卡列表 |
| onOff | String | 是否開啟驗證(寫死為 "1") |
| telephone | String | 綁定的手機號 |
| withdraws | [WithdrawModel] | 提款記錄列表 |
| receivedMoney | Bool | 確認收款按鈕是否已按過 |
| isC2CSplitWithdrawOpen | Bool | 是否開啟 C2C 拆單功能 |
| totalFee | Double | C2C 拆單手續費總合 |
| currentStep | Int | 進度條(1=申請, 2=等待付款, 3=待確認到帳, 4=提款完成) |
| activityMessage | String | 提款超時補償文案 |
WithdrawModel 完整欄位
| 欄位 | 型別 | 說明 |
|---|---|---|
| address | String | 提款地址 |
| amount | Double | 提款金額 |
| bankName | String | 銀行名稱 |
| cardNo | String | 銀行卡號 |
| createDateInterval | Int(private) | 建立時間戳,透過 createDate 計算屬性取得格式化字串 |
| fee | Double | 手續費 |
| name | String | 持卡人姓名 |
| orderId | String | 訂單號 |
| status | WithdrawStatusInput | 訂單狀態(枚舉,-3~16,共 19 種) |
| isSeleted | Bool | 是否被選中 |
| isShowPayerInfo | Bool | 是否顯示付款人 |
| showType | String(private) | 提款類型,"BANK" 為銀行卡,其他為虛擬幣 |
| usdtAddress | String | USDT 錢包地址 |
| usdtName | String | USDT 地址暱稱(JSON key: nickName) |
| usdtAmount | Double | USDT 金額 |
| usdtRate | Double | USDT 匯率(JSON key: rate) |
| orgSubmitType | Int | 提款方式(1=銀行卡, 3=C2C, 4=USDT, 6=EB, 21=TB, 22=TBU) |
| alertTime | Int | 極速轉卡提醒時間 |
| paymentDate | Int(private) | 付款時間戳 |
| expiredDate | Int | 收款超時時間類型 |
| receiveTimeout | Int | 收款超時時間數值 |
| expiredTtl | Int | 倒計時剩餘秒數 |
| awardAmount | Int | 最高可領取紅利 |
| isReserveWithdraw | Bool | 是否預約提款 |
| displayStatus | WithdrawDisplayStatusInput | 展示用狀態(1=失敗, 2=成功, 3=已確認, 4=處理中, 7=確認收款) |
| payer | String | 付款人姓名 |
WithdrawBankModel 完整欄位
| 欄位 | 型別 | 說明 |
|---|---|---|
| bankId | Int | 銀行 ID |
| bankName | String | 銀行名稱 |
| cardId | Int | 銀行卡 ID |
| cardNo | String | 銀行卡號 |
| name | String | 持卡人姓名 |
| selected | Int | 是否選中(0=未選中, 1=選中) |
提款資訊(含限額)
POST api/forehead/fund/withdraw/info/new — urlForm — HttpService
用途
進入提款頁時載入,取得限額、手續費配置、可用渠道。
無參數,靠 Header token/uid 認證。
Response:
| 欄位 | 型別 | 說明 |
|---|---|---|
| cardList | [WithdrawBankModel] | 綁定銀行卡列表 |
| name | String | 用戶姓名 |
| mobile | String | 手機號 |
| withdrawTimes | Int | 提款次數 |
| needSms | Bool | 是否需要驗證碼 |
| leftAmount | Double | 剩餘需完成流水金額 |
| withdrawSumAmount | Double | 今日已提款總額 |
| generalConfig | GeneralConfig? | 普通提款限額配置 |
| quickConfig | GeneralConfig? | 大額提款限額配置 |
| bankWithdrawOpen | Bool | 銀行卡提款是否開啟 |
| c2CWithdrawOpen | Bool | C2C 提款是否開啟 |
| c2CWithdrawConfig | WithdrawSpeedModel? | C2C 提款配置 |
| withdrawSwitch | [WithdrawSwitch] | 提款方式開關陣列 |
提款是否關閉
POST api/forehead/fund/withdraw/isClosed — urlForm — HttpService
無參數,靠 Header token/uid 認證。
Response: 原始 JSON Dictionary
| 欄位 | 型別 | 說明 |
|---|---|---|
| bankWithdrawOpen | Bool | 銀行卡提款是否開啟 |
| withdrawCloseTitle | String | 銀行卡維護時的標題 |
| withdrawCloseValue | String | 銀行卡維護時的內容說明 |
此 API 用於進入提款頁前檢查銀行卡提款是否處於維護狀態。若
bankWithdrawOpen=false,顯示維護提示。
提款匯率查詢
POST api/forehead/fund/withdraw/rate — urlForm — STAPI.WithdrawRateRequest
| 參數 | 型別 | 必填 | 說明 |
|---|---|---|---|
| coin | string | ✅ | 幣種代碼(如 "USDT", "EB", "TB", "TBU") |
Response: data 為 Double,即時匯率。
預約提款配置
POST api/forehead/fund/withdraw/reserve/config/get — urlForm — STAPI.ReserveInfoRequest
無參數,靠 Header token/uid 認證。
Response:
| 欄位 | 型別 | 說明 |
|---|---|---|
| c2cReserveWithdrawOpen | Int | 專屬提款預約是否開啟(1=開啟) |
| c2cTimelyWithdrawDuration | Double | 專屬即時提款時間 |
| c2cReserveWithdrawDuration | [AppointmentModel] | 專屬預約時段列表 |
| normalReserveWithdrawOpen | Int | 普通提款預約是否開啟 |
| normalTimelyWithdrawDuration | Double | 普通即時提款時間 |
| normalReserveWithdrawDuration | [AppointmentModel] | 普通預約時段列表 |
| usdtReserveWithdrawOpen | Int | USDT 提款預約是否開啟 |
| usdtReserveWithdrawDuration | [AppointmentModel] | USDT 預約時段列表 |
| ext | AppointmentExt? | 擴展條件(VIP 限額等) |
AppointmentModel 欄位:durationId(Int), startDuration(Double), endDuration(Double), appoinmentRate(String, 預約加送率), isReserve(Bool)
確認到帳
提款訂單確認到帳
POST api/forehead/fund/withdraw/submit/confirm/receive — urlForm — STAPI.WithdrawSubmitConfirmReceiveRequest
| 參數 | 型別 | 必填 | 說明 |
|---|---|---|---|
| orderId | string | ✅ | 提款訂單 ID |
Response: 無 data,僅含 code 和 message。
C2C 訂單確認到帳
POST api/forehead/fund/c2c/submit/confirm/receive — urlForm — STAPI.C2CSubmitConfirmReceiveRequest
| 參數 | 型別 | 必填 | 說明 |
|---|---|---|---|
| orderId | string | ✅ | C2C 訂單 ID |
Response: 無 data,僅含 code 和 message。
C2C 拆單全部確認到帳
POST api/forehead/fund/c2c/split/submit/confirm/receive/all — urlForm — STAPI.C2CSplitSubmitConfirmReceiveAllRequest
| 參數 | 型別 | 必填 | 說明 |
|---|---|---|---|
| orderId | string | ✅ | 父訂單 ID(parentOrderId,key 為 orderId) |
Response: 無 data,僅含 code 和 message。
C2C 確認付款
POST api/forehead/fund/c2c/submit/confirm/payment — urlForm — HttpService
無參數,靠 Header token/uid 認證。
Response: 無 data,僅含 code 和 message。
C2C 催單
POST api/forehead/fund/c2c/submit/hasten — urlForm — HttpService
無參數,靠 Header token/uid 認證。
Response: 無 data,僅含 code 和 message。
C2C 拆單明細
POST api/forehead/data/balance/load/withdraw/splitOrder — urlForm — STAPI
| 參數 | 型別 | 必填 | 說明 |
|---|---|---|---|
| orderId | string | ✅ | 訂單 ID |
Response: data: [BBCapitaDetailListModel],詳見資金明細 Response。
C2C 彩蛋資訊
POST api/forehead/fund/c2c/get/egg/info — urlForm — STAPI
無參數,靠 Header token/uid 認證。
Response: data 為 JSON 字串,彩蛋活動配置資訊。
錢包轉帳
用戶錢包資訊(TransferInfo)
POST api/forehead/gamebet/transfer/info — urlForm — STAPI.TransferInfoRequest
用途
取得用戶各場館錢包餘額,提款前需先將場館餘額轉入中心錢包。
無參數,靠 Header token/uid 認證。
Response: data: BBTransferModel,包含各場館錢包餘額和轉帳狀態。
檔案位置:
BBSport/API/STAPI/Transfer/STAPI+TransferInfoRequest.swift
驗證碼
提款驗證碼
POST api/forehead/user/setting/withdraw/validate/get/code — urlForm — STAPI
| 參數 | 型別 | 必填 | 說明 |
|---|---|---|---|
| type | string | ✅ | 固定值 "cash" |
| lotNumber / captchaOutput / passToken / genTime | string | ✅ | 極驗四件組 |
Response: 無 data,僅含 code 和 message。
提款安全驗證碼
POST api/forehead/user/setting/withdraw/validate/switch/get/code — urlForm — STAPI
| 參數 | 型別 | 必填 | 說明 |
|---|---|---|---|
| type | string | ✅ | 固定值 "cash_security" |
| lotNumber / captchaOutput / passToken / genTime | string | ✅ | 極驗四件組 |
Response: 無 data,僅含 code 和 message。
金額限制與手續費
關鍵數字
- 每種數字貨幣最多 5 個地址
- 匯率精度:USDT/TB/TBU = 4 位小數、EB = 2 位小數
- 手續費上限為
feeLimit(為 0 表示無上限)
提款通道分級
| 通道 | 說明 |
|---|---|
| 普通提現 | generalConfig — 標準額度範圍 |
| 大額提現 | quickConfig — 更高的上限額度 |
GeneralConfig 核心欄位
| 欄位 | 型別 | 說明 |
|---|---|---|
| minLimit / maxLimit | Double | 法幣最低/最高提款金額 |
| usdtMinLimit / usdtMaxLimit | Double | 數字幣整體最低/最高限額 |
| usdtLimits | [UsdtLimitModel] | 按協議區分的限額 |
| amountLimit | Double | 提款總額度上限 |
| leftWithdrawCount | Int | 當日剩餘提款次數 |
| freeTimes / leftFreeCount | Int | 免手續費總次數 / 剩餘次數 |
| feeType | WithdrawFeeType | .percent 或 .fix |
| fee | Double | 手續費率/固定金額 |
| feeLimit | Double | 手續費上限(0=無上限) |
手續費計算
leftFreeCount > 0→ 手續費 = 0.percent→fee = amount * fee / 100.fix→fee = fee- 結果 >
feeLimit且feeLimit != 0→ 封頂為feeLimit
C2C 限額(WithdrawSpeedModel)
| 欄位 | 說明 |
|---|---|
| amountLimit | 當日提現金額上限 |
| withdrawDailyUseLimit | 當日提現次數上限 |
| leftWithdrawCount | 當日剩餘次數 |
| multiple | 提現流水倍數 |
| amounts / amountTags | 快捷金額選項與文案 |
| withdrawHandlingFeeType | 1=百分比 / 2=固定金額 |
| withdrawHandlingFeeValue | 手續費費率/金額 |
| withdrawHandlingFeeMax | 手續費上限 |
| matchWaitTime | 匹配等待時間 |
提款訂單狀態碼(19 個)
| 值 | 狀態碼名稱 | 前端歸類 |
|---|---|---|
| -3 | 風險待審核 | 處理中 |
| -2 | 風險審核拒絕 | 失敗 |
| 0 | 風險審核通過,待出款 | 處理中 |
| 1 | 已出款 / 提現成功 | 成功 |
| 2 | 拒絕出款 / 提現失敗 | 失敗 |
| 3 | 申請退回 | 處理中 |
| 4 | 拒絕提現,資金已退回 | 失敗 |
| 5 | 不處理,資金不退回 | 失敗 |
| 6 | 申請強制成功中 | 處理中 |
| 7 | 待處理 | 處理中 |
| 8 | 已強制成功 | 成功 |
| 9 | 拒絕強制成功 | 失敗 |
| 10 | 三方自動出款中 | 處理中(v4.7.6 後不再使用) |
| 11 | 出款專員處理中 | 處理中 |
| 12 | 超時未確認 | 處理中(v4.7.6 後不再使用) |
| 13 | 部分退回中 | 處理中(v4.7.6 後不再使用) |
| 14 | 部分退回成功 | 成功(v4.7.6 後不再使用) |
| 15 | 待確認到帳 | 確認收款 |
| 16 | 待付款 | 確認收款 |
完整狀態流轉圖
法幣 vs 數字貨幣差異
| 項目 | 法幣(銀行卡/C2C) | 數字貨幣(USDT/TB/TBU/EB) |
|---|---|---|
| 限額來源 | minLimit / maxLimit | usdtMinLimit / usdtMaxLimit 或依協議從 usdtLimits 取 |
| 匯率 | 不適用 | 各幣種獨立匯率,精度 USDT/TB/TBU=4位、EB=2位 |
| 地址管理 | 銀行卡列表 | 錢包地址管理頁,每種幣最多 5 個地址 |
| 提交參數 | cardId | usdtId / ebId / tbId / tbuId |
實作重點
- 提款類型配置:遍歷
withdrawSwitch,過濾status == "1"的啟用項,數字貨幣 Tab 固定在最後 - 數字貨幣引導:首次 + 多渠道 + 有數字貨幣渠道 → 顯示引導
- 隱私模式首次提款:
privacyMode == true且name為空 → 引導設定真實姓名 - 銀行卡狀態:
status == 2表示人工審核中,不可用於提款 - 流水要求:
leftAmount > 0表示有未完成流水,提示用戶