# 器灵 AI 开发者接入 API ## API Docs - 账号与开发者身份 [查询当前账号身份](https://867fas1f7s.apifox.cn/523465446e0.md): 使用账号访问凭证,读取 developer_status;只有 active 可调用自有软件和测试授权管理接口。开发者身份不替代原客户或代理角色。 - 账号与开发者身份 [创建微信扫码登录会话](https://867fas1f7s.apifox.cn/523465447e0.md): 供平台注册/登录使用。将 auth_url 转为二维码,在微信内完成公众号网页授权;再轮询同一 state。SDK 客户端授权码登录不需要调用此接口。 - 账号与开发者身份 [查询微信扫码登录状态](https://867fas1f7s.apifox.cn/523465448e0.md): 每次轮询使用创建会话返回的 state。completed 返回账号 access_token/refresh_token,浏览器还会设置 HttpOnly Cookie。成功响应不可缓存;停止轮询后安全保存凭证。 - 账号与开发者身份 [创建 GitHub 开发者绑定会话](https://867fas1f7s.apifox.cn/523465449e0.md): 先完成平台账号登录,再在浏览器打开 auth_url。GitHub 回调由平台处理,state 一次性使用;绑定是否自动开通取决于平台审核设置。 - 账号与开发者身份 [查询开发者资料和审核状态](https://867fas1f7s.apifox.cn/523465450e0.md): 账号登录后可查询;未绑定时 profile.status=none。提交软件前确认 status=active,审核未通过时读取 review_note。 - 账号与开发者身份 [刷新平台账号会话](https://867fas1f7s.apifox.cn/523465451e0.md): 请求体使用账号 refresh_token;浏览器也可依靠刷新 Cookie,但会校验 Origin。不要传 SDK refresh_token。刷新后重新保存返回凭证;仅在 401 时刷新并重试一次。 - 账号与开发者身份 [退出平台账号会话](https://867fas1f7s.apifox.cn/523465452e0.md): 可传账号刷新凭证或账号 Bearer,浏览器 Cookie 同时清除。退出后宿主还须删除本地安全存储;不要将 SDK 退出请求发到这里。 - 子应用与套餐查询 [初始化子应用品牌和套餐](https://867fas1f7s.apifox.cn/523465453e0.md): 正式 App Key 查询可售品牌和套餐,无需登录。测试 App Key 必须通过 X-Qiling-Test-License 请求头传测试授权码;普通请求不能读取未上架软件。测试响应不可缓存,购买/续费开关为 false。 - 子应用与套餐查询 [查询站点软件与套餐](https://867fas1f7s.apifox.cn/523465454e0.md): site_code 默认为主站 platform;已有授权时使用授权所属站点。可按 app_key、category、keyword 筛选。查询测试套餐同时传测试 App Key 与 X-Qiling-Test-License,返回所选套餐快照,禁止真实购买。 - 子应用与套餐查询 [生成分站推广归属凭据](https://867fas1f7s.apifox.cn/523465455e0.md): 可选推广接入接口,使用 site_code 和推荐人/活动标识生成归属凭据。授权已绑定站点时以授权所属站点为准。 - 软件续费与支付 [创建软件续费或升级支付二维码](https://867fas1f7s.apifox.cn/523465456e0.md): 路径保留 mediacore 历史名称,当前平台可配置为微信 Native 直连。SDK 会话只允许 entitlement_mode=renew 且 renew_license_id=当前 license.id,使用授权所属 site_code。不要提交客户端计算的金额;价格由服务端决定。测试授权禁止付款。 - 软件续费与支付 [查询当前用户的支付订单状态](https://867fas1f7s.apifox.cn/523465457e0.md): 二维码显示后轮询订单状态。SDK 只能查询自己当前授权的续费订单,不能查他人订单。completed 后重新校验授权以更新到期时间/额度。不要仅凭扫码动作判断付款成功。 - 开发者软件管理 [列出自己的软件](https://867fas1f7s.apifox.cn/523465458e0.md): 只返回当前开发者拥有的软件,包含工作套餐;未上架草稿不出现在公开商品目录。 必须使用已开通(active)的开发者账号凭证,仅能操作自己的资源。 - 开发者软件管理 [创建软件草稿](https://867fas1f7s.apifox.cn/523465459e0.md): 英文标识显式必填且唯一;初始 status=inactive、review_status=draft。保存不等于上架,可立即按已保存套餐生成测试授权。 必须使用已开通(active)的开发者账号凭证,仅能操作自己的资源。 - 开发者软件管理 [查看自己的软件详情](https://867fas1f7s.apifox.cn/523465460e0.md): 使用创建软件返回的 id;不能读取其他开发者的软件。返回的 plans 是当前工作套餐,可能包含尚未审核的修改。 必须使用已开通(active)的开发者账号凭证,仅能操作自己的资源。 - 开发者软件管理 [保存软件与套餐修改](https://867fas1f7s.apifox.cn/523465461e0.md): 完整提交软件编辑表单,不能只发单个字段。上架后不能改英文标识;在售套餐修改进入待审版本,正式价格和客户权益保持已通过版本。 必须使用已开通(active)的开发者账号凭证,仅能操作自己的资源。 - 开发者软件管理 [提交软件上架审核](https://867fas1f7s.apifox.cn/523465462e0.md): 至少保存一个有效套餐并填写 https 下载/访问地址。平台审核并定价后才进入正式销售;在售套餐编辑会自动进入复审,不重复调用本接口。 必须使用已开通(active)的开发者账号凭证,仅能操作自己的资源。 - 开发者软件管理 [撤回待审核软件或套餐修改](https://867fas1f7s.apifox.cn/523465463e0.md): 只允许撤回 pending 提交。在售软件撤回待审改动后继续按已审核套餐销售;未上架软件返回草稿状态。 必须使用已开通(active)的开发者账号凭证,仅能操作自己的资源。 - 开发者软件管理 [上传软件封面图片](https://867fas1f7s.apifox.cn/523465464e0.md): 使用 multipart/form-data 的 file 字段上传图片;将返回的 url 写入 image_url 或 carousel_images。文件类型与大小由服务端校验。 必须使用已开通(active)的开发者账号凭证,仅能操作自己的资源。 - 开发者软件管理 [上传软件轮播图片](https://867fas1f7s.apifox.cn/523465465e0.md): 使用 multipart/form-data 的 file 字段上传图片;将返回的 url 写入 image_url 或 carousel_images。文件类型与大小由服务端校验。 必须使用已开通(active)的开发者账号凭证,仅能操作自己的资源。 - 开发者订单与收入 [查看开发者工作台统计](https://867fas1f7s.apifox.cn/523465466e0.md): 只汇总自有软件和对应收入,近 30 天统计仅计已完成订单。 必须使用已开通(active)的开发者账号凭证,仅能操作自己的资源。 - 开发者订单与收入 [查看自有软件订单](https://867fas1f7s.apifox.cn/523465467e0.md): 返回开发者结算基准和净收入,不返回平台内部定价/其他分站收益。earning_status 与订单支付状态分开判断。 必须使用已开通(active)的开发者账号凭证,仅能操作自己的资源。 - 开发者订单与收入 [查看订单收入与月度结算日期](https://867fas1f7s.apifox.cn/523465468e0.md): 默认每月 15 日结算上个月支付订单的开发者收入,具体读取 summary.settlement_day。累计收入包含待结算部分,available 只含已到结算日的收入并扣除提现占用;退款订单不计可提现。 必须使用已开通(active)的开发者账号凭证,仅能操作自己的资源。 - 开发者提现 [查看提现账户与申请记录](https://867fas1f7s.apifox.cn/523465469e0.md): 金额单位元;account=null 时先上传收款码并保存账户。available 是提交提现的最高限额,不能把 earned 当成可提现余额。 必须使用已开通(active)的开发者账号凭证,仅能操作自己的资源。 - 开发者提现 [提交开发者提现申请](https://867fas1f7s.apifox.cn/523465470e0.md): 先绑定账户,金额不能超过 available 且满足 min_amount。手续费按分四舍五入,实际到账=amount-fee_amount;服务端在资金锁内重算,客户端试算不能替代服务端结果。退款处理或余额变更可使申请失败。 必须使用已开通(active)的开发者账号凭证,仅能操作自己的资源。 - 开发者提现 [保存开发者收款账户](https://867fas1f7s.apifox.cn/523465471e0.md): 收款码必须先通过当前用户的私有上传接口取得,不允许直接填外部二维码。实名姓名与地址由平台保存。 必须使用已开通(active)的开发者账号凭证,仅能操作自己的资源。 - 开发者提现 [上传私有收款二维码](https://867fas1f7s.apifox.cn/523465472e0.md): multipart/form-data 上传 file。返回的私有 URL 只允许有权限的用户访问,不可作为公开软件图片。 必须使用已开通(active)的开发者账号凭证,仅能操作自己的资源。 - SDK 授权登录 [授权码登录并绑定设备](https://867fas1f7s.apifox.cn/523465473e0.md): 使用 App Key 与用户授权码,无需平台账号 Bearer。device_id 必须稳定。首次有效登录绑定设备并开始时长/额度套餐计时;返回 SDK 凭证、品牌、套餐及功能权益。设备超限时不得不断更换设备 ID 重试。 - SDK 授权登录 [校验当前设备的授权与权益](https://867fas1f7s.apifox.cn/523465474e0.md): Authorization: Bearer sdk_token;app_key 与 device_id 必须与登录会话一致。校验不会重新签发凭证。先检查 valid,再逐项检查 entitlements 的 valid/reason;null 到期时间不能直接判定永久。 - SDK 额度扣减 [扣减指定功能权益额度](https://867fas1f7s.apifox.cn/523465475e0.md): 使用 SDK Bearer,amount 为正整数。feature_code 必须匹配 entitlements;旧版无功能行的授权使用 default。服务端在事务内同时校验功能及总额度;409 时整次扣减回滚。支持任何配置了额度的套餐。 - SDK AI 能力 [调用文本对话](https://867fas1f7s.apifox.cn/523465476e0.md): 使用正式 SDK 授权;响应含 content 和 token 用量。 套餐须允许 AI,设备有效且额度充足;模型、限流与扣减由平台控制。测试授权始终拒绝真实 AI。 - SDK AI 能力 [调用文本翻译](https://867fas1f7s.apifox.cn/523465477e0.md): 请求字段 from 表示源语言,to 表示目标语言。 套餐须允许 AI,设备有效且额度充足;模型、限流与扣减由平台控制。测试授权始终拒绝真实 AI。 - SDK AI 能力 [调用图像生成](https://867fas1f7s.apifox.cn/523465478e0.md): 响应 data 为图像服务返回结果,图片格式取决于平台服务配置。 套餐须允许 AI,设备有效且额度充足;模型、限流与扣减由平台控制。测试授权始终拒绝真实 AI。 - SDK 会话管理 [刷新 SDK 授权会话](https://867fas1f7s.apifox.cn/523465482e0.md): 请求体使用 SDK refresh_token,不使用账号刷新接口。会话刷新只延续登录状态,不延长软件到期时间或增加额度;设备移除、测试停用/重置及身份停用后不能继续刷新。 - SDK 会话管理 [退出 SDK 授权会话](https://867fas1f7s.apifox.cn/523465483e0.md): 可传 SDK refresh_token 或 SDK Bearer;退出后清空宿主的访问/刷新凭证和授权缓存。服务端失败时仍可本地清理,但不能声称服务端已撤销。 - 上架前开发调试 [列出软件测试授权](https://867fas1f7s.apifox.cn/523465484e0.md): 只允许软件所有者读取;凭据响应不可缓存。保留历史状态 active、disabled、expired。 必须使用已开通(active)的开发者账号凭证,仅能操作自己的资源。 - 上架前开发调试 [生成或重置草稿套餐测试授权](https://867fas1f7s.apifox.cn/523465485e0.md): 选择已保存的工作套餐 plan_code,生成独立测试 App Key/授权码。调试窗口 7 天,同一套餐重置会撤销旧授权、设备和会话。权益保留生成时快照;测试不能购买、续费、调用真实 AI 或领取业务奖励。 必须使用已开通(active)的开发者账号凭证,仅能操作自己的资源。 - 上架前开发调试 [停用软件测试授权](https://867fas1f7s.apifox.cn/523465486e0.md): 软件所有者主动停用测试授权,已有设备与 SDK 会话立即撤销;不会停用正式客户授权。 必须使用已开通(active)的开发者账号凭证,仅能操作自己的资源。 - 设备绑定与授权校验 [激活授权设备](https://867fas1f7s.apifox.cn/523495164e0.md): 使用 customer 角色的平台账号凭证,根据 product_slug 为当前账号的授权绑定设备,并启动首次使用计时。该接口持续可用;授权码登录流程也能自动绑定设备,但不替代本接口。 - 设备绑定与授权校验 [验证设备授权](https://867fas1f7s.apifox.cn/523495165e0.md): 使用 customer 角色的平台账号凭证,根据 product_slug 和 device_id 检查当前账号的设备授权。设备未激活时返回 valid=false。已有账号登录流程可以继续使用本接口。 - 设备绑定与授权校验 [解除设备绑定](https://867fas1f7s.apifox.cn/523495166e0.md): 使用 customer 角色的平台账号凭证;product_slug 为必填查询参数。解除当前账号授权下指定设备,撤销该设备会话,成功返回 HTTP 204 无响应体。SDK Bearer 不能调用此账号接口。 ## Schemas - [AccountProfileReply](https://867fas1f7s.apifox.cn/319764419d0.md): - [AccountSessionReply](https://867fas1f7s.apifox.cn/319764420d0.md): - [AiChatMessage](https://867fas1f7s.apifox.cn/319764421d0.md): - [AiChatReply](https://867fas1f7s.apifox.cn/319764422d0.md): - [AiChatRequest](https://867fas1f7s.apifox.cn/319764423d0.md): - [AiImageReply](https://867fas1f7s.apifox.cn/319764424d0.md): - [AiImageRequest](https://867fas1f7s.apifox.cn/319764425d0.md): - [AiQuotaReply](https://867fas1f7s.apifox.cn/319764426d0.md): - [AiTranslateReply](https://867fas1f7s.apifox.cn/319764427d0.md): - [AiTranslateRequest](https://867fas1f7s.apifox.cn/319764428d0.md): - [ApiError](https://867fas1f7s.apifox.cn/319764429d0.md): - [AttributionReply](https://867fas1f7s.apifox.cn/319764430d0.md): - [AttributionRequest](https://867fas1f7s.apifox.cn/319764431d0.md): - [Body_upload_developer_product_image_api_v1_developer_uploads_product_carousel_post](https://867fas1f7s.apifox.cn/319764432d0.md): - [Body_upload_developer_product_image_api_v1_developer_uploads_product_image_post](https://867fas1f7s.apifox.cn/319764433d0.md): - [Body_upload_developer_withdrawal_qr_api_v1_developer_uploads_withdrawal_qr_post](https://867fas1f7s.apifox.cn/319764434d0.md): - [BootstrapReply](https://867fas1f7s.apifox.cn/319764435d0.md): - [ChatDataReply](https://867fas1f7s.apifox.cn/319764436d0.md): - [ChatUsageReply](https://867fas1f7s.apifox.cn/319764437d0.md): - [DeveloperDeliveryPayload](https://867fas1f7s.apifox.cn/319764438d0.md): - [DeveloperIdentityReply](https://867fas1f7s.apifox.cn/319764439d0.md): - [DeveloperOrderList](https://867fas1f7s.apifox.cn/319764440d0.md): - [DeveloperOrderReply](https://867fas1f7s.apifox.cn/319764441d0.md): - [DeveloperPlanPayload](https://867fas1f7s.apifox.cn/319764442d0.md): - [DeveloperProductList](https://867fas1f7s.apifox.cn/319764443d0.md): - [DeveloperProductPayload](https://867fas1f7s.apifox.cn/319764444d0.md): - [DeveloperProductReply](https://867fas1f7s.apifox.cn/319764445d0.md): - [DeveloperProfileReply](https://867fas1f7s.apifox.cn/319764446d0.md): - [DeveloperTestLicensePayload](https://867fas1f7s.apifox.cn/319764447d0.md): - [DeviceActivateRequest](https://867fas1f7s.apifox.cn/319764448d0.md): - [EarningReply](https://867fas1f7s.apifox.cn/319764449d0.md): - [DeviceLicenseReply](https://867fas1f7s.apifox.cn/319788469d0.md): - [EarningsReply](https://867fas1f7s.apifox.cn/319764450d0.md): - [EarningsSummaryReply](https://867fas1f7s.apifox.cn/319764451d0.md): - [GithubBindingReply](https://867fas1f7s.apifox.cn/319764452d0.md): - [ImageDataReply](https://867fas1f7s.apifox.cn/319764453d0.md): - [LicenseVerifyRequest](https://867fas1f7s.apifox.cn/319764455d0.md): - [MediaCorePaymentCreate](https://867fas1f7s.apifox.cn/319764456d0.md): - [OverviewReply](https://867fas1f7s.apifox.cn/319764457d0.md): - [PaymentCreateReply](https://867fas1f7s.apifox.cn/319764458d0.md): - [PaymentStatusReply](https://867fas1f7s.apifox.cn/319764459d0.md): - [QuotaReply](https://867fas1f7s.apifox.cn/319764460d0.md): - [RefreshSessionRequest](https://867fas1f7s.apifox.cn/319764461d0.md): - [SdkAppReply](https://867fas1f7s.apifox.cn/319764462d0.md): - [SdkCurrentDevice](https://867fas1f7s.apifox.cn/319764463d0.md): - [SdkDeviceReply](https://867fas1f7s.apifox.cn/319764464d0.md): - [SdkEntitlementReply](https://867fas1f7s.apifox.cn/319764465d0.md): - [SdkLicenseCheckRequest](https://867fas1f7s.apifox.cn/319764466d0.md): - [SdkLicenseLoginRequest](https://867fas1f7s.apifox.cn/319764467d0.md): - [SdkLicenseReply](https://867fas1f7s.apifox.cn/319764468d0.md): - [SdkPlanReply](https://867fas1f7s.apifox.cn/319764469d0.md): - [SdkProductReply](https://867fas1f7s.apifox.cn/319764470d0.md): - [SdkQuotaConsumeRequest](https://867fas1f7s.apifox.cn/319764471d0.md): - [SdkRefreshReply](https://867fas1f7s.apifox.cn/319764472d0.md): - [SdkSessionReply](https://867fas1f7s.apifox.cn/319764473d0.md): - [SdkSessionUser](https://867fas1f7s.apifox.cn/319764474d0.md): - [SdkSiteReply](https://867fas1f7s.apifox.cn/319764475d0.md): - [SdkStorefrontReply](https://867fas1f7s.apifox.cn/319764476d0.md): - [SdkSupportReply](https://867fas1f7s.apifox.cn/319764477d0.md): - [SessionUser](https://867fas1f7s.apifox.cn/319764478d0.md): - [SuccessReply](https://867fas1f7s.apifox.cn/319764479d0.md): - [TestLicenseList](https://867fas1f7s.apifox.cn/319764480d0.md): - [TestLicenseReply](https://867fas1f7s.apifox.cn/319764481d0.md): - [TranslateDataReply](https://867fas1f7s.apifox.cn/319764482d0.md): - [UploadReply](https://867fas1f7s.apifox.cn/319764483d0.md): - [WechatLoginSessionRequest](https://867fas1f7s.apifox.cn/319764484d0.md): - [WechatSessionReply](https://867fas1f7s.apifox.cn/319764485d0.md): - [WechatStatusReply](https://867fas1f7s.apifox.cn/319764486d0.md): - [WithdrawalAccountPayload](https://867fas1f7s.apifox.cn/319764487d0.md): - [WithdrawalAccountReply](https://867fas1f7s.apifox.cn/319764488d0.md): - [WithdrawalReply](https://867fas1f7s.apifox.cn/319764489d0.md): - [WithdrawalRequestPayload](https://867fas1f7s.apifox.cn/319764490d0.md): - [WithdrawalsReply](https://867fas1f7s.apifox.cn/319764491d0.md):