feat: add native/Java auth SDK, docs, CI, and examples

Made-with: Cursor
This commit is contained in:
hpd840321
2026-04-06 17:42:09 +08:00
commit 3894315759
35 changed files with 4825 additions and 0 deletions
+349
View File
@@ -0,0 +1,349 @@
# 比特授权云:客户端 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 方法表。 |