📱 微信登录流程
sequenceDiagram
participant U as 用户
participant WX as 微信小程序
participant API as 游戏后端
participant WXS as 微信服务器
U->>WX: 点击"微信登录"
WX->>WXS: wx.login() 获取 code
WXS-->>WX: code
WX->>API: POST /api/game/auth/wxlogin {code}
API->>WXS: code2Session
WXS-->>API: openid, session_key
API->>API: 生成 JWT Token
API-->>WX: {token, userInfo}
WX->>U: 登录成功,显示用户信息
🎮 游客登录流程
sequenceDiagram
participant U as 用户
participant WX as 微信小程序
participant API as 游戏后端
U->>WX: 点击"游客试玩"
WX->>API: POST /api/game/auth/guest
API->>API: 生成 UUID 临时标识
API->>API: 创建游客用户记录
API->>API: 生成临时 Token (7天有效)
API-->>WX: {token, isGuest: true}
WX->>U: 登录成功,提示绑定手机
💰 充值业务流程
sequenceDiagram
participant U as 用户
participant WX as 微信小程序
participant API as 游戏后端
participant WXP as 微信支付
participant DB as 数据库
U->>WX: 选择充值档位
WX->>API: POST /api/game/wallet/recharge/create-order
API->>DB: 创建待支付订单
API-->>WX: 微信支付参数
WX->>WXP: 调起微信支付
WXP-->>WX: 支付结果
alt 支付成功
WX->>API: 支付回调通知
API->>WXP: 验证签名
API->>DB: 更新订单状态=已支付
API->>DB: 增加用户游戏币余额
API-->>WX: 回调确认
WX->>U: 显示"充值成功"
else 支付失败
WX->>U: 显示"支付失败,请重试"
end
🛒 游戏币消费流程
sequenceDiagram
participant U as 用户
participant WX as 微信小程序
participant API as 游戏后端
participant DB as 数据库
U->>WX: 选择道具发起购买
WX->>API: POST /api/game/wallet/consume
API->>DB: 查询余额
alt 余额充足
API->>DB: 扣减游戏币
API->>DB: 记录消费流水
API-->>WX: 消费成功
WX->>U: 道具发放成功
else 余额不足
API-->>WX: 余额不足错误
WX->>U: 提示充值
end
💾 存档保存流程
sequenceDiagram
participant U as 用户
participant WX as 微信小程序
participant API as 游戏后端
participant DB as 数据库
U->>WX: 触发存档保存
WX->>API: POST /api/game/save/{game_id}
API->>DB: 查询现有存档
alt 槽位已有存档
API->>DB: 覆盖存档数据
API-->>WX: 保存成功
else 新存档
API->>DB: 插入新存档记录
API-->>WX: 保存成功
end
WX->>U: 显示存档成功