#单钱包流程

本文档描述了单钱包模式的流程,包括用户余额流程、投注流程、支付流程和取消回合流程。

#目录

#获取用户余额

描述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