# 前言
开发中心 OpenAPI 是 FinClip 服务端的开放出来的一些核心链路的接口。允许您以编程方式与 FinClip 服务端交互。用于自动执行任务、与其他工具集成并创建自定义工作流程等
# 快速开始
- 在开发中心的个人中心中,选择创建 Personal Access Token
- 勾选当前 Token 需要具备的权限,并创建。注意:请妥善保存创建生成的 Access Token,后续无法找回,只能重置
- 选择下面任意的OpenAPI接口,在请求头嵌入Authorization 的 header,值为: Bearer {PersonalAccessToken}
- 注意:这个header是所有 OpenAPI 接口都需要传的参数
- 注意:这个header是所有 OpenAPI 接口都需要传的参数
# 授权范围
授权范围是OpenAPI权限集
以下是具体的授权范围的说明
授权组 | 授权范围 | 说明 |
---|---|---|
成员管理 | 成员-查看 | 合作成员的查看 |
成员-编辑 | 邀请合作成员 | |
角色-查看 | 查看系统中定义的角色及其权限 | |
角色-编辑 | 编辑角色权限及分配角色给成员 | |
小程序 | 小程序-查看 | 查看小程序的基本信息 |
小程序-编辑 | 编辑小程序的基本设置 | |
小程序版本-查看 | 查看小程序的历史版本信息 | |
小程序版本-编辑 | 发布或更新小程序版本 | |
小程序统一认证 | 管理小程序的统一认证设置 | |
小程序CI | 用于小程序快速上传代码包 & 上架 | |
消息订阅 | 用于小程序模板消息订阅的 | |
应用 | 应用-查看 | 查看应用的基本信息 |
应用-编辑 | 编辑应用的设置 | |
自定义API-查看 | 查看自定义 API 的定义和权限 | |
自定义API-编辑 | 创建、编辑或删除自定义 API | |
自定义菜单-查看 | 查看自定义菜单的设置和配置 | |
自定义菜单-编辑 | 创建、编辑或删除自定义菜单 |
# API
以下的 OpenAPI 接口会以授权范围作为目录,只有拥有了该授权范围的 Personal Access Token 才可以访问具体的接口。
# 1. 通用接口
通用接口指不依赖任何授权范围的 OpenAPI,主要是一些用户账户相关的一些基础功能接口
# 1.1 获取菜单权限树
请求URL
GET /api/v1/open/dev/auth/tree
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 无
示例响应
{ "error": "", "errcode": "OK", "data": { "permissionTree": { // 当前用户的权限树 "childrenIds": [ "" ], "desc": "", "exist": true, "hasPermission": true, "id": "", "itemType": 1, "name": "", "parentId": "" } }, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 2. 成员-查看
# 2.1 获取体验成员列表
请求URL
GET /api/v1/open/dev/trial-user/list
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: query
字段 | 类型 | 含义 |
---|---|---|
keyword | string | 模糊搜索关键字 |
pageNo | int | 页码。从1开始 |
pageSize | int | 每页数量 |
示例响应
{ "error": "", "errcode": "OK", "data": { "items": { "createTime": 1723529917125, // 创建时间。毫秒级时间戳 "updateTime": 1723529917125, // 更新时间。毫秒级时间戳 "userId": "13000000000" // 体验成员的标识 }, "total": 1 // 总数 }, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 2.2 获取账号所属角色列表
请求URL
GET /api/v1/open/dev/account/role/list
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: query
字段 | 类型 | 含义 |
---|---|---|
accountId | string | |
pageNo | int | 页码。从1开始 |
pageSize | int | 每页数量 |
示例响应
{ "error": "", "errcode": "OK", "data": { "items": { "builtinRoleKey": "admin", // 内置角色的key,现有:admin,data_analyst,developer,super_admin 四种 "name": "", // 角色名称 "roleId": "2309190518900000" // 角色id }, "total": 1 }, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 2.3 获取组织成员列表
请求URL
GET /api/v1/open/dev/member/list
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: query
字段 | 类型 | 含义 |
---|---|---|
keyword | string | |
pageNo | int | 页码。从1开始 |
pageSize | int | 每页数量 |
示例响应
{ "error": "", "errcode": "OK", "data": { "members": { "account": "", // 账户名 "accountId": "", // 账户id "createTime": 1, // 创建时间 "email": "", // 邮箱 "isAdmin": 1, // 是否是组织管理员 0=否 1=是 "memberId": "", // 当前账号在组织下的成员id "organId": "", // 组织id "phone": "", // 账户的手机号 "platform": 1, // 哪段的用户。1=开发中心 2=数字中心,这个接口固定会返回1 "roleList": { // 角色列表 "builtinRoleKey": "", "name": "", "roleId": "" }, "status": 1 // 状态 0:正常 1:冻结 }, "total": 1 }, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 3. 成员-编辑
# 3.1 移除组织成员
请求URL
POST /api/v1/open/dev/member/delete
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
memberIds | string[] | 需要移除的成员id |
示例响应
{ "errcode": "", "error": "", "data": {}, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 4. 角色-查看
# 4.1 获取角色下的账号列表
请求URL
GET /api/v1/open/dev/role/account/list
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: query
字段 | 类型 | 含义 |
---|---|---|
roleId | string | 角色id |
pageNo | int | 页码。从1开始 |
pageSize | int | 每页数量 |
示例响应
{ "error": "", "errcode": "OK", "data": { "accounts": { "account": "", // 账户名 "accountId": "", // 账户id "createTime": 1, // 账户创建时间 "email": "", // 邮箱 "phone": "" // 手机号 }, "total": 1 }, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 4.2 获取角色列表
请求URL
GET /api/v1/open/dev/role/list
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: query
字段 | 类型 | 含义 |
---|---|---|
pageNo | int | 页码。从1开始 |
pageSize | int | 每页数量 |
keyword | string | 角色名称模糊搜索关键字 |
示例响应
{ "errcode": "", "error": "", "data": { "items": [ { "name": "", // 角色名 "role_id": "", // 角色id "isBuiltin": false, // 是否内置角色 "accountCount": 1, // 角色下的成员数 "createTime": 1723529917125, "update_time": 1723529917125 } ], "total": 1 }, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 5. 角色-编辑
# 5.1 删除角色
请求URL
POST /api/v1/open/dev/role/delete
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
roleId | string | 角色id |
示例响应
{ "errcode": "", "error": "", "data": {}, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 5.2 账号绑定角色
备注
每次请求进来的都是全量的角色列表,会将旧的关系删除
请求URL
POST /api/v1/open/dev/account/role/binding
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
accountId | string | 账户id |
roleIds | string[] | 拥有的角色id列表 |
示例响应
{ "errcode": "", "error": "", "data": {}, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 5.3 角色中移除账号
请求URL
POST /api/v1/open/dev/role/account/delete
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
accountIds | string[] | 即将移除的成员id列表 |
roleId | string | 角色id |
示例响应
{ "errcode": "", "error": "", "data": {}, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 5.4 绑定账号到角色
备注
每次请求进来的都是增量的成员列表,不会将旧的关系删除
请求URL
POST /api/v1/open/dev/role/account/binding
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
accountIds | string[] | 成员id列表 |
roleId | string | 角色id |
示例响应
{ "errcode": "", "error": "", "data": {}, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 5.5 更新角色
请求URL
POST /api/v1/open/dev/role/update
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
idePermissionTree | Map<string, object> | ide_权限树 |
permissionTree | Map<string, object> | 管理后台 权限树 |
roleId | string | 角色id |
示例响应
{ "errcode": "", "error": "", "data": {}, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 5.6 创建角色
请求URL
POST /api/v1/open/dev/role/create
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
idePermissionTree | Map<string, object> | ide 权限树 |
permissionTree | Map<string, object> | 管理后台 权限树 |
roleName | string | 角色名称 |
示例响应
{ "error": "", "errcode": "OK", "data": { "roleId": "" }, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 6. 小程序-查看
# 6.1 获取小程序列表
请求URL
GET /api/v1/open/dev/mini-apps/list
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: query
字段 | 类型 | 含义 |
---|---|---|
appStatus | string | 多选,逗号分隔。1=已上架 2=未上架 3=已下架 4=不可发布 5=不可用 |
keyword | string | 模糊搜索关键词。小程序名称 |
pageNo | int | 页码。从1开始 |
pageSize | int | 每页数量 |
projectType | string | 多选,逗号分隔。1=小程序 2=小游戏 3=h5 4=小组件 5=低功耗 |
sortType | string | 排序方式 1. created: 创建时间正序 2. -created: 创建时间倒序 3. updated: 更新时间正确 4. -updated: 更新时间倒序 |
示例响应
{ "error": "", "errcode": "OK", "data": { "items": { "appClass": "", // 小程序分类的i18n翻译 "appClassKey": "", // 小程序分类的唯一key "createTime": 1, // 创建时间 "desc": "", // 简述 "displayLang": "zh", "displayStatus": 1, // 1=已上架 2=未上架 3=已下架 4=不可发布 5=不可用 "isForbidden": true, // 是否被禁用 "logo": "", // logo 日志 "miniAppId": "", // 小程序id "name": "", // 小程序名称 "organId": "", // 小程序所属的组织id "organName": "", // 小程序所属的组织名称 "projectType": 1, // 小程序子类型。1=小程序 2=小游戏 3=h5 4=小组件 5=低功耗 "status": 1, // 小程序当前生命周期的状态。1=开发中,未上传代码包 2=上架审核中 3=上架审核已撤回 4=上架审核已通过 5=上架审核已拒绝 6=已上架 7=已下架(开发端主动) 8=已下架(被运营端管理员) 9=开发中,仅上传代码包 10=创建审核中 11=创建审核已撤回 12=创建审核已拒绝 "updateTime": 1 // 更新时间 }, "total": 1 }, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 7. 小程序-编辑
# 7.1 创建小程序
请求URL
POST /api/v1/open/dev/mini-apps/create
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
detailDesc | string | 小程序详细描述 |
logo | string | 小程序logo |
name | string | 小程序名称 |
projectType | int | 小程序子类型。1=小程序 2=小游戏 3=h5 4=小组件 5=低功耗 |
appClassKey | string | 小程序分类 |
desc | string | 小程序简介 |
示例响应
{ "error": "", "errcode": "OK", "data": { "appClass": "", // 小程序分类的i18n翻译 "appClassKey": "", // 小程序分类的唯一key "createBy": "", // 创建人id "createTime": 1, // 创建时间 "creatorAccount": "", // 创建人账户名 "desc": "", // 小程序描述 "detailDesc": "", // 小程序详细描述 "isForbidden": true, // 是否被禁用 "logo": "", // 小程序logo "miniAppId": "", // 小程序id "name": "", // 小程序名称 "organId": "", // 小程序所属组织id "organName": "", // 小程序所属组织名称 "privacySettingType": 1, // 小程序隐私设置情况。0=未设置 1=已设置自定义内容 2=已设置默认内容 "projectType": 1, // 小程序子类型。1=小程序 2=小游戏 3=h5 4=小组件 5=低功耗 "searchable": true, // 是否允许搜索 "status": 1, // 小程序当前生命周期的状态。1=开发中,未上传代码包 2=上架审核中 3=上架审核已撤回 4=上架审核已通过 5=上架审核已拒绝 6=已上架 7=已下架(开发端主动) 8=已下架(被运营端管理员) 9=开发中,仅上传代码包 10=创建审核中 11=创建审核已撤回 12=创建审核已拒绝 "updateTime": 1, // 更新时间 "version": "" // 上架的版本号 }, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 7.2 更新小程序
请求URL
POST /api/v1/open/dev/mini-apps/update
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
name | string | 小程序名称 |
appClassKey | string | 小程序分类的唯一key |
desc | string | 简述 |
detailDesc | string | 小程序详细描述 |
logo | string | logo |
miniAppId | string | 小程序id |
示例响应
{ "errcode": "", "error": "", "data": {}, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 7.3 禁用/启用小程序
请求URL
POST /api/v1/open/dev/mini-apps/forbid
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
isForbidden | bool | 是否禁用 |
miniAppId | string | 小程序id |
示例响应
{ "errcode": "", "error": "", "data": {}, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 7.4 上传小程序logo
请求URL
POST /api/v1/open/dev/mini-apps/logo/upload
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
Content-Type | multipart/form-data |
请求参数 参数位置: body form-data
字段 | 类型 | 含义 |
---|---|---|
file | file | 文件 |
示例响应
{ "error": "", "errcode": "OK", "data": { "netdiskID": "2357371467212229", // 文件id,可以在创建或者更新的时候填写在logo字段 }, "traceid": "c3d1cf08389947dab3623125006eb39c" }
已复制代码
# 7.5 更新小程序隐私设置
请求URL
POST /api/v1/open/dev/mini-apps/privacy-setting/create
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
miniAppId | string | 小程序id |
commitType | int | 提交类型,默认选1。可选值: 1=本小程序开发者承诺并保证,未以任何方式处理用户的任何信息。如后续有处理用户信息,会及时更新《小程序隐私保护指引》 2=本小程序处理了用户信息,将如实填写并及时更新用户信息处理情况 |
示例响应
{ "error": "", "errcode": "OK", "data": { }, "traceid": "c3d1cf08389947dab3623125006eb39c" }
已复制代码
# 8. 小程序版本-查看
# 8.1 获取小程序最新的版本信息
请求URL
GET /api/v1/open/dev/mini-apps/versions/latest
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: query
字段 | 类型 | 含义 |
---|---|---|
miniAppId | string | 小程序id |
示例响应
{ "error": "", "errcode": "OK", "data": { "onlineVersion": { // 线上版信息 "miniAppVersionId": "2329398106793477", // 小程序版本id "miniAppId": "fc2329386816071045", // 小程序id "name": "翻译测试", // 小程序版本快照名称 "logo": "2329064445187589", // 小程序版本快照logo "version": "1.0.0", // 小程序版本号 "desc": "中文简介", // 小程序版本快照描述 "detailDesc": "中文描述", // 小程序版本快照详细描述 "appClassKey": "zixun", // 小程序版本快照分类key "appClass": "资讯", // 小程序版本快照分类key 对应的i18n翻译 "status": 6, // 小程序当前生命周期的状态。1=开发中,未上传代码包 2=上架审核中 3=上架审核已撤回 4=上架审核已通过 5=上架审核已拒绝 6=已上架 7=已下架(开发端主动) 8=已下架(被运营端管理员) 9=开发中,仅上传代码包 10=创建审核中 11=创建审核已撤回 12=创建审核已拒绝 "autoPub": false, // 是否自动发布 "inGrayRelease": false, // 是否在灰度发布中 "miniAppCompiledPackageId": "2329397929420294", // 小程序版本对应的代码包id "isRollback": false, // 是否是回滚的版本 "organId": "2309190519194821", "creatorAccount": "宝树", // 创建者的账户名 "versionDescription": "e", // ide上传代码包的时候的说明 "sequence": 1, // 当前版本是当前小程序第几个版本 "createTime": 1724311579430, // 版本创建时间 "updateTime": 1724311641102, // 版本更新时间 }, "reviewVersion": null, // 审核版信息。字段完全和 onlineVersion 相同 "trailVersion": { // 体验版信息 "miniAppCompiledPackageId": "2329600587148550", "compiledPackageType": 2, "versionEditionStatus": 3, "miniAppId": "fc2329386816071045", "organId": "2309190519194821", "userId": "2309190518932677", "createBy": "2309190518932677", "creatorAccount": "宝树", "sourceFiles": [ ], "versionDescription": "", "createTime": 1724323937836, "version": "4.0.0", "startParams": { "pathAndQuery": "" }, "trialVersionTime": 0, "frameworkInfo": null, "supportFtpkg": true, "versionAuditStatus": 0, "versionAuditStatusRelatedMiniAppVersionId": "" }, "wechatQrcode": null, "uploadedCompiledPackages": true }, "traceid": "1f0ad85c0da74adb9ed5f628ead39731" }
已复制代码
# 8.2 获取小程序代码包列表
请求URL
GET /api/v1/open/dev/mini-apps/compiled-package/list
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: query
字段 | 类型 | 含义 |
---|---|---|
miniAppId | string | 小程序id |
pageNo | int | 页码。从1开始 |
pageSize | int | 每页数量 |
示例响应
{ "error": "", "errcode": "OK", "data": { "items": { "compiledPackageType": 1, // 状态: 1:未被设置为体验版, 2:被设置为体验版 "createBy": "", "createTime": 1, "creatorAccount": "", "frameworkInfo": 1, "miniAppCompiledPackageId": "", // 代码包id "miniAppId": "", // 小程序id "organId": "", // 租户id "sourceFiles": { "encryptPackages": { "fileMd5": "", "fileUrl": "", "filename": "", "ftpkgSha256": "", "ftpkgUrl": "", "independent": true, "name": "", "pages": [ "" ], "root": "" }, "encryptedFileMd5": "", "encryptedFileSha256": "", "encryptedUrl": "", "fileMd5": "", "ftpkgSha256": "", "ftpkgUrl": "", "name": "", "packageConfig": { "fields": { "kind": "" } }, "packages": { "fileMd5": "", "fileUrl": "", "filename": "", "ftpkgSha256": "", "ftpkgUrl": "", "independent": true, "name": "", "pages": [ "" ], "root": "" }, "sourceFileUrl": "", "uploadDate": 1, "url": "" }, "startParams": { "pathAndQuery": "" // 启动参数 }, "trialVersionTime": 1, // 被设置为体验版的时间 "version": "v1.0.0", // 版本号 "versionDescription": "desc" // 版本描述 }, "total": 1 }, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 9. 小程序版本-编辑
# 9.1 更新代码包的页面路径
请求URL
POST /api/v1/open/dev/mini-apps/compiled-package/path-and-query/update
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
miniAppCompiledPackageId | string | 代码包id |
pathAndQuery | string | 体验版 启动路径 |
示例响应
{ "errcode": "", "error": "", "data": {}, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 9.2 回滚小程序版本
请求URL
POST /api/v1/open/dev/mini-apps/versions/rollback
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
miniAppVersionId | string | 小程序版本id |
示例响应
{ "errcode": "", "error": "", "data": {}, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 9.3 取消代码包的体验版
请求URL
POST /api/v1/open/dev/mini-apps/compiled-package/trial/cancel
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
miniAppCompiledPackageId | string | 小程序代码包id |
示例响应
{ "errcode": "", "error": "", "data": {}, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 9.4 设置代码包为体验版
请求URL
POST /api/v1/open/dev/mini-apps/compiled-package/trial/set
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
miniAppCompiledPackageId | string | 小程序代码包id |
示例响应
{ "errcode": "", "error": "", "data": {}, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 9.5 下架小程序线上版
请求URL
POST /api/v1/open/dev/mini-apps/versions/unpublish
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
miniAppVersionId | string | 小程序版本id |
statusReason | string | 下架原因 |
示例响应
{ "errcode": "", "error": "", "data": {}, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 9.6 撤回审核版申请
请求URL
POST /api/v1/open/dev/mini-apps/versions/review/withdraw
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
miniAppVersionId | string | 小程序版本id |
示例响应
{ "errcode": "", "error": "", "data": {}, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 9.7 提交审核版
请求URL
POST /api/v1/open/dev/mini-apps/versions/review/submit
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
operAdminAudit | bool | 是否指定数字端admin审核 |
testInfo | object | 测试信息 |
autoPub | bool | 审核通过后是否自动发布 |
miniAppCompiledPackageId | string | 代码包id |
示例响应
{ "error": "", "errcode": "OK", "data": { "miniAppVersionId": "" }, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 9.8 上架审核版
请求URL
POST /api/v1/open/dev/mini-apps/versions/publish
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
miniAppVersionId | string | 小程序版本id |
示例响应
{ "errcode": "", "error": "", "data": {}, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 10. 小程序统一认证
# 10.1 开发端-小程序统一登录-获取手机号
请求URL
POST /api/v1/open/dev/mini-apps/unified-auth/phone/get
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
appId | string | 小程序id |
code | string |
示例响应
{ "error": "", "errcode": "OK", "data": { "phone": "" }, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 10.2 开发端-小程序统一登录
请求URL
POST /api/v1/open/dev/mini-apps/unified-auth/login
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
code | string | |
appId | string | 小程序id |
示例响应
{ "error": "", "errcode": "OK", "data": { "accessToken": "", "channel": "", // 渠道 "openId": "", "unionId": "" }, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 10.3 开发端-小程序统一登录-获取用户信息
请求URL
POST /api/v1/open/dev/mini-apps/unified-auth/userinfo
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
accessToken | string | |
appId | string | 小程序id |
channel | string | 渠道 |
示例响应
{ "error": "", "errcode": "OK", "data": { "account": "", "email": "", "phone": "" }, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 11. 小程序代码包
# 11.1 小程序代码包上传
请求URL
POST /api/v1/open/dev/mini-apps/compiled-package/upload
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
Content-Type | multipart/form-data |
请求参数 参数位置: body, formdata格式
字段 | 类型 | 含义 |
---|---|---|
file | file | 上传的代码包文件 |
示例响应
{ "error": "", "errcode": "OK", "data": {}, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 11.2 新增小程序代码包对象
请求URL
POST /api/v1/open/dev/mini-apps/compiled-package/build
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
{ "miniAppId": "fc11111111111", // 小程序id "version": "1.0.4", // 小程序版本 "versionRemark": "1.0.4", // 版本说明 "username": "pjf01", // 上传人用户名 "basicPackVer": "", // 保留为空 "packages": [ // 复制ide导出代码包目录的分包目录下的packageConfig.json的内容 { "root": ".", "name": "__APP__", "pages": [ "pages/component/index/index", "pages/API/index/index", "pages/component/view/view", "pages/component/scroll-view/scroll-view" ], "independent": false, "filename": "__APP__.zip" }, { "root": "packageAPI", "name": "34f98750f03c6a2bed1f2f4de2bbb7b9", "pages": [ "packageAPI/pages/get-network-type/get-network-type", "packageAPI/pages/on-network-status-change/on-network-status-change", "packageAPI/pages/get-system-info/get-system-info", "packageAPI/pages/make-phone-call/make-phone-call" ], "independent": false, "filename": "34f98750f03c6a2bed1f2f4de2bbb7b9.zip" } ], "packageConfig": { // 复制ide导出代码包目录的分包目录下的packageExtConfig.json的内容 "isLazyLoading": false, "entryPagePath": "pages/component/index/index" }, "filesFromNetdisk": [ { "name": "app.zip", // 整包文件名 "netdiskID": "2340709818004869" // 步骤2上传的整包返回的网盘id }, { "name": "__APP__.zip", // 分包1文件名 "netdiskID": "2340709821396357" // 步骤2上传的分包1的网盘id }, { "name": "34f98750f03c6a2bed1f2f4de2bbb7b9.zip", // 分包2文件名 "netdiskID": "2340709822559621" // 步骤2上传的分包2的网盘id } ] }
已复制代码
示例响应
{ "error": "", "errcode": "OK", "data": {}, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 12. 小程序消息订阅
# 12.1 获取当前小程序可用的模板
请求URL
GET /api/v1/open/dev/mini-apps/message-delivery/templates/list
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: query
字段 | 类型 | 含义 |
---|---|---|
miniAppId | string | 小程序id |
示例请求
/api/v1/open/dev/mini-apps/message-delivery/templates/list?miniAppId=fcxxxx
已复制代码
示例响应
{ "error": "", "errcode": "OK", "data": { "items": [ { "messageDeliveryTemplateId": "12121", // 模板id "subscribeType": 1, // 订阅类型 1=一次性 2=永久 "title": "template title", // 模板标题 "formatText": "您的订单将于{{orderExpectTime}}时候送达", // 消息模板 "link": "https://xx.com", "desc": "this is desc", "status": 1, // 状态 1=启用 2=禁用 3=数字中心-禁用 "createTime": 1745827165000, "update_time": 1745827165000, "params": [{ "keyword": "orderExpectTime", // 变量关键词 "type": "6", // 参数类型 1=字母 2=符号 3=字符串 4=数字 5=事物 6=时间 7=金额 8=状态 "paramSample": "2025/05/01" }] } ] }, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 12.2 推送小程序消息模板
请求URL
POST /api/v1/open/dev/mini-apps/message-delivery/notify/push
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
{ "miniAppId": "fcxxxxx", // 发起推送的小程序 id "openId": "2696151317266949", // 用户在小程序下的唯一标识 openId,用于标识出是哪个用户。获取方式参考 /api/v1/open/dev/mini-apps/unified-auth/login 接口 "templates": [{ "messageDeliveryTemplateId": "1119892", // 模板 id "channelCodes": ["notify", "sms"], // 推送的应用渠道 "params": [ { "keyword": "orderExpectTime", // 模板的变量 "value": "2025/05/01" // 模板变量对应的值 } ] }] }
已复制代码
示例响应
{ "error": "", "errcode": "OK", "data": {}, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 13. 应用-查看
# 13.1 获取宿主应用列表
请求URL
GET /api/v1/open/dev/host-apps/list
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: query
字段 | 类型 | 含义 |
---|---|---|
pageNo | int | 页码。从1开始 |
pageSize | int | 每页数量 |
示例响应
{ "error": "", "errcode": "OK", "data": { "items": { "bundleIdPublic": true, // bundleId是否对其他团队可见 "createTime": 1, // 创建时间 "desc": "", // 描述 "hostAppId": "", // 宿主应用id "hostAppPublic": true, // 宿主应用是否对其他团队可见 "logo": "", // 宿主应用logo "name": "", // 名称 "organId": "", // 租户id "organName": "", // 租户名称 "owner": "", // 应用所属者 "platform": 1, // 应用平台 1=开发中心 2=数字中心 "source": 1, // 来源 1=开发端当前组织自有应用 2=开发端其他组织创建的应用 3=数字中心 "status": 1, // 状态 1=启用 2=停用 "updateTime": 1 // 更新时间 }, "total": 1 }, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 13.2 开发端-获取宿主应用配置
请求URL
GET /api/v1/open/dev/host-apps/config
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 无
示例响应
{ "error": "", "errcode": "OK", "data": { "activeBundleIdLimitPerHostApp": 1, // 每个宿主应用可以拥有的bundle数量(状态可用) "bundleIdLimitPerHostApp": 1, // 每个宿主应用可以拥有的bundle数量(状态不限) "canConfiguredHostAppPublic": true, // 是否可以配置宿主应用是否对其他团队可见 "remainCreateHostAppCount": 1 // 还可以创建的应用数量 }, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 14. 应用-编辑
# 14.1 创建应用
请求URL
POST /api/v1/open/dev/host-apps/create
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
desc | string | 描述 |
hostAppPublic | bool | 宿主应用是否对其他团队可见 |
logo | string | logo |
name | string | 名称 |
owner | string | 所属企业 |
bundleIdPublic | bool | bundleId是否对其他团队可见 |
示例响应
{ "error": "", "errcode": "OK", "data": { "hostAppId": "" // 应用id }, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 14.2 更新应用
请求URL
POST /api/v1/open/dev/host-apps/update
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
logo | string | logo |
name | string | 名称 |
owner | string | 所属企业 |
bundleIdPublic | bool | bundleId是否对其他团队可见 |
desc | string | 描述 |
hostAppId | string | 宿主应用id |
hostAppPublic | bool | 宿主应用是否对其他团队可见 |
示例响应
{ "errcode": "", "error": "", "data": {}, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 14.3 关联应用和小程序
请求URL
POST /api/v1/open/dev/host-apps/mini-apps/associate
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
hostAppId | string | 宿主应用id |
miniAppIds | string[] | 小程序id列表 |
示例响应
{ "errcode": "", "error": "", "data": {}, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 14.4 更新应用状态
请求URL
POST /api/v1/open/dev/host-apps/change-status
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
status | int | 状态 0-全部 1=启用 2=停用 |
hostAppId | string | 应用id |
示例响应
{ "errcode": "", "error": "", "data": {}, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 14.5 取消关联应用和小程序
请求URL
POST /api/v1/open/dev/host-apps/mini-apps/disassociate
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
hostAppId | string | 宿主应用id |
miniAppIds | string[] | 小程序id |
示例响应
{ "errcode": "", "error": "", "data": {}, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 14.5 上传应用logo
请求URL
POST /api/v1/open/dev/host-apps/logo/upload
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
Content-Type | multipart/form-data |
请求参数 参数位置: body form-data
字段 | 类型 | 含义 |
---|---|---|
file | file | 文件 |
示例响应
{ "error": "", "errcode": "OK", "data": { "netdiskID": "2357371467212229", // 文件id,可以在创建或者更新的时候填写在logo字段 }, "traceid": "c3d1cf08389947dab3623125006eb39c" }
已复制代码
# 15. 自定义API-查看
# 15.1 获取应用API列表
请求URL
GET /api/v1/open/dev/host-apps/apis/list
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: query
字段 | 类型 | 含义 |
---|---|---|
apiCategory | string | 自定义api分类。可选参数,用于过滤 |
hostAppId | string | 应用id |
apiScope | int | api范围 1--公有 2--私有 |
state | int | api状态 0=全部 1=已禁用 2=已启用 |
searchText | string | 模糊搜索文本 |
pageNo | int | 页码。从1开始 |
pageSize | int | 每页数量 |
示例响应
{ "error": "", "errcode": "OK", "data": { "items": { "apiCategory": [ // 分类 "" ], "apiDescription": "", // 描述 "apiManageId": "", // api id "apiName": "", // api 名称 "apiScope": 1, // api范围 1--公有 2--私有 "createTime": 1, // 创建时间 "hostAppId": "", // 所属的应用id "state": 1, // api状态 0=全部 1=已禁用 2=已启用 "updateTime": 1 // 更新时间 }, "total": 1 }, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 16. 自定义API-编辑
# 16.1 开发端-更新宿主应用API
请求URL
POST /api/v1/open/dev/host-apps/apis/update
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
apiCategory | string array | api类型 |
apiDescription | string | api 描述 |
apiManageId | string | api唯一id |
apiName | string | api名称 |
apiScope | object | api范围 1--公有 2--私有 |
示例响应
{ "errcode": "", "error": "", "data": {}, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 16.2 开发端-启用/禁用 自定义API
请求URL
POST /api/v1/open/dev/host-apps/apis/change-status
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
apiManageIds | string[] | api id列表 |
state | int | 可用状态 1--已停用 2--正常 |
示例响应
{ "errcode": "", "error": "", "data": {}, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 16.3 开发端-创建宿主应用API
请求URL
POST /api/v1/open/dev/host-apps/apis/create
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
hostAppId | string | 应用id |
apiCategory | string[] | api类别 |
apiDescription | string | api 描述 |
apiName | string | api名称 |
apiScope | int | api范围 1--公有 2--私有 |
示例响应
{ "error": "", "errcode": "OK", "data": { "apiCategory": [ "" ], "apiDescription": "", "apiManageId": "", "apiName": "", "apiScope": 1, "createTime": 1, "hostAppId": "", "state": 1, "updateTime": 1 }, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 17. 自定义菜单-查看
# 17.1 开发中心-获取自定义菜单分类列表
请求URL
GET /api/v1/open/dev/host-apps/custom-menus/categories
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 无
示例响应
{ "error": "", "errcode": "OK", "data": { "items": [ "" ] }, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 17.2 开发端-获取宿主应用自定义菜单列表
请求URL
GET /api/v1/open/dev/host-apps/custom-menus/list
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: query
字段 | 类型 | 含义 |
---|---|---|
hostAppId | string | 应用id |
示例响应
{ "error": "", "errcode": "OK", "data": { "items": { "category": [ // 菜单分类 "" ], "createTime": 1, // 创建时间 "customMenuId": "", // 菜单id "darkImageUrl": "", // 菜单暗黑模式logo "hostAppId": "", // 所属应用id "imageUrl": "", // 菜单logo "infoId": "", // 菜单info id "isSdkBuiltin": 1, // 是否是内置菜单 1=否 2=是 "name": "", // 菜单名称 "scope": 1, // 范围 1--公有 2--私有 "sortNum": 1, // 菜单排序 "state": 1, // 状态 1--已禁用 2--已启用 "updateTime": 1 // 更新时间 }, "total": 1 }, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 18. 自定义菜单-编辑
# 18.1 开发端-禁用/启用自定义菜单
请求URL
POST /api/v1/open/dev/host-apps/custom-menus/change-status
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
customMenuIds | string[] | 自定义菜单唯一id列表 |
state | int | 状态 1--已禁用 2--已启用 |
示例响应
{ "errcode": "", "error": "", "data": {}, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 18.2 开发端-更新宿主应用自定义菜单
请求URL
POST /api/v1/open/dev/host-apps/custom-menus/update
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
state | Int | 状态 1--已禁用 2--已启用 |
category | string[] | 图标分类 |
customMenuId | string | 菜单id |
darkImageUrl | string | 暗黑模式图片 |
imageUrl | string | 图片 |
infoId | string | 唯一id |
name | string | 名称 |
scope | object | 范围 1=公有 2=私有 |
示例响应
{ "errcode": "", "error": "", "data": {}, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 18.3 开发端-创建宿主应用自定义菜单
请求URL
POST /api/v1/open/dev/host-apps/custom-menus/create
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
scope | int | 范围 1=公有 2=私有 |
category | string[] | 图标分类 |
darkImageUrl | string | 暗黑图片网盘id |
hostAppId | string | |
imageUrl | string | 图片网盘id |
infoId | string | |
name | string |
示例响应
{ "error": "", "errcode": "OK", "data": { "category": [ "" ], "createTime": 1, "customMenuId": "", "darkImageUrl": "", "displayLang": "", "hostAppId": "", "imageUrl": "", "infoId": "", "isSdkBuiltin": 1, "name": "", "scope": 1, "sortNum": 1, "state": 1, "updateTime": 1 }, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 18.4 开发端-排序宿主应用自定义菜单
请求URL
POST /api/v1/open/dev/host-apps/custom-menus/sort
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
customMenuId | string | 菜单id |
示例响应
{ "errcode": "", "error": "", "data": {}, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 18.5 开发端-检查宿主应用自定义菜单是否存在
请求URL
POST /api/v1/open/dev/host-apps/custom-menus/check-exist
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
请求参数 参数位置: body
字段 | 类型 | 含义 |
---|---|---|
checkType | int | 检查类型 1=name 2=infoId |
customMenuId | string | |
hostAppId | string | |
text | string | 检查的文本。根据checkType来决定 |
示例响应
{ "error": "", "errcode": "OK", "data": { "exist": true }, "traceid": "a17b2855affb46c08485937aca8243ef" }
已复制代码
# 18.6 上传自定义菜单logo
请求URL
POST /api/v1/open/dev/host-apps/custom-menus/logo/upload
请求头部
Header | 值 |
---|---|
Authorization | Bearer {PersonalAccessToken} |
Content-Type | multipart/form-data |
请求参数 参数位置: body form-data
字段 | 类型 | 含义 |
---|---|---|
file | file | 文件 |
示例响应
{ "error": "", "errcode": "OK", "data": { "netdiskID": "2357371467212229", // 文件id,可以在创建或者更新的时候填写在logo字段 }, "traceid": "c3d1cf08389947dab3623125006eb39c" }
已复制代码
# 通用错误码
以下定义了一些接口之间通用的错误码字典,用于接口返回值判断和错误排查
errcode 错误码 | 描述 |
---|---|
OK | 成功 |
ECODE_PARAM_ERR | 参数错误。请求的入参不合法,检查请求入参 |
ECODE_UNAUTHORIZED | 未认证。无法识别到用户,检查当前的 PersonalAccessToken 是否正确 |
ECODE_FORBIDDEN | 未授权。当前的 PersonalAccessToken 的对应的权限,不足以访问当前正在访问的接口 |
ECODE_SERVER_ERR | 服务器内部错误。预期外的错误,请携带返回中的traceid向系统管理员反馈 |
ECODE_LICENSE_NOT_SUPPORT_OPEN_API_ERROR | 当前license不支持open-api功能,无法使用 |
OPEN_API_ACCESS_TOKEN_NOT_FOUND_ERR | 当前的 PersonalAccessToken 不存在 |
ECODE_PERSONAL_ACCESS_TOKEN_CROSS_PLATFORM_ERROR | 使用开发中心或者数字中心的 PersonalAccessToken ,访问另一端的接口。 |
ECODE_PERSONAL_ACCESS_TOKEN_OUT_OF_SCOPE | 无法识别到用户,检查当前的 PersonalAccessToken 是否正确 |
ECODE_PERSONAL_ACCESS_TOKEN_OUT_OF_SCOPE | 当前的 PersonalAccessToken 的对应的权限,不足以访问当前正在访问的接口 |