```mermaid
---
title: 0.微信配置流程
---
flowchart TD
    开始((开始))
    --> 登录系统[使用超级管理员或有权限的平台账号登录]

    登录系统 --> 权限判断{是否具备微信配置管理权限?}
    权限判断 -->|否| 无权限结束[无权限，流程终止]
    权限判断 -->|是| 进入微信配置管理[进入微信配置管理]

    进入微信配置管理 --> 选择操作{选择操作}
    选择操作 -->|新建配置| 选择通道类型
    选择操作 -->|修改配置| 选择修改配置
    选择操作 -->|激活配置| 选择激活配置
    选择操作 -->|停用配置| 选择停用配置
    选择操作 -->|删除配置| 选择删除配置

    subgraph 新建与修改配置
        选择通道类型{选择收款通道类型}
        选择通道类型 -->|微信直连| 填写微信通道信息[填写微信配置基础信息]
        选择通道类型 -->|富友通道| 填写富友通道信息[填写富友配置基础信息]

        填写微信通道信息 --> 信息校验{信息是否完整且有效?}
        填写富友通道信息 --> 信息校验

        选择修改配置 --> 修改已有配置[调整已有配置的信息]
        修改已有配置 --> 信息校验

        信息校验 -->|否| 修正配置信息[修正信息后重新提交]
        修正配置信息 --> 信息校验
        信息校验 -->|是| 提交保存[提交配置保存]

        提交保存 --> 保存结果{保存是否成功?}
        保存结果 -->|否| 保存失败处理[记录原因并返回修正]
        保存失败处理 --> 修正配置信息
        保存结果 -->|是| 保存成功[配置保存成功]
    end

    subgraph 激活与停用
        选择激活配置 --> 执行激活[执行配置激活]
        执行激活 --> 激活结果{激活是否成功?}
        激活结果 -->|否| 激活失败处理[处理异常后重试]
        激活失败处理 --> 选择激活配置
        激活结果 -->|是| 核对唯一生效配置[核对仅有一个生效配置]

        选择停用配置 --> 执行停用[执行配置停用]
        执行停用 --> 停用结果{停用是否成功?}
        停用结果 -->|否| 停用失败处理[处理异常后重试]
        停用失败处理 --> 选择停用配置
        停用结果 -->|是| 核对支付状态[核对第三方支付状态是否符合预期]
    end

    subgraph 删除配置
        选择删除配置 --> 删除前校验{是否允许删除?}
        删除前校验 -->|否| 禁止删除[当前生效或存在未完成支付订单，不允许删除]
        禁止删除 --> 进入微信配置管理
        删除前校验 -->|是| 确认删除[确认删除配置]

        确认删除 --> 删除结果{删除是否成功?}
        删除结果 -->|否| 删除失败处理[处理异常后重试]
        删除失败处理 --> 选择删除配置
        删除结果 -->|是| 删除成功[配置删除成功]
    end

    保存成功 --> 进入业务验收[进入业务验收]
    核对唯一生效配置 --> 进入业务验收
    核对支付状态 --> 进入业务验收
    删除成功 --> 进入业务验收

    subgraph 业务验收
        进入业务验收 --> 核对配置列表[在配置列表核对名称、状态与更新时间]
        核对配置列表 --> 核对当前生效配置[核对当前生效配置是否与操作一致]
        核对当前生效配置 --> 核对业务可用性[按业务场景核对支付能力是否正常]
        核对业务可用性 --> 验收结果{验收是否通过?}

        验收结果 -->|否| 异常处理[记录异常并返回微信配置管理处理]
        异常处理 --> 进入微信配置管理
        验收结果 -->|是| 结束([流程结束])
    end

    %% ==================== 样式美化 ====================
    style 开始 fill:#90EE90,stroke:#2E7D32,stroke-width:2px
    style 结束 fill:#FF9999,stroke:#C62828,stroke-width:2px
    style 无权限结束 fill:#FFCDD2,stroke:#D32F2F
    style 修正配置信息 fill:#FFCCBC,stroke:#E64A19
    style 保存失败处理 fill:#FFCCBC,stroke:#E64A19
    style 激活失败处理 fill:#FFCCBC,stroke:#E64A19
    style 停用失败处理 fill:#FFCCBC,stroke:#E64A19
    style 删除失败处理 fill:#FFCCBC,stroke:#E64A19
    style 异常处理 fill:#FFCCBC,stroke:#E64A19
    style 禁止删除 fill:#FFCCBC,stroke:#E64A19

    classDef decision fill:#FFF3E0,stroke:#F57C00,stroke-width:2px
    class 权限判断,选择操作,选择通道类型,信息校验,保存结果,激活结果,停用结果,删除前校验,删除结果,验收结果 decision
```
