#單錢包流程

本文檔描述了單一錢包模式的流程,包括使用者餘額流程、投注流程、付款流程和取消回合流程。

#目錄

#取得使用者餘額

_描述PetaX應用程式請求使用者餘額時的底層流程。 _

sequenceDiagram
    participant App as PetaX 應用
    participant SW as PetaX 服務
    participant Merchant as 商戶

    App->>+SW: 取得餘額
    SW->>+Merchant: (1) 呼叫商戶 API 取得使用者餘額
    Merchant-->>-SW: 回傳餘額結果
    SW-->>-App: 回傳餘額結果

#投注

_描述使用者下注時的底層流程。 _

graph TD
    A[使用者下注] --> B["(1) 呼叫商戶 API 取得使用者餘額"]
    B --> C{餘額充足?}
    C -->|否| D[拒絕並通知遊戲客戶端]
    C -->|是| E["(2) 呼叫商戶 API 扣減餘額"]
    E --> F{扣減餘額成功?}
    F -->|否| G[拒絕並通知遊戲客戶端]
    F -->|是| H[更新 PetaX 系統中的遊戲與使用者狀態]
    H --> I{更新成功?}
    I -->|否| J["(3) 因系統錯誤呼叫商戶 API 退款給使用者"]
    I -->|是| K[通知遊戲客戶端]

#支付

_描述使用者贏得賭注時的基本過程。 _

sequenceDiagram
    participant U as 使用者
    participant P as PetaX 服務
    participant M as 商戶

    Note over U,P: 使用者贏得一筆投注
    P->>M: (1) 呼叫 /payout API 增加使用者餘額
    M-->>M: 增加使用者餘額(內部狀態)
    alt API 呼叫成功
        M-->>P: 接受請求
        P->>U: 通知使用者新的餘額
    end

#取消回合

_描述賭場觸發取消回合事件時的底層流程。 _

sequenceDiagram
    participant U as 使用者
    participant DS as 賭場
    participant P as PetaX 服務
    participant M as 商戶

    DS->>P: 觸發取消回合事件
    P->>M: (1) 呼叫 API /cancel-bet
    M-->>M: 退還使用者餘額(內部狀態)
    alt 退款成功
        M->>P: 回傳新的使用者餘額
        P->>U: 通知使用者取消回合與退款事件
    end