| Xlight API用户手册 v1.5.1.2 Xlight极速柜台接口文档

载入中...
搜索中...
未找到
错误码

本文档介绍xlt_api的错误码。

# 错误信息结构

错误信息通过 x1::xlt_error_info_t 结构体返回：

typedef struct {
uint64_t error_code;
uint64_t sub_error_code;
char error_msg[256];
} xlt_error_info_t;

# 常见错误

错误代码 error_code | 错误子代码 sub_error_code | 说明 | 注释
--- | --- | --- | ---
101 | 0 | 上交所错误 | 详细的上交所错误代码将在sub_error_code给出。error_msg为空,具体错误信息查看交易所文档。
102 | 0 | 深交所错误 | 详细的深交所错误代码将在sub_error_code给出。error_msg为空,具体错误信息查看交易所文档。
103 | 0 | 北交所错误 | 详细的北交所错误代码将在sub_error_code给出。error_msg为空,具体错误信息查看交易所文档。
201 | 0 | 网络错误 |
301 | 0 | API错误 |
302 | 0 | API版本错误 |
303 | 0 | API配置错误 | 如:非法的IP地址参数。
304 | 0 | 连接柜台错误 | 如:无法连接AGW。
305 | 0 | 登录错误 | 如:密码校验失败;重复登录等。
306 | 0 | 登录超时 |
307 | 0 | 会话错误 | 如: session_id不存在。
308 | 0 | 委托发送失败 | 如:申请xid失败。
309 | 0 | 请求发送失败 | 如:请求过快。
310 | 0 | 行情错误 | 如:行情接收启动失败。
401 | 0 | 查询错误 | 如:参数不合法。
501 | 0 | 订单错误 | 如:参数错误(证券代码不存在等);额度不足;撤单订单不存在等。
502 | 0 | 委托超出价格范围 |
503 | 0 | 委托超出数量范围 |
504 | 0 | 资金不足 |
505 | 0 | 持仓不足 |
601 | 0 | 权限不足 |
701 | 0 | 风控错误 | 如:超出流量控制;自成交等。
801 | 0 | 资金划拨错误 |

# 获取错误信息

当API调用失败时，可以通过 `get_last_error()` 方法获取错误信息：

if (!api->login(request_id, client_id, account_name, password, pub_key)) {
auto error_info = api->get_last_error();
printf("错误码: %lu, 子错误码: %lu, 错误消息: %s\n",
error_info.error_code,
error_info.sub_error_code,
error_info.error_msg);
}

# 回调中的错误

某些回调函数也会返回错误信息，例如：

- `on_login()`：登录响应中的错误信息
- `on_query_assets()`：查询资金响应中的错误信息
- `on_query_positions()`：查询持仓响应中的错误信息
- `on_query_orders()`：查询订单响应中的错误信息

在这些回调中，需要检查 `error_info` 参数：

void MyTradeSpi::on_query_assets(uint64_t session_id, uint64_t request_id,
xlt_asset_info_t assets[], uint32_t data_count,
bool is_last, xlt_error_info_t *error_info) override {
if (error_info && error_info->error_code != 0) {
printf("查询资金失败: error_code=%lu, error_msg=%s\n",
error_info->error_code, error_info->error_msg);
return;
}
// 处理查询结果
for (uint32_t i = 0; i < data_count; i++) {
// 处理资金信息
}
}