# 沙箱與測試用戶端

> 含各種狀態虛構會員的孿生協會、測試用戶端，以及重設。

URL: https://developers.vimine.network/zh-hant/guides/sandbox/

每個協會都可以擁有一個**沙箱**：一個孿生協會，品牌形象、會員卡類型和章程都與原協會相同，其中是虛構會員。您可以在裡面開發和測試，既不觸及真實資料，也不需要任何審核。

平台邀請的每位開發者還擁有**一個自己的沙箱**，不屬於任何協會：在「帳戶設定 › 開發者」中建立、打開、重建和刪除，並在其中登記測試用戶端。

## 建立沙箱

在**開發者**頁面中：點選“建立沙箱”按鈕，或者在**測試**環境中登記一個用戶端——沙箱會按需建立。建立者會成為沙箱的理事會成員：可以透過協會切換器進入沙箱，在虛構資料上使用管理後臺（批准申請、暫停會員卡等）。

## 虛構會員

六個帳戶，每種狀態一個，電子郵件地址為 `<state>@<slug>-sandbox.sandbox.invalid`，並共用**同一個密碼**；該密碼只在建立時和每次重設時顯示一次：

| 電子郵件地址 | 狀態 | 代表的情形 |
|---|---|---|
| `attivo@…` | 有效 | 會員卡有效，已接受章程——`verdict: valid` |
| `in-attesa@…` | 待處理 | 申請尚未獲准 |
| `sospeso@…` | 已暫停 | |
| `revocato@…` | 已撤銷 | |
| `scaduto@…` | 有效但已過期 | `verdict: expired` |
| `statuto-da-accettare@…` | 有效，未接受章程 | `verdict: statuto_required` |

它們從普通的 Vimine 登入頁面登入，因此您可以從頭到尾試用**使用 Vimine 登入**：在您的網站上點選 → 以 `attivo@…` 登入 → 同意授權 → 回呼 → API。

:::tip
如果要試用**尚未入會**的人提交入會申請（`membership:request`），請使用一個在該沙箱中沒有會員卡的帳戶登入，例如您自己的個人帳戶：非會員同樣可以同意入會相關的權限。
:::

## 測試中建立的人員

透過沙箱的入會頁面入會的人，以及測試用戶端透過 `/v1/signup` 或 `/v1/enroll` 指定的人，都會成為沙箱的**虛構**人員：填寫的地址會被替換為沙箱網域下的地址（`api-…@<slug>-sandbox.sandbox.invalid`，同一地址總是對應同一個），入會結束時頁面會顯示該地址。不會建立或觸及任何真實帳戶，也不會傳送任何電子郵件。

這些帳戶**僅在沙箱中有效**：可以用所選密碼在沙箱中登入，但不能加入真實協會、進入其他協會，也不能授權除所在沙箱測試用戶端以外的任何用戶端（`sandbox_account`）。

## 測試用戶端

測試環境中的用戶端（機密用戶端的憑證為 `vms_test_…`）繫結在沙箱上，顯示在真實協會的管理後臺中，**立即生效**，簽發的權杖帶有 `mode: "test"`。它無法觸及真實協會。沙箱中的電子郵件不會發出。

要上線到生產環境，請在**生產**環境中再登記一個用戶端（使用相同的 `https` 重新導向 URI），待其開通後，在您的設定中更換 `clientId`：程式碼保持不變。

## 重設

在管理後臺中點選“重建資料和登入憑證”，或使用測試用戶端：

```js title="Node"
import { VimineServer } from '@vimine/sdk/server';

const vimineServer = new VimineServer({ clientId: 'vmc_…', clientSecret: 'vms_test_…' });
await vimineServer.sandbox.members();                      // GET  /v1/sandbox
const { password } = await vimineServer.sandbox.reset();   // POST /v1/sandbox/reset — 會員從頭重建，產生新密碼
```

重設會重新建立六名虛構會員（包括同意記錄和工作階段），並更換他們的密碼；測試中建立的人員會被刪除；用戶端和沙箱本身保持不變。這些端點需要機密測試用戶端的權杖（`client_credentials`），不接受 HTTP Basic；生產用戶端會得到 `403`。

## 刪除沙箱

在**開發者**頁面中點選“刪除沙箱”（理事會或平台營運人員）會立即刪除沙箱，連同虛構會員、測試中建立的人員、資料和測試用戶端，測試用戶端將停止運作。您可以隨時再建立一個新的沙箱。
