> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fluz.app/llms.txt
> Use this file to discover all available pages before exploring further.

# 账户、应用与环境

> 在首次调用前需要理解的模型：登录、个人与企业账户、应用类型与状态，以及每个操作所需的令牌。

大多数第一周的集成问题来自四种混淆：令牌属于哪个**账户**、你创建了哪种**类型**的应用、该应用处于什么**状态**、以及你正在调用哪个**环境**。本页解释这四点。

## 登录与账户

一个 Fluz **用户**就是一个登录：拥有邮箱、手机号、PIN 码与身份验证的个人。一个用户可以持有多个**账户**：

| 账户       | 如何产生                                         | 验证方式           | 令牌账户类型     |
| :------- | :------------------------------------------- | :------------- | :--------- |
| **个人账户** | 当用户注册或通过 `registerUser` 被注册时自动创建             | 对个人进行 KYC      | `CONSUMER` |
| **企业账户** | 通过 `registerBusiness` 创建并通过 KYB 审核。一个用户可拥有多个 | 对实体及其所有者进行 KYB | `BUSINESS` |

<Warning>
  个人账户绝不会被\_转换\_为企业账户。企业账户是由该用户拥有、通过 KYB 产生的独立账户。个人账户会与其并行存在。
</Warning>

“Personal”（在控制台中）与 API 中的 `CONSUMER` 含义相同。

钱包、消费账户、卡片与交易都属于某个**账户**，而不是属于用户。相同用户通过其个人账户与企业账户进行操作时，会看到两套独立的账本。

## 每个令牌都绑定到一个账户

`generateUserAccessToken` 需要 `userId` **以及** `accountId`。`accountId` 决定令牌以哪个账户身份行事：

* 用户的个人 `accountId` 生成 `CONSUMER` 令牌；
* 某企业的 `accountId` 生成 `BUSINESS` 令牌。

要查看某用户持有的所有账户及其 ID，请使用 [获取账户](/recipes/get-accounts)。

大多数操作接受任一令牌类型，并作用于令牌所属的账户。少数操作需要特定类型：

| 操作                                     | 所需令牌账户类型   | 原因             |
| :------------------------------------- | :--------- | :------------- |
| `getBusinessCategories`                | `CONSUMER` | 在企业存在之前调用      |
| `registerBusiness`                     | `CONSUMER` | 由个人发起申请；企业尚未存在 |
| `getBusiness`                          | `BUSINESS` | 读取令牌所属的企业      |
| `requestOwnerDocumentVerificationLink` | `BUSINESS` | 作用于该企业的所有者名册   |

发送错误的类型会返回 `AUTH-0002`，并在消息中指明所需类型，例如 `getBusinessCategories requires account type CONSUMER`。使用另一个 `accountId` 重新生成令牌并重试。

## 两种应用类型

你在**开发者**区域的创建入口决定了你的应用能做什么。

| 创建入口                              | 可操作对象           | 用途                        |
| :-------------------------------- | :-------------- | :------------------------ |
| **Create new app**                | 仅开发者自己的账户       | 在你自己的 Fluz 账户上运行脚本与后台自动化  |
| **Templates → OAuth Integration** | 其他用户的账户（在他们授权后） | 平台：为客户注册、运行 KYC/KYB、为他们发卡 |

<Note>
  如果你将代表除你自己之外的任何人创建用户、验证他们或为他们发卡，你需要 **OAuth Integration** 应用。通过 **Create new app** 创建的应用无法升级为该类型。请改用模板创建新应用。
</Note>

## 应用状态

新建应用不会立即激活。

| 状态                          | 应用可为谁操作                                     |
| :-------------------------- | :------------------------------------------ |
| `PERSONAL`                  | 仅创建它的开发者本人                                  |
| `REVIEW`（显示为 **In Review**） | 仅创建它的开发者本人                                  |
| `ACTIVE`                    | 其他 Fluz 用户，通过 OAuth 与平台调用（如 `registerUser`） |

应用由 Fluz 变更为 `ACTIVE`；这不是自助操作。创建应用后，将其名称或 ID 发给你的 Fluz 对接人。在此之前，代表其他用户的调用会返回：

```text theme={null}
AUTH-0030  Application <app_id> is not active (current status: PERSONAL)
```

<Warning>
  此错误中的 `current status: PERSONAL` 指的是**应用**的状态，而不是你的账户类型。转换或切换账户无法解决。请联系 Fluz 激活该应用。
</Warning>

除 `ACTIVE` 外，部分能力还需按应用启用，例如 `registerUser` 与 `VERIFY_KYC` scope。每个环境的应用分别启用。

## 环境

Staging 与生产是独立系统：

|                  | Staging (sandbox)                                        | Live                                             |
| :--------------- | :------------------------------------------------------- | :----------------------------------------------- |
| Web app          | `uni.staging.fluzapp.com`                                | `fluz.app`                                       |
| Developers area  | `uni.staging.fluzapp.com/for-developers`                 | `fluz.app/for-developers`                        |
| GraphQL endpoint | `transactional-graph.staging.fluzapp.com/api/v1/graphql` | `transactional-graph.fluzapp.com/api/v1/graphql` |

每个环境都有独立的用户、账户、应用与 API 密钥。任一环境的密钥都无法在另一环境使用。你在登录 `fluz.app` 时创建的应用是**生产**应用，即使你只打算用它来测试。

## 综合示例

一个为自身客户进行企业入驻的平台（例如其自有客户的卡片项目），在 Staging 中通常如下运作：

1. 你拥有一个 **OAuth Integration** 应用，由你公司的账户持有，并由 Fluz 将其状态变更为 `ACTIVE`。
2. 对于每位客户，你使用 `registerUser` 为个人注册、完成验证，并引导其完成 OAuth。你为他们获取的令牌是 `CONSUMER`。
3. 使用该 `CONSUMER` 令牌调用 `getBusinessCategories` 与 `registerBusiness`。
4. 一旦企业通过 KYB，你铸造一个 `BUSINESS` 令牌（相同 `userId`，企业的 `accountId`），并在企业侧发卡与划转资金。

参见 [企业入驻与验证](/quickstart/onboard-businesses) 获取可运行版本。
