Skip to content

個人資料與提款

最後更新:2026-04-09


功能說明

提供使用者管理個人資料的完整入口,包含:查看/修改基本資料、綁定銀行卡、綁定虛擬貨幣地址(USDT/EB/TB/TBU)、修改密碼、綁定手機/郵箱、法幣提款(銀行卡/普通/專屬提款)、以及虛擬幣提款(USDT/EB/TB/TBU)等功能。

使用者流程

個人資料主頁

  1. 進入「我的」→ 點擊個人頭像或「個人資料」→ BBPersonalInfoMainController
  2. 頁面頂部顯示背景圖,下方 TableView 列出各功能入口
  3. 常見入口:
    • 個人資訊(暱稱、頭像)→ BBPersonalInfoController
    • 銀行卡管理 → BBPersonalInfoBankCardListController
    • 地址管理(加密貨幣)→ BBPersonalInfoAddressListController
    • 修改密碼 → BBPersonalInfoChangePwdController
    • 綁定手機/郵箱 → BBPersonalInfoBindCelEmailController

銀行卡綁定

  1. 進入銀行卡列表 → 點擊「新增銀行卡」→ BBPersonalInfoAddBankCardController
  2. 支援 OCR 掃卡識別(BBBankCardIdentify
  3. 選擇開戶銀行(從 API 取得支援銀行列表)
  4. 輸入卡號、持卡人姓名
  5. 提交後狀態為「審核中」(status: 2

加密貨幣地址管理

  1. 進入地址列表 → 選擇虛擬幣類型(USDT / EB / TB / TBU)
  2. 新增地址 → BBAddVirtualAddressViewController
  3. 輸入地址 + 選擇協議(TRC20 / ERC20 等,EB 無協議選擇)
  4. 需先取得驗證碼(極驗驗證 → 發送簡訊碼),再連同驗證碼一起提交
  5. 每種幣最多 5 個地址(addressMaxCount = 5
  6. BBVirtualWithdrawViewController — 虛擬貨幣地址管理頁面

修改密碼

  1. 個人資料主頁 → BBPersonalInfoChangePwdController
  2. 輸入舊密碼、新密碼、確認密碼
  3. 密碼規則:8~20 字元,至少包含「數字/字母」的 2 種組合(IFCheckUtil.checkPassCode
  4. 前端驗證通過後呼叫 ChangePasswordRequest,成功後自動 pop 回根頁面

忘記密碼(找回密碼)

  1. 登入頁 → 忘記密碼 → SendMessageViewControllerChangePaawordViewController(注意原始碼拼寫為 Paaword
  2. 透過手機/郵箱取得驗證碼 → 輸入新密碼 + 確認密碼
  3. 呼叫 IFLoginService.forgetPaaword 提交,成功後清除本地密碼並返回首頁

綁定手機/郵箱

  1. 個人資料主頁 → BBPersonalInfoBindCelEmailController
  2. 綁定手機:輸入手機號 + 區碼 → 極驗驗證 → 發送驗證碼(BindMobileVerifyCodeRequest)→ 輸入驗證碼 → 提交(BindMobileRequest
  3. 綁定郵箱:輸入郵箱 → 發送驗證碼(BindEmailVerifyCodeRequest)→ 輸入驗證碼 → 提交(BindEmailRequest

法幣提款流程

  1. 「我的」→ 提款 → WithdrawViewController(由 WithdrawViewModel 驅動)
  2. 提款方式(WithdrawType):
    • .bank(銀行卡提款,含普通+專屬,orgSubmitType=1
    • .normal(普通提款,orgSubmitType=2
    • .c2c(專屬提款,orgSubmitType=3
    • .digital(type)(虛擬幣提款,見下方)
  3. 選擇銀行卡 → 輸入金額 → 前端驗證:
    • 餘額是否足夠
    • 金額 ≥ minLimit 且 ≤ maxLimit
    • 剩餘提款次數 > 0(leftWithdrawCount,C2C 不檢查)
  4. 手續費計算(GeneralConfig.getWithDrawFeeAmount):
    • 免費次數 > 0 → 手續費 = 0
    • feeType = .percent金額 × fee / 100
    • feeType = .fix → 固定 fee
    • 手續費不超過 feeLimit(大額除外)
  5. 若需驗證碼(needSms = true)→ BBSendMsgCodeView → 取得驗證碼
  6. 先轉帳至中心錢包 → 再呼叫 HttpService.withdrawSubmit(endpoint: api/forehead/fund/withdraw/submit
  7. 提交成功 → 查詢最新狀態(WithdrawLastStatusRequest)→ 跳轉 WithdrawDetailViewController

虛擬幣提款流程

  1. 提款頁切換到虛擬幣 tab → 選擇幣種(WithdrawDigitalType
  2. 虛擬幣類型:
    • .usdtorgSubmitType=4,支援多協議 TRC20/ERC20)
    • .ebPayorgSubmitType=6,無協議選擇)
    • .tbPayorgSubmitType=21,支援多協議)
    • .tbuorgSubmitType=22,支援多協議)
  3. 選擇提幣地址 → 驗證地址協議是否匹配 → 輸入金額
  4. 匯率換算:金額 × 匯率 = 預計到帳虛擬幣數量(WithdrawRateRequest 查詢匯率)
  5. 限額驗證:
    • USDT / TBU:使用 usdtMinLimit / usdtMaxLimit(依協議不同限額不同,來自 usdtLimits
    • EB / TB:使用 minLimit / maxLimit(與銀行卡相同限額)
  6. 確認手續費彈窗 → 提交(與法幣共用 HttpService.withdrawSubmit,帶 digitalType.withdrawSubmitIdKey 參數)

提款狀態流轉

  • WithdrawLastStatusModel.currentStep:1.申請 → 2.等待付款 → 3.待確認到帳 → 4.提款完成
  • 確認到帳操作:WithdrawSubmitConfirmReceiveRequestorderId
  • 支援 C2C 拆單(isC2CSplitWithdrawOpen)、預約提款(ReserveInfoRequest

頁面跳轉

  • 「我的」→ 個人頭像/個人資料 → BBPersonalInfoMainController
  • 個人資料主頁 → BBPersonalInfoController(修改暱稱/頭像)
  • 個人資料主頁 → BBPersonalInfoBankCardListControllerBBPersonalInfoAddBankCardController
  • 個人資料主頁 → BBPersonalInfoAddressListControllerBBAddVirtualAddressViewController
  • 個人資料主頁 → BBPersonalInfoChangePwdController(修改密碼)
  • 個人資料主頁 → BBPersonalInfoBindCelEmailController(綁定手機/郵箱)
  • 個人資料主頁 → BBVirtualWithdrawViewController(虛擬貨幣地址管理)
  • 「我的」→ 提款 → WithdrawViewController(法幣/虛擬幣提款)
  • 提款成功 → WithdrawDetailViewController(提款詳情/狀態追蹤)
  • 登入頁 → 忘記密碼 → SendMessageViewControllerChangePaawordViewController

技術視角(開發看這裡)

相關檔案

類型檔案路徑
ViewController(主頁)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/UserInfo/C/BBPersonalInfoMainController.swift
ViewController(資料)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/UserInfo/C/BBPersonalInfoController.swift
ViewController(銀行卡列表)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/UserInfo/C/BBPersonalInfoBankCardListController.swift
ViewController(新增銀行卡)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/UserInfo/C/BBPersonalInfoAddBankCardController.swift
ViewController(地址列表)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/UserInfo/C/BBPersonalInfoAddressListController.swift
ViewController(新增地址)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/UserInfo/C/BBAddVirtualAddressViewController.swift
ViewController(虛擬提款)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/UserInfo/C/BBVirtualWithdrawViewController.swift
ViewController(修改密碼)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/UserInfo/C/BBPersonalInfoChangePwdController.swift
ViewController(綁定手機/郵箱)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/UserInfo/C/BBPersonalInfoBindCelEmailController.swift
ViewController(收款地址)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/UserInfo/C/BBPersonalInfoEntryAddressController.swift
ViewController(掃碼)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/UserInfo/C/BBScanViewController.swift
ViewModel/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/UserInfo/ViewModel/BBOnelineInputControllerViewModel.swift
Helper(銀行卡識別)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Helpers/AipOcrSdk/BBBankCardIdentify.swift
Helper(銀行 Icon)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Helpers/BBBankIconHelper.swift
Helper(錢包服務)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Helpers/BBWalletService.swift
Helper(UI 管理)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Helpers/PersonalInfoUIManager.swift
ViewController(法幣提款)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Withdraw/C/WithdrawViewController.swift
ViewController(提款詳情)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Withdraw/C/WithdrawDetailViewController.swift
ViewController(忘記密碼-改密)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Login_Register/登录注册/FindPassword/C/ChangePaawordViewController.swift
ViewModel(提款)WithdrawViewModel(WithdrawViewController 初始化注入)
Model(提款資訊)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Withdraw/M/WithdrawInfoModel.swift
Model(提款類型)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Withdraw/M/WithdrawType.swift
Model(虛擬幣類型)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Withdraw/M/WithdrawDigitalType.swift
Model(最新提款狀態)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Withdraw/M/WithdrawLastStatusModel.swift
Model(加密地址)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/Address/Model/CryptoAddressInfo.swift
Model(加密協議)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/Address/Model/CryptoProtocol.swift
Helper(提款網路請求)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Helpers/HttpService.swift
ViewController(單行輸入)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/UserInfo/C/BBOnelineInputController.swift
ViewController(基底)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/UserInfo/C/BBPersonalInfoBaseController.swift
View(新增銀行卡照片)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/UserInfo/V/BBAddBankCardPhotoView.swift
Cell(地址列表)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/UserInfo/V/BBAddressListCell.swift
View(地址選擇器)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/UserInfo/V/BBAddressPicker.swift
Cell(銀行卡列表)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/UserInfo/V/BBBankCardListCell.swift
View(選項切換)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/UserInfo/V/BBChoiceSegmentView.swift
View(自動輸入欄位)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/UserInfo/V/BBInputAutoField.swift
View(個人編輯)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/UserInfo/V/BBPersonEditView.swift
Cell(個人資料主頁)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/UserInfo/V/BBPersonalInfoMainCell.swift
View(選擇開戶銀行)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/UserInfo/V/BBSelectAffiliatedBankView.swift
View(發送驗證碼)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/UserInfo/V/BBSendMsgCodeView.swift
Cell(虛擬地址)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/UserInfo/V/BBVirtualAddressCell.swift
View(虛擬地址空狀態)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/UserInfo/V/BBVirtualAddressEmptyView.swift
View(虛擬地址 Footer)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/UserInfo/V/BBVirtualAddressTableFooterView.swift
View(虛擬幣輸入)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/UserInfo/V/BBVirtualInputView.swift
View(虛擬幣協議)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/UserInfo/V/BBVirtualProtocolView.swift
ViewModel(提款)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Withdraw/C/WithdrawViewModel.swift
Model(預約提款)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Withdraw/M/AppointmentInfoModel.swift
Model(C2C 金額類型)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Withdraw/M/WithdrawC2CAmountType.swift
Model(虛擬幣地址)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Withdraw/M/WithdrawDigitalAddressModel.swift
Model(提款主模型)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Withdraw/M/WithdrawModel.swift
Model(提款狀態輸入)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Withdraw/M/WithdrawStatusInput.swift
View(提款帳戶)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Withdraw/V/BodyView/BBWithdrawAccount.swift
View(銀行提款 Body)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Withdraw/V/BodyView/BankBody/WithdrawBankBodyView.swift
View(選擇地址列表)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Withdraw/V/BodyView/ChooseAdress/WithdrawAddressListView.swift
Cell(選擇銀行卡)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Withdraw/V/BodyView/ChooseBank/WithdrawBankCell.swift
View(選擇銀行卡)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Withdraw/V/BodyView/ChooseBank/WithdrawSelectBankCardView.swift
View(選擇銀行)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Withdraw/V/BodyView/ChooseBank/WithdrawSelectBankView.swift
View(提款 Body 容器)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Withdraw/V/BodyView/ContentView/WithdrawBodyView.swift
View(虛擬幣提款 Body)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Withdraw/V/BodyView/DigitalBody/WithdrawDigitalBodyView.swift
View(虛擬幣切換類型)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Withdraw/V/BodyView/DigitalBody/WithdrawDigitalChangeTypeView.swift
View(虛擬幣類型按鈕)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Withdraw/V/BodyView/DigitalBody/WithdrawDigitalTypeButton.swift
View(預約提款)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Withdraw/V/BodyView/SubView/AppointmentView.swift
View(銀行維護)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Withdraw/V/BodyView/SubView/BankMaintenanceView.swift
View(金額輸入)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Withdraw/V/BodyView/SubView/InputAmountView.swift
View(提款提示)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Withdraw/V/BodyView/SubView/WithdrawTipView.swift
View(提款標題)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Withdraw/V/BodyView/SubView/WithdrawTitleView.swift
View(底部按鈕)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Withdraw/V/BottomView/WithdrawBottomButtonsView.swift
View(底部區域)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Withdraw/V/BottomView/WithdrawBottomView.swift
View(C2C 金額)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Withdraw/V/BottomView/WithdrawC2CAmountView.swift
View(提款金額列表)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Withdraw/V/BottomView/WithdrawMoneysView.swift
View(提款進度)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Withdraw/V/BottomView/WithdrawProgressView.swift
View(提款通道)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Withdraw/V/BottomView/WithdrawTypeChannelView.swift
Cell(C2C 拆單)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Withdraw/V/Detail/WithdrawDetailC2CSplitOrderCell/WithdrawDetailC2CSplitOrderCell.swift
View(C2C 拆單狀態)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Withdraw/V/Detail/WithdrawDetailC2CSplitOrderCell/WithdrawDetailC2CSplitOrderCellStatusView.swift
Cell(拆單詳情)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Withdraw/V/Detail/WithdrawDetailOrderSplitCell.swift
View(詳情 Header)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Withdraw/V/Detail/WithdrawDetailTBHeaderView.swift
View(詳情左右 Label)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Withdraw/V/Detail/WithdrawDetialLeftRightLabelView.swift
View(提款金額詳情)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Withdraw/V/Detail/WithdrawMoneyDetailView.swift
Enum(提款狀態)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Withdraw/V/Detail/WithdrawStatusEnums.swift
View(提款姓名)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Withdraw/V/NameView/WithdrawNameView.swift
View(虛擬幣引導)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Withdraw/V/WithdrawDigitalGuideView.swift
View(提款彈窗)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Withdraw/V/hud/WithdrawAlertView.swift
Helper(登入彈窗協議)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Helpers/BBOpenLoginAlertViewProtocol.swift
Helper(登入 UI 管理)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Helpers/STLoginUIManager.swift
Helper(OCR 分類 - AipDisplayLink)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Helpers/AipOcrSdk/Category/AipDisplayLink.m
Helper(OCR 分類 - ScaleButton)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Helpers/AipOcrSdk/Category/IOSpeScaleLayoutButton.m
Helper(OCR 分類 - ScaleConstraint)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Helpers/AipOcrSdk/Category/IOSpeScaleLayoutConstraint.m
Helper(OCR 分類 - ScaleLabel)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Helpers/AipOcrSdk/Category/IOSpeScaleLayoutLabel.m
Helper(OCR 分類 - UIImage)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Helpers/AipOcrSdk/Category/UIImage+AipCameraAddition.m
Helper(OCR View - PreviewView)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Helpers/AipOcrSdk/View/AipCameraPreviewView.m
Helper(OCR View - CutImageView)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Helpers/AipOcrSdk/View/AipCutImageView.m
Helper(OCR View - ImageView)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Helpers/AipOcrSdk/View/AipImageView.m
Helper(OCR VC - CameraController)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Helpers/AipOcrSdk/ViewController/AipCameraController.m
Helper(OCR VC - CaptureCardVC)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Helpers/AipOcrSdk/ViewController/AipCaptureCardVC.m
Helper(OCR VC - GeneralVC)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Helpers/AipOcrSdk/ViewController/AipGeneralVC.m
Helper(OCR VC - LoaderBaseVC)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Helpers/AipOcrSdk/ViewController/AipLoaderBaseVC.m
Helper(OCR VC - NavigationController)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Helpers/AipOcrSdk/ViewController/AipNavigationController.m
Model(遊戲錢包)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Helpers/Transfer/GameWalletModel.m
Model(轉帳)/Users/user/Work/bbsport-new/BBSport/Tab/我的/Mine/Helpers/Transfer/TransferModeloc.m
API(綁定郵箱)/Users/user/Work/bbsport-new/BBSport/API/STAPI/STAPI+BindEmailRequest.swift
API(綁定手機)/Users/user/Work/bbsport-new/BBSport/API/STAPI/STAPI+BindMobileRequest.swift
API(修改密碼)/Users/user/Work/bbsport-new/BBSport/API/STAPI/STAPI+ChangePasswordRequest.swift
API(暱稱詳情)/Users/user/Work/bbsport-new/BBSport/API/STAPI/STAPI+NickNameDetailRequest.swift
API(更新用戶資訊)/Users/user/Work/bbsport-new/BBSport/API/STAPI/STAPI+UpdateUserInfoRequest.swift
API(用戶頭像)/Users/user/Work/bbsport-new/BBSport/API/STAPI/STAPI+UserCenterAvatarRequest.swift
API(安全資訊查詢)/Users/user/Work/bbsport-new/BBSport/API/STAPI/STAPI+UserSecurityInfoRequest.swift
API(更新安全資訊)/Users/user/Work/bbsport-new/BBSport/API/STAPI/STAPI+UpdateSecurityInfoRequest.swift
API(驗證碼)/Users/user/Work/bbsport-new/BBSport/API/STAPI/STAPI+UserValidCodeRequest.swift
API(重置驗證碼)/Users/user/Work/bbsport-new/BBSport/API/STAPI/STAPI+ResetUserValidCodeRequest.swift
API(邀請碼)/Users/user/Work/bbsport-new/BBSport/API/STAPI/STAPI+InviteCodeRequest.swift
API(收貨地址列表)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/Address/Receive/STAPI+UserReceiveAddressRequest.swift
API(新增收貨地址)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/Address/Receive/STAPI+AddReceiveAddressRequest.swift
API(刪除收貨地址)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/Address/Receive/STAPI+DeleteReceiveAddressRequest.swift
API(省份列表)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/Address/Receive/STAPI+ProvinceRequest.swift
API(設定預設收貨地址)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/Address/Receive/STAPI+UpdateDefaultReceiveAddressRequest.swift
API(更新收貨地址)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/Address/Receive/STAPI+UpdateReceiveAddressRequest.swift
API(個人主頁資訊)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/Profile/STAPI+ProfileInfoRequest.swift
API(個人投注紀錄)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/Profile/STAPI+ProfileBetRequest.swift
API(關注專家)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/Profile/STAPI+ProfileFollowExpertRequest.swift
API(關注他人)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/Profile/STAPI+ProfileFollowOthersRequest.swift
API(按讚投注)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/Profile/STAPI+ProfileLikeBetRequest.swift
API(查看權限)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/Profile/STAPI+ProfileViewingPermissionRequest.swift
API(停止通知)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/Profile/STAPI+StopNotifyingRequest.swift
API(粉絲頁關注)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/Profile/FansPage/STAPI+FansPageFollowRequest.swift
API(粉絲頁訂閱)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/Profile/FansPage/STAPI+FansPageSubscriptionRequest.swift
API(全部稱號)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/Title/STAPI+AllMemberTitleRequest.swift
API(設定用戶稱號)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/Title/STAPI+SetUserTitleInfoRequest.swift
API(用戶稱號列表)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/Title/STAPI+UserTitleListInfoRequest.swift
API(稱號取得資訊)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/Title/STAPI+UserTitleObtainInfoRequest.swift
API(稱號牆資訊)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/Title/STAPI+UserTitleWallInfoRequest.swift
API(銀行卡綁定驗證碼-申請)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/VerifyCode/BankCard/STAPI+ApplyBankCardVerifyCodeRequest.swift
API(銀行卡綁定驗證碼)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/VerifyCode/BankCard/STAPI+BindBankCardVerifyCodeRequest.swift
API(銀行卡刪除驗證碼)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/VerifyCode/BankCard/STAPI+DeleteBankCardVerifyCodeRequest.swift
API(EB 新增地址驗證碼)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/VerifyCode/EB/STAPI+AddWithdrawalEBAddressVerifyCodeRequest.swift
API(EB 刪除地址驗證碼)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/VerifyCode/EB/STAPI+DeleteWithdrawalEBAddressVerifyCodeRequest.swift
API(綁定郵箱驗證碼)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/VerifyCode/STAPI+BindEmailVerifyCodeRequest.swift
API(綁定手機驗證碼)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/VerifyCode/STAPI+BindMobileVerifyCodeRequest.swift
API(提款安全驗證碼)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/VerifyCode/STAPI+WithdrawalSecurityVerifyCodeRequest.swift
API(提款驗證碼)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/VerifyCode/STAPI+WithdrawalVerifyCodeRequest.swift
API(TB 新增地址驗證碼)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/VerifyCode/TB/STAPI+AddWithdrawalTBAddressVerifyCodeRequest.swift
API(TB 刪除地址驗證碼)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/VerifyCode/TB/STAPI+DeleteWithdrawalTBAddressVerifyCodeRequest.swift
API(TBU 新增地址驗證碼)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/VerifyCode/TBU/STAPI+AddWithdrawalTBUAddressVerifyCodeRequest.swift
API(TBU 刪除地址驗證碼)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/VerifyCode/TBU/STAPI+DeleteWithdrawalTBUAddressVerifyCodeRequest.swift
API(USDT 新增地址驗證碼)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/VerifyCode/USDT/STAPI+AddWithdrawalUSDTAddressVerifyCodeRequest.swift
API(USDT 刪除地址驗證碼)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/VerifyCode/USDT/STAPI+DeleteWithdrawalUSDTAddressVerifyCodeRequest.swift
API(申請新增銀行卡)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/BankCard/STAPI+ApplyAddBankCardRequest.swift
API(新增 EB 地址)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/Address/EB/STAPI+AddWithdrawalEBAddressRequest.swift
API(刪除 EB 地址)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/Address/EB/STAPI+DeleteWithdrawalEBAddressRequest.swift
API(新增 TB 地址)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/Address/TB/STAPI+AddWithdrawalTBAddressRequest.swift
API(刪除 TB 地址)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/Address/TB/STAPI+DeleteWithdrawalTBAddressRequest.swift
API(TB 協議地址)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/Address/TB/STAPI+WithdrawalTBProtocolAddressRequest.swift
API(新增 TBU 地址)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/Address/TBU/STAPI+AddWithdrawalTBUAddressRequest.swift
API(刪除 TBU 地址)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/Address/TBU/STAPI+DeleteWithdrawalTBUAddressRequest.swift
API(TBU 協議地址)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/Address/TBU/WithdrawalTBUProtocolAddressRequest.swift
API(新增 USDT 地址)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/Address/USDT/STAPI+AddWithdrawalUSDTAddressRequest.swift
API(刪除 USDT 地址)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/Address/USDT/STAPI+DeleteWithdrawalUSDTAddressRequest.swift
API(USDT 協議地址)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/Address/USDT/STAPI+WithdrawalUSDTProtocolAddressRequest.swift
API(代理營銷對話框列表)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/STAPI+AgencyMarketingDialogListRequest.swift
API(福利專員聯繫)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/STAPI+UserContactBenefitMemberRequest.swift
API(用戶對話框列表)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/STAPI+UserDialogListRequest.swift
API(VIP 進度)/Users/user/Work/bbsport-new/BBSport/API/STAPI/User/STAPI+VIPProgressRequest.swift

API

查詢類

功能說明NamespaceEndpointMethod主要參數
取得已綁定銀行卡列表STAPIapi/forehead/fund/userbankcard/listPOST
取得支援銀行列表STAPIapi/forehead/fund/userbankcard/supportBankListPOST
取得安全資訊STAPIapi/forehead/user/security/load/infoPOST
USDT 地址查詢STAPIapi/forehead/fund/user/usdt/listPOST
USDT 協議地址查詢STAPIapi/forehead/fund/user/usdt/protocol/listPOST
EB 地址查詢STAPISTAPI+WithdrawalEBAddressRequestPOST
TB 地址查詢STAPISTAPI+WithdrawalTBAddressRequestPOST
TBU 地址查詢STAPISTAPI+WithdrawalTBUAddressRequestPOST
取得省份列表STAPIapi/forehead/system/area/loadPOST
取得收款地址STAPIapi/forehead/user/setting/address/listPOST
加密貨幣排序STAPISTAPI+WithdrawalCryptoSortRequestPOST
查詢提款匯率STAPIapi/forehead/fund/withdraw/ratePOSTcoin
取得最新提款狀態STAPIapi/forehead/fund/withdraw/last/statusPOST
取得預約提款資訊STAPIapi/forehead/fund/withdraw/reserve/config/getPOST

寫入類 — 銀行卡

功能說明NamespaceEndpointMethod主要參數
新增銀行卡STAPIapi/forehead/fund/userbankcard/v2/bindcardPOSTname, bankId, cardNo, code
人工新增銀行卡STAPIapi/forehead/fund/userbankcard/v2/apply/bindcardPOSTname, bankId, cardNo, code, imagePath
刪除銀行卡STAPIapi/forehead/fund/userbankcard/deletePOSTcardId, code
綁銀行卡驗證碼STAPIapi/forehead/user/setting/binding/bankcard/get/code/v2POSTtype=card_bind, 極驗參數
人工綁卡驗證碼STAPIapi/forehead/user/setting/apply/binding/bankcard/get/code/v2POSTtype=apply_card_bind, 極驗參數
刪除銀行卡驗證碼STAPIapi/forehead/user/setting/delete/bankcard/get/code/v2POSTtype=card_del, 極驗參數

寫入類 — 加密貨幣地址

功能說明NamespaceEndpointMethod主要參數
新增 USDT 地址STAPIapi/forehead/fund/user/usdt/addPOSTnickName, protocol, address, code
新增 EB 地址STAPIapi/forehead/fund/user/eb/submitPOSTnickName, address, code
新增 TB 地址STAPIapi/forehead/fund/user/tb/addPOSTnickName, protocol, address, code
新增 TBU 地址STAPIapi/forehead/fund/user/tbu/addPOSTnickName, protocol, address, code
刪除 USDT 地址STAPIapi/forehead/fund/user/usdt/delPOSTid, code
刪除 EB 地址STAPIapi/forehead/fund/user/eb/deletePOSTid, code
新增 USDT 地址驗證碼STAPIapi/forehead/user/setting/binding/usdt/address/get/code/v2POSTtype=add_usdt_address, 極驗參數
新增 EB/TB 地址驗證碼STAPIapi/forehead/user/setting/binding/general/get/codePOSTtype=add_eb_address/bind_tb_address, bindType, 極驗參數

寫入類 — 密碼

功能說明NamespaceEndpointMethod主要參數
修改密碼STAPIapi/forehead/user/setting/submit/reset/passwordPOSToldPwd, newPwd

寫入類 — 綁定手機/郵箱

功能說明NamespaceEndpointMethod主要參數
綁定手機號STAPIapi/forehead/user/setting/submit/binding/mobilePOSTmobile, telArea, type=mobile_bind, code
綁定郵箱STAPIapi/forehead/user/setting/submit/binding/emailPOSTemail, type=email_bind, code
綁定手機驗證碼STAPIapi/forehead/user/setting/binding/mobile/get/code/v2POSTmobile, telArea, 極驗參數
綁定郵箱驗證碼STAPIapi/forehead/user/setting/binding/email/get/codePOSTemail, type=email_bind

寫入類 — 提款

功能說明NamespaceEndpointMethod主要參數
提交提款HttpServiceapi/forehead/fund/withdraw/submitPOSTamount, type, orgSubmitType, cardId/usdtId/ebId/tbId/tbuId, code, durationId, reallyName
確認到帳STAPIapi/forehead/fund/withdraw/submit/confirm/receivePOSTorderId
提款驗證碼STAPIapi/forehead/user/setting/withdraw/validate/get/codePOSTtype=cash, 極驗參數
提款安全驗證碼開關STAPIapi/forehead/user/setting/withdraw/validate/switch/get/codePOSTtype=cash_security, 極驗參數

資料模型

STAPI.UserBankCardRequest.Response

欄位類型說明
nameString持卡人姓名
cardList[BankCard]已綁定的銀行卡列表

BankCard

欄位類型說明
bankIdInt銀行 ID
bankNameString銀行名稱
cardIdInt卡片 ID(刪除時使用)
cardNoString卡號(脫敏)
statusInt狀態(2=人工審核中)
canDeleteBool是否可刪除

STAPI.UserSecurityInfoRequest.Response

欄位類型說明
mobileString手機號(自動補 +)
withdrawValBool提款驗證是否已完成(withdrawVal > 0
cardCountInt已綁銀行卡數量
emailString郵箱
reallyNameString真實姓名
usdtCountIntUSDT 地址數量
ebCountIntEB 地址數量

BankCard.status 狀態值

說明
非 2正常(可使用、可刪除)
2人工審核中(ApplyAddBankCardRequest 提交後的狀態,UI 顯示「人工審核中...」,隱藏刪除按鈕)

WithdrawType(提款方式)

CaseorgSubmitType說明
.bank1銀行卡提款(含普通+專屬)
.normal2普通提款
.c2c3專屬提款
.digital(.usdt)4USDT 提款
.digital(.ebPay)6EBPay 提款
.digital(.tbPay)21TB 提款
.digital(.tbu)22TBU 提款

WithdrawTypeChannel(提款通道)

說明
1普通提款
2快速提款(大額)
3代理提款
4極速提款

WithdrawLastStatusModel.currentStep(提款進度)

說明
1申請
2等待付款
3待確認到帳
4提款完成

GeneralConfig(提款限額配置)

欄位類型說明
minLimitDouble最小提款金額(法幣)
maxLimitDouble最大提款金額(法幣)
usdtMinLimitDouble數字幣最低限額
usdtMaxLimitDouble數字幣最高限額
usdtLimits[UsdtLimitModel]各協議的限額(minAmount, maxAmount, protocolName)
feeType.fix / .percent手續費類型
feeDouble手續費(固定金額或百分比)
feeLimitDouble最高手續費上限
leftFreeCountInt剩餘免費次數(> 0 免手續費)
freeTimesInt當天免費提款次數
leftWithdrawCountInt當天剩餘提款次數

實作重點

  1. OCR 銀行卡辨識:使用 BBBankCardIdentify(基於 AipOCR SDK),拍照後自動識別卡號

  2. 多種虛擬貨幣協議:USDT 支援 TRC20 / ERC20 等多協議,各有獨立的 API Request(WithdrawalUSDTProtocolAddressRequest

  3. 提款地址型別:EB(EBPay)、TB(泰銀)、TBU(泰銀升級版)、USDT 各有獨立 Request,均在 STAPI/User/Address/

  4. 收款地址(BBPersonalInfoEntryAddressController:配合省份選擇(ProvinceRequest)填寫實體收件地址,用於實物獎品配送

  5. 資安保護:修改密碼需先驗證原密碼;綁定手機/郵箱需驗證碼

  6. 銀行卡雙通道綁定:正常綁定(AddBankCardRequest,自動驗卡)失敗時,可走人工審核通道(ApplyAddBankCardRequest,需上傳卡片照片,status=2 待審核)

  7. 極驗驗證碼流程:所有發送驗證碼的 API 都需要先通過極驗(GeeTest)取得 lotNumbercaptchaOutputpassTokengenTime 四個參數

  8. 提款流程先轉帳再提款:提款前會先將對應金額從各錢包轉入中心錢包(MGJRouter.openURL(OpenTransferWallet)),再呼叫 withdrawSubmit

  9. C2C 專屬提款:C2C 提款由後端控制限額和次數(前端不做剩餘次數檢查),支援快捷金額選擇,支援拆單功能(isC2CSplitWithdrawOpen

  10. 虛擬幣匯率:各幣種有獨立匯率(usdtWithdrawRate / ebWithdrawRate / tbWithdrawRate / tbuWithdrawRate),小數位數不同(USDT/TB/TBU 4位,EB 2位)


API 呼叫流程

查看個人資料

BBPersonalProfileViewController.viewDidLoad
  └─ [API] POST api/forehead/user/center/info {pageType}
     → 頭像、暱稱、VIP、上週戰績、粉絲數、關注數、稱號

安全資訊

[API] POST api/forehead/user/security/load/info
  → 手機號、Email、真實姓名、提款驗證狀態、卡數/USDT/EB 地址數

更新: POST api/forehead/user/security/update/info {欄位 + 驗證碼}

銀行卡管理

列表: POST api/forehead/fund/userbankcard/list
新增: POST api/forehead/fund/userbankcard/v2/bindcard {name, bankId, cardNo, code}
  └─ 失敗 → POST api/forehead/fund/userbankcard/v2/apply/bindcard (人工審核)
刪除: POST api/forehead/fund/userbankcard/delete {cardId, code}
支援銀行: POST api/forehead/fund/userbankcard/supportBank
驗證碼: POST api/forehead/user/setting/withdraw/validate/get/code