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

# 4casters 订单 API

4casters 订单 API 通过原始 WebSocket 连接支持实时下单、取消和会话管理。

<h2 id="endpoints">
  端点
</h2>

* **订单 API**：`wss://orders-api.4casters.io/orders/ws`

<h2 id="auth">
  认证
</h2>

连接使用 4Casters 令牌进行认证。在 WebSocket 握手时于
`Authorization` 请求头中发送令牌。服务器从令牌推导用户
— **URL 中无需用户名**。

<h3 id="get-a-token">
  获取令牌
</h3>

没有单独的 API 密钥。使用你的 4Casters 用户名和密码，调用 4Casters REST API 的
`/user/login` 端点登录。响应中包含可在此处使用的令牌。令牌有效期与轮换见
[认证](/zh-Hans/pages/authentication)。

见 [4Casters REST API 文档中的 `POST /user/login`](/zh-Hans/pages/rest/authentication)。

<h3 id="connect">
  连接
</h3>

<CodeGroup>
  ```javascript JavaScript theme={null}
  const WebSocket = require('ws');
  const token = process.env.FOURCASTERS_TOKEN;
  const ws = new WebSocket('wss://orders-api.4casters.io/orders/ws', {
    headers: { Authorization: token },
  });
  ```
</CodeGroup>

<h2 id="message-format">
  消息格式
</h2>

每个客户端请求都是二元组 `[messageType, payload]`。每个载荷都应包含你生成的 `requestID`；服务器会原样回传，以便你关联响应。

<CodeGroup>
  ```json 请求 theme={null}
  [
    "messageType",
    {
      "requestID": "YOUR_REQUEST_ID",
      "...": "..."
    }
  ]
  ```
</CodeGroup>

服务器响应是带有 `requestID` 以及 `data`（成功）或 `error`（失败）的 JSON 对象：

<CodeGroup>
  ```json 成功 theme={null}
  {
    "requestID": "YOUR_REQUEST_ID",
    "data": { "...": "..." }
  }
  ```

  ```json 错误 theme={null}
  {
    "requestID": "YOUR_REQUEST_ID",
    "error": "human-readable error"
  }
  ```
</CodeGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.