Files
craftlabs-authorization-sdk/docs/bitanswer-client-api-overview.md
2026-04-06 17:42:09 +08:00

350 lines
25 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 比特授权云:客户端 API 梳理(基于官方文档)
> 来源:[C 语言接口定义 v2](https://doc.bitanswer.cn/docs/client-api/c-interface-definitions-v2/)、[Java 语言接口 v2](https://doc.bitanswer.cn/docs/client-api/java-interface-v2/)、[SDK 概述](https://doc.bitanswer.cn/docs/client-api/sdk-overview/)、[典型场景](https://doc.bitanswer.cn/docs/client-api/examples-of-using-the-sdk/)。
> 其它语言入口(文档中心列举):[Delphi](https://doc.bitanswer.cn/docs/client-api/delphi-interface/)、[C#](https://doc.bitanswer.cn/docs/client-api/csharp-interface/)、[VB.Net](https://doc.bitanswer.cn/docs/client-api/vb-net-interface/)、[VB6](https://doc.bitanswer.cn/docs/client-api/vb6-interface/)。
> 整理日期:2026-04-06
> **说明**:本文为对公开文档的**纲要式整理**,参数细节、错误码与边界条件以官方页面及随产品下发的 `bitanswer.h`/接口文件为准。
> **本地对照**:已与仓库内手工备份的 C 接口 `[docs/c.md](c.md)`、Java 接口 `[docs/java.md](java.md)` 交叉核对(见文末「审核说明」及 **附录 A**)。
---
## 1. SDK 交付形态与前置条件
- **获取方式**:在比特授权云平台「模块下载」获取与**产品绑定**的静态库/动态库及接口定义;**不同产品库不可混用**(文档说明 `Login` 不匹配会返回 `0x105` 类错误)。
- **C**:头文件 `bitanswer.h` + 平台库(文档示例如 `libxxx_xxx_x64.a`)。
- **Java**JNI + 主封装类 `**BitAnswer`**(方法名为 camelCase,语义与 C API 大体一一对应;签名与枚举见 **附录 A** / `[docs/java.md](java.md)`)。
- **支持平台(SDK 概述列举)**Windows、Linux、Android、ARM Linux、MIPS Linux、macOS、iOS、HarmonyOS、QNX 等。
**运行期共性概念(SDK 概述)**
| 概念 | 含义 |
| -------------------------- | ---------------------------------------------------------------------------------------- |
| `application_data` / 产品识别码 | 编译进接口定义、与产品一一对应,多数 API 必填。 |
| `BIT_HANDLE` / 会话句柄 | `Bit_Login` / `Bit_LoginEx` 等成功后返回,后续特征项/心跳等依赖此句柄。 |
| `BIT_STATUS` | API 返回状态码;具体取值与错误码见官方「错误码」文档。 |
| 授权文件默认目录(典型场景) | Linux`{当前用户}/BitAnswer`Windows`{系统盘}/ProgramData/BitAnswer`;可用 `Bit_SetRootPath` 自定义。 |
---
## 2. URL / 地址约定(`Bit_Login` 的 `szURL` 等)
文档说明 `szURL` 可表达多种「授权来源」(节选):
| 形式 | 含义 |
| ----------------------------- | --------------------------------------------------------------------------------------- |
| `bit://ip:port` | 集团授权服务地址。 |
| `http://ip:port` | 授权服务中心(如云/E3 等)。 |
| `root://路径` | 仅在该路径下查找授权,效果类似先 `Bit_SetRootPath`。 |
| `lic://文件路径` / 目录 / License 串 | 内存或本地文件加载:`lic://` 可加载文件内容、目录下 `*.lic`、或直接传入 License 串;**多个路径用逗号分隔**(`c.md` 示例为半角 `,`)。 |
| 简写 | 文档示例:`/tmp,/data,127.0.0.1:8273` 等与 `lic://...`/`bit://...` 组合等价写法。 |
**配置优先级(文档)**:同一设置同时存在时 — **环境变量 > 调用 API 传入 > 配置文件**`bit_config.xml`,典型场景详述多 `Server`/`Proxy` 节点)。
---
## 3. 登录模式与标识(`LOGIN_MODE` / `LoginMode`
`Bit_Login` / `Bit_LoginEx``mode` 为**按位组合**。文档列出的典型取值(C 名 / Java 名对应):
| C(示意) | Java(示意) | 语义摘要 |
| -------------------------------------- | --------------------------- | ------------------------------------ |
| `BIT_MODE_LOCAL` | `LOCAL` | 仅本地(单机、BIT-ID、内存授权等)。 |
| `BIT_MODE_REMOTE` | `REMOTE` | 仅远端(云、帐号、集团等)。 |
| `BIT_MODE_AUTO` | `AUTO` | 本地与远端都尝试;**优先级:本地 > 远端**(在已配置远端前提下)。 |
| `BIT_MODE_CACHE` | `CACHE` | 云授权 SN 缓存,便于下次免输 SN。 |
| `BIT_MODE_USB` | `USB` | USB 相关授权。 |
| `LOGIN_MODE_PROCESS` | `PROCESS` | **集团**:按进程占并发点;其它模式无效。 |
| `LOGIN_MODE_SESSION` | `SESSION` | **集团**:更细粒度会话占点。 |
| `LOGIN_MODE_HIGH_PRIORITY` | `HIGH_PR` | **云**:高优先级登录可挤占普通登录。 |
| `LOGIN_MODE_NO_NETWORK` | `NO_NETWORK` | 禁止库联网。 |
| `LOGIN_MODE_CHECK_USERNAME` | `CHECK_USERNAME` | **集团**:设备+用户名才视为同一点。 |
| `LOGIN_MODE_USE_SESSIONID` | `USE_SESSIONID` | `Logout` 不释放点数,由第三方维护心跳。 |
| `LOGIN_MODE_HIGH_PERFORMANCE` | `HIGH_PERFORMANCE` | **集团**:合并请求降负载。 |
| `LOGIN_MODE_PERSISTENT_CONN` | `PERSISTENT_CONN` | **集团**长连接。 |
| `LOGIN_MODE_CREATE_HANDLE_ONLY` | `CREATE_HANDLE_ONLY` | 仅创建句柄,**真正校验推迟到 Query**。 |
| `LOGIN_MODE_CREATE_NEW_HANDLE` | `CREATE_NEW_HANDLE` | 每次唯一句柄,属性互不干扰。 |
| `LOGIN_MODE_MID` / `ACCOUNT` / `GROUP` | `MID` / `ACCOUNT` / `GROUP` | 按设备、帐号、分组名占点等。 |
C 示例中常写作 `LOGIN_MODE(BIT_MODE_REMOTE | LOGIN_MODE_HIGH_PERFORMANCE)` 等形式,即用 `LOGIN_MODE` 宏包装按位或(见 `c.md`)。
**szSN / sn 常见形态(文档)**:云平台 SN`#0` / `#bitid:0` 等形式选 BIT-ID`<口令>` 激活口令;`SN<口令>` 拼接;帐号授权可与密码类参数配合(具体见帐号授权专章)。
---
## 4. API 分组:认证与会话(C 名为主,Java 对照)
| 功能 | C API | Java API(文档) |
| ---------- | ------------------------------------------- | ----------------------------------- |
| 登录 | `Bit_Login`, `Bit_LoginEx` | `login`, `loginEx` |
| 帐号 Token | `Bit_LoginByToken`, `Bit_LoginByTokenEx` | `loginByToken`, `loginByTokenEx` |
| 帐号密码 | `Bit_LoginByPassword` | `loginByPassword` |
| 登出 | `Bit_Logout` | `logout` |
| 浮动迁出 | `Bit_Revoke`(在线/离线迁出、请求码) | `revoke`, `revokeOnline` |
| 删除本机 SN 数据 | `Bit_RemoveSn` | `removeSn` |
| 手动心跳 | `Bit_Heartbeat`(10s 内最多触发一次等说明) | `heartbeat` |
| Session 控制 | `Bit_SessionControl`, `Bit_SetSessionState` | `sessionControl`, `setSessionState` |
---
## 5. API 分组:激活与离线/在线升级
| 功能 | C API | Java`BitAnswer``docs/java.md`) |
| -------- | ----------------------------------------------- | ----------------------------------------------------------------- |
| 在线激活/升级 | `Bit_UpdateOnline` | `void updateOnline(String url, String sn)` |
| 取升级请求串 | `Bit_GetRequestInfo`(绑定类型、设备码 `REQ_TYPE_MID` 等) | `String getRequestInfo(String sn, BindingType type)` |
| 应用升级包 | `Bit_ApplyUpdateInfo` | `String applyUpdateInfo(String updateInfo)` |
| 远程集团应用升级 | `Bit_ApplyUpdateInfoEx` | **`java.md` 未收录**;若需远程集团升级请以随包接口为准 |
| 用请求串换升级码 | `Bit_GetUpdateInfo` | `String getUpdateInfo(String url, String sn, String requestInfo)` |
**典型场景补充**
- **在线**`Bit_UpdateOnline(NULL, sn, application_data)`BIT-ID 可用 `#0` 等形式。
- **离线**:本机 `Bit_GetRequestInfo` → 联网换取 License 串 → 本机 `Bit_ApplyUpdateInfo`;涉密场景可用**设备码**缩短人工传递长度。
- **内存授权**:从离线包取 `<code>`,拼 `lic://...` 作为 `Bit_Login` 的 url,模式 `BIT_MODE_LOCAL`
---
## 6. API 分组:特征项(功能模块与加密点)
| 功能 | C API | Java API(文档) |
| ------------ | ---------------------------------------------- | -------------------------------------- |
| 批量 Query | `Bit_BatchBegin`, `Bit_BatchEnd` | `batchBegin`, `batchEnd` |
| 基础占用/释放 | `Bit_QueryFeature`, `Bit_ReleaseFeature` | `queryFeature`, `releaseFeature` |
| 集团扩展占用 | `Bit_QueryFeatureEx`, `Bit_ReleaseFeatureEx` | `queryFeatureEx`, `releaseFeatureEx` |
| 按名称+版本/队列 | `Bit_QueryFeatureEx2`, `Bit_ReleaseFeatureEx2` | `queryFeatureEx2`, `releaseFeatureEx2` |
| 查存在/有效期(不占点) | `Bit_GetFeatureInfo2`, `Bit_GetFeatureInfoEx2` | `getFeatureInfo2`, `getFeatureInfoEx2` |
| Ticket 信息 | `Bit_GetTicketInfo` | `getTicketInfo` |
| 算法特征 | `Bit_ConvertFeature` | `convertFeature` |
| 密钥特征加解密 | `Bit_EncryptFeature`, `Bit_DecryptFeature` | `encryptFeature`, `decryptFeature` |
| 读写特征值 | `Bit_ReadFeature`, `Bit_WriteFeature` | `readFeature`, `writeFeature` |
文档强调:**集团授权**下 `QueryFeature` / `ReleaseFeature`(及 Ex 系列)需**成对**使用以正确占用/释放并发用户数;`QueryFeatureEx` 支持多种 `mode`(默认非阻塞、尽可能占用、仅检查计数等)。
---
## 7. API 分组:配置项(Data
| 功能 | C API | Java API(文档) |
| ------- | ------------------------------------------- | ----------------------------------- |
| 读 | `Bit_GetDataItem` | `getDataItem` |
| 写/创建 | `Bit_SetDataItem` | `setDataItem` |
| 枚举数量/名称 | `Bit_GetDataItemNum`, `Bit_GetDataItemName` | `getDataItemNum`, `getDataItemName` |
| 删(授权码侧) | `Bit_RemoveDataItem` | `removeDataItem` |
Java 文档对名称/值长度有简要限制说明(如名称最长 128 字节、值 1024 字节量级,以官方为准)。
---
## 8. API 分组:信息查询
`c.md`**「信息获取」** 大节对应。该节除下表外,还包括版本/句柄/诊断等 API(为减少重复,详见 **§10**)。
| 功能 | C API | 说明(摘要) |
| ------- | -------------------- | ------------------------------------------------ |
| 会话信息 | `Bit_GetSessionInfo` | XML 或字段型信息:SN/特征/配置项摘要、服务器时间、授权类型组合、起止日期、离线分钟数等。 |
| 本机/环境信息 | `Bit_GetInfo` | 已激活 SN 列表、特征列表、集团服务器发现、BIT-ID 列表、升级错误详情等。 |
| 集团服务信息 | `Bit_GetServerInfo` | **无需先 Login**;查集团侧授权/特征等 XML。 |
**与 `c.md` 源码块核对**`Bit_GetServerInfo` 小节内的函数名被写成 `Bit_GeServerInfo`(缺字母 `t`),与章节标题不一致,应视为复制/排版笔误;集成时以 **`bitanswer.h`** 为准。
---
## 9. API 分组:借出 / 归还(浮动与集团场景扩展)
文档在 C / Java 接口中均用「借出操作」类章节描述。**C** 名称见下左列;**Java`BitAnswer`** 见 [`docs/java.md`](java.md) 及下表。
| C API | Java 方法(`docs/java.md`) |
| ----------------------------- | ----------------------------------------------------------------------------------------------- |
| `Bit_GetBorrowRequest` | `String getBorrowRequest(String sn, int durationDay)` |
| `Bit_GetBorrowFeatureRequest` | `String getBorrowFeatureRequest(int durationDay, String borrowScope)` |
| `Bit_CheckOutSn` | `void checkOutSn(String url, int featureId)` |
| `Bit_CheckOutSnEx` | `void checkOutSnEx(String url, int featureId, String xmlScope, int durationDays)` |
| `Bit_CheckOut` | `void checkOut(String url, String scope, String featureList, int durationDays)` |
| `Bit_CheckOutFeatures` | `void checkOutFeatures(String url, int[] featureList, int durationDays)` |
| `Bit_CheckIn` | `void checkIn(String url, int featureId)` |
| `Bit_CheckInEx` | `void checkInEx(String url, int featureId, String xmlScope)` |
| `Bit_ApplyBorrowInfo` | `void ApplyBorrowInfo(String borrowInfo)`(文档锚点为大写 `ApplyBorrowInfo`;参数类型应以实际 SDK 的 `String` 为准) |
参数语义、`scope` / `featureList` XML 格式等以原文为准。Java 文档注明 **applyUpdateInfo** 可兼容离线借出串(与 `ApplyBorrowInfo` 重叠场景见原文)。
---
## 10. API 分组:路径、代理、属性与其它工具
对应 `c.md`**「信息获取」** 后半(`Bit_GetVersion` 起)与 **「属性设置」** 全节。常见于部署与诊断:
| C API | 用途摘要 |
| ----------------------------------- | ------------------- |
| `Bit_SetRootPath` | 授权文件根路径。 |
| `Bit_SetProxy` | HTTP/SOCKS 等代理参数。 |
| `Bit_SetLocalServer` | 本地/集团服务发现相关设置(见原文)。 |
| `Bit_GetProductPath` | 产品路径查询。 |
| `Bit_GetVersion` | 库版本。 |
| `Bit_GetLastError` | 上一 API 错误码。 |
| `Bit_GetNextHandle` | 枚举/遍历句柄(见原文)。 |
| `Bit_SetAttr` / `Bit_SetCustomInfo` | 句柄/会话属性与自定义信息。 |
| `Bit_TestBitService` | 探测集团服务等可达性。 |
**Java`docs/java.md`)对应**`int getVersion()` · `String getProductPath()` · `int getLastError()` · `void testBitService(String url, String sn, int featureId)` · `void setRootPath(String rootPath)` · `void setLocalServer(String hostName, int port, int timeout)` · `void setProxy(String hostName, int port, String userId, String password)` · `void setAttr(int type, byte[] pValue)` · `void setCustomInfo(...)``String` / `int` 重载)。**未在 `java.md` 列出**`Bit_GetNextHandle` 的 Java 对等方法(若需遍历句柄请查随包 JNI 或新版文档)。
---
## 附录 AJava `BitAnswer` API(依据 [`docs/java.md`](java.md)
### A.1 类型与构造
| 项 | 说明 |
|----|------|
| **主类** | `BitAnswer`(实例方法;通过 JNI 调用 native,与 C SDK 同库) |
| **构造方法** | `BitAnswer()``BitAnswer(String url, String sn, LoginMode mode)`(便捷构造,等价于再调用 `login` 的用法以官方示例为准) |
| **错误处理** | 多数 API 为 `void` 或返回数据;`int getLastError()` 返回**当前线程**最近一次调用的错误码(成功为 `0`,见 `java.md` |
### A.2 文档中出现的枚举 / 参数类型(用于方法签名)
| 名称 | 用途(节选) |
|------|----------------|
| `LoginMode` | `login` / `loginEx`、构造器第三参数;与 C 侧 `LOGIN_MODE` 按位语义对应,Java 侧为枚举常量(`LOCAL``REMOTE``AUTO``CACHE``USB``PROCESS``SESSION``HIGH_PR``NO_NETWORK``CHECK_USERNAME``USE_SESSIONID``HIGH_PERFORMANCE``PERSISTENT_CONN``CREATE_HANDLE_ONLY``CREATE_NEW_HANDLE``MID``ACCOUNT``GROUP` |
| `BindingType` | `getRequestInfo``EXISTING``LOCAL``USB_STORAGE` |
| `BatchMode` | `batchBegin``BIT_BATCH_MODE_CONTINUE``BIT_BATCH_MODE_BREAK` |
| `SessionType` | `getSessionInfo``XML_TYPE_SN_INFO``XML_TYPE_FEATURE_INFO``XML_TYPE_DATA_INFO``BIT_SERVER_ADDRESS``BIT_SERVER_TIME``BIT_CONTROL_TYPE` 及各日期/次数/离线字段常量(见 `java.md` |
| `InfoType` | `getInfo``BIT_INFO_SERVER_ADDRESS``BIT_INFO_SN``BIT_INFO_SN_FEATURE` 等 |
| `ServerInfoType` | `getServerInfo``BIT_SERVER_INFO_SN``BIT_SERVER_INFO_SN_FEATURE``BIT_SERVER_INFO_SN_LICENSE` 等 |
| `SessionCtlType` | `sessionControl``SESSION_CTL_LOGOUT``SESSION_CTL_CHECK` |
| **`setAttr` 的 type** | `ATTR_HB_RETRY_FAILED_CALLBACK``ATTR_WAIT_TIMEOUT``ATTR_RETRY_COUNT` 等(见 `java.md` |
| **`setCustomInfo` 的 infoId** | `CustomInfo``CUSTOM_CLIENT_ID``CUSTOM_OPTION` 等(`java.md` 列至 `CUSTOM_GROUP_NAME(0xA)` |
### A.3 方法签名全表(与 C 对照)
**认证**
| Java |
|------|
| `void login(String url, String sn, LoginMode mode)` |
| `void loginEx(String url, String sn, int featureId, String xmlScope, LoginMode mode)` |
| `void loginByToken(String url, String token)` |
| `void loginByTokenEx(String url, String businessGuid, String token, String idpGuid, String grantType)` |
| `void loginByPassword(String url, String guid, String secret, String account, String password)` |
| `void logout()` |
| `String revoke(String sn)` |
| `void revokeOnline(String url, String sn)` |
| `void removeSn(String sn)` |
| `int heartbeat()` |
| `String sessionControl(String url, String sessionId, SessionCtlType type)` |
| `void setSessionState(int state, byte[] pReserved)` |
**激活升级**(另见 **§5** 表格)
**特征项**
| Java |
|------|
| `void batchBegin(BatchMode mode)` · `int[] batchEnd()` |
| `int queryFeature(int featureId)` · `int releaseFeature(int featureId)` |
| `int queryFeatureEx(int featureId, int mode, int required, String scope)` · `int releaseFeatureEx(int featureId, int consumed, String scope)` |
| `long queryFeatureEx2(String featureName, int mode, int required, String scope)` · `void releaseFeatureEx2(byte[] ticket, int consumed)` |
| `int getFeatureInfo2(String featureName, String scope)` · `String getFeatureInfoEx2(String featureName, String scope)` |
| `String getTicketInfo(byte[] ticket, int type)``type``BIT_TICKET_TYPR_USERS`,原文档拼写如此) |
| `int convertFeature(int featureId, int para1, int para2, int para3, int para4)` |
| `byte[] encryptFeature(int featureId, byte[] pPlainBuffer)` · `byte[] decryptFeature(int featureId, byte[] pCipherBuffer)` |
| `int readFeature(int featureId)` · `void writeFeature(int featureId, int featureValue)` |
**配置项**
| Java |
|------|
| `byte[] getDataItem(String dataItemName)` · `void setDataItem(String dataItemName, byte[] dataItemValue)` |
| `int getDataItemNum()` · `String getDataItemName(int index)` · `void removeDataItem(String dataItemName)` |
`java.md`:配置项名称最大 128 字节等限制与 C 侧一致。)
**信息获取**
| Java |
|------|
| `String getSessionInfo(SessionType type)` · `String getInfo(String sn, InfoType type)` |
| `String getServerInfo(String url, String sn, String scope, ServerInfoType type)` |
| `int getVersion()` · `void testBitService(String url, String sn, int featureId)` · `String getProductPath()` · `int getLastError()` |
**借出操作**(另见 **§9** 表)
### A.4 与 C 覆盖差异(据 `docs/java.md` 全文)
| C API | Java`docs/java.md` |
|-------|------------------------|
| `Bit_ApplyUpdateInfoEx` | 未收录 |
| `Bit_GetNextHandle` | 未收录 |
**补充**C 侧 `Bit_GetRequestInfo``BINDING_TYPE`**`REQ_TYPE_MID`(设备码)**`java.md``getRequestInfo``BindingType` 中仅列出 `EXISTING``LOCAL``USB_STORAGE`。设备码流程在 Java 是否另有接口,以 **随包 SDK / 更新版 `java.md`** 为准。
### A.5 文档小瑕疵(复制源)
- `loginEx` 说明中「Login 等价于 LoginEx」与 C 页类似,易误解;需包含**指定 featureId** 时用 `loginEx`
- `batchBegin` 正文写「由 **Bit_batchEnd** 提交」应为 **`batchEnd`Java** / **`Bit_BatchEnd`C**。
- `ApplyBorrowInfo` 参数写 `string` 应为 Java **`String`**。
---
## 11. C API 名称索引(供检索)
下列名称与 `c.md` 中全部 `## [Bit_…]` 小节一致,共 **59** 个独立函数(其中 `Bit_CheckOutSn` / `Bit_CheckOutSnEx` 合并在同一文档小节)。若与头文件有出入以 **`bitanswer.h`** 为准:
`Bit_ApplyBorrowInfo` · `Bit_ApplyUpdateInfo` · `Bit_ApplyUpdateInfoEx` · `Bit_BatchBegin` · `Bit_BatchEnd` · `Bit_CheckIn` · `Bit_CheckInEx` · `Bit_CheckOut` · `Bit_CheckOutFeatures` · `Bit_CheckOutSn` · `Bit_CheckOutSnEx` · `Bit_ConvertFeature` · `Bit_DecryptFeature` · `Bit_EncryptFeature` · `Bit_GetBorrowFeatureRequest` · `Bit_GetBorrowRequest` · `Bit_GetDataItem` · `Bit_GetDataItemName` · `Bit_GetDataItemNum` · `Bit_GetFeatureInfo2` · `Bit_GetFeatureInfoEx2` · `Bit_GetInfo` · `Bit_GetLastError` · `Bit_GetNextHandle` · `Bit_GetProductPath` · `Bit_GetRequestInfo` · `Bit_GetServerInfo` · `Bit_GetSessionInfo` · `Bit_GetTicketInfo` · `Bit_GetUpdateInfo` · `Bit_GetVersion` · `Bit_Heartbeat` · `Bit_Login` · `Bit_LoginEx` · `Bit_LoginByPassword` · `Bit_LoginByToken` · `Bit_LoginByTokenEx` · `Bit_Logout` · `Bit_QueryFeature` · `Bit_QueryFeatureEx` · `Bit_QueryFeatureEx2` · `Bit_ReadFeature` · `Bit_ReleaseFeature` · `Bit_ReleaseFeatureEx` · `Bit_ReleaseFeatureEx2` · `Bit_RemoveDataItem` · `Bit_RemoveSn` · `Bit_Revoke` · `Bit_SessionControl` · `Bit_SetAttr` · `Bit_SetCustomInfo` · `Bit_SetDataItem` · `Bit_SetLocalServer` · `Bit_SetProxy` · `Bit_SetRootPath` · `Bit_SetSessionState` · `Bit_TestBitService` · `Bit_UpdateOnline` · `Bit_WriteFeature`
---
## 12. 与mgmt/运营侧 API 的边界
开发者控制台还提供 **[Backoffice API](https://doc.bitanswer.cn/category/docs/backoffice-api/)**(REST/数据结构),用于授权码、用户、业务等**服务端自动化**,与上表**客户端安全库 API** 不同层。若需「控制台可调用的 HTTP API」,请单独以 Backoffice 文档为准。
---
## 13. 免责声明
本文档不替代比特授权云官方文档与随 SDK 发布的法律/技术支持条款;集成与合规问题请咨询官方渠道。
---
## 14. 对照本地备份的审核结论(2026-04-06)
### 14.1 `docs/c.md`
| 项 | 结论 |
|----|------|
| **函数覆盖** | `c.md` 中列出的全部 Bit 客户端 API 均已在本梳理的分组或 §11 索引中覆盖;**无遗漏**。 |
| **章节结构** | 「信息获取」后半与「属性设置」对应 §8 / §10,表头已说明。 |
| **Bit_GetServerInfo** | `c.md` 代码块误写为 `Bit_GeServerInfo`;§8 已注释。 |
| **Bit_LoginEx 说明** | `c.md``featured=0` 等笔误;本梳理未复述。 |
| **多路径分隔符** | 已标明示例为半角 `,`。 |
| **登录模式** | 与 `c.md` 表一致;已补充 `LOGIN_MODE(...)` 宏。 |
| **§11 索引** | 以 `c.md` 小节为对齐基准。 |
### 14.2 `docs/java.md`
| 项 | 结论 |
|----|------|
| **对等性** | `java.md`**`BitAnswer` 实例方法**与 C API 基本全覆盖;**附录 A** 为完整签名与枚举清单。 |
| **缺失相对 C** | `Bit_ApplyUpdateInfoEx``Bit_GetNextHandle``java.md` 中未出现(§A.4)。 |
| **`getServerInfo`** | Java 文档写为 `getServerInfo`;无 C 页 `GeServerInfo` 笔误问题。 |
| **借出** | §9 已按 `java.md` 补全 `checkOut*` / `checkIn*` / `ApplyBorrowInfo` 等 Java 方法表。 |