§ API 指引

终端配置

接入方服务端调用开放平台 API,终端只负责打开本次执行的托管运行链接。 本节说明微信小程序业务域名、原生 APP WebView、摄像头权限和上线验收要求。

当前 AI 测评仅采集摄像头视频,不采集麦克风音频。接入方只配置摄像头权限,不要为本流程申请麦克风。
§ 1

终端接入链路

1第三方业务页发起

终端用户在接入方自己的任务页、订单页或测评入口点击“开始测评”。

2第三方服务端创建执行

接入方服务端换取 access_token,创建 execution,并签发托管运行 entry_url。

3前端只接收 entry_url

小程序或 APP 前端不得持有 api_secret / access_token,只接收本次运行链接。

4WebView 打开托管页面

终端在 https://runtime.lingxiguangnian.com 完成免登录校验并进入平台托管测评页面。

5提交后返回

托管服务全部提交后发送非权威导航事件 MBC_RUNTIME_SUBMITTED;如签发时选择了 APP 预登记 return_url,页面同时显示“返回”,点击时发送 MBC_RUNTIME_RETURN_CLICKED。

6用户主动授权摄像头

进入 AI 测评采集步骤后,由用户点击授权;当前不申请麦克风权限。

7服务端接收结果

接入方服务端通过执行状态、报告 API 或 Webhook 获取完成结果。

平台首个页面:https://runtime.lingxiguangnian.com/open-runtime/{execution_id}#lt=...
§ 2

域名与网络白名单

域名用途微信小程序原生 APP
https://runtime.lingxiguangnian.com终端托管运行页面配置为 web-view 业务域名配置为 WebView 可信来源白名单
https://api.lingxiguangnian.com服务端 Open API由接入方服务端调用,不配置为小程序 request 域名不得由 APP 前端直接携带平台凭据调用
OSS 对象存储域名AI 测评视频存储当前由托管页面走同源上传代理,无需配置当前无需加入终端网络白名单
§ 3

微信小程序配置

  1. 1添加业务域名
    登录微信小程序后台,在“开发 → 开发管理 → 开发设置 → 业务域名”中添加 https://runtime.lingxiguangnian.com。
  2. 2完成域名所有权校验
    接入方下载微信生成的校验 txt 文件并提交给平台;平台部署到运行域名根目录,接入方确认可访问后保存配置。
  3. 3使用 web-view 打开链接
    小程序从自己的服务端取得完整 entry_url,再赋给 web-view 的 src;不得记录、埋点或分享完整链接。
  4. 4补充隐私说明
    在小程序隐私保护指引中说明 AI 测评需要摄像头视频采集;不应声明需要麦克风。
  5. 5完成双端真机验收
    分别在 iOS 微信和 Android 微信验证入口跳转、摄像头授权、录制、上传和返回;开发者工具结果不能替代真机验收。
微信生成的域名校验 txt 必须部署到 https://runtime.lingxiguangnian.com 根目录。 接入方下载原始文件后提交给平台,确认公网可访问,再返回微信后台保存。
<web-view
  src="{{entryUrl}}"
  bindload="onLoad"
  binderror="onError"
/>

// entryUrl 由接入方服务端取得后下发
// 小程序前端不持有 api_secret / access_token
§ 4

原生 APP 配置

Android

  • AndroidManifest.xml 声明 android.permission.CAMERA,并在运行时申请 CAMERA。
  • WebChromeClient.onPermissionRequest() 只允许可信运行域名的 RESOURCE_VIDEO_CAPTURE。
  • 不得直接 grant(request.resources);未知来源或未知资源必须拒绝。

iOS

  • Info.plist 配置 NSCameraUsageDescription,说明用于 AI 测评视频采集。
  • WKUIDelegate 媒体授权回调只允许可信运行域名的 camera 请求。
  • 当前不采集音频,不需要为本流程声明 NSMicrophoneUsageDescription。
§ 5

安全边界

  • api_secret 与 access_token 只保存在接入方服务端,不进入小程序、APP、WebView、URL 或日志。
  • entry_url 含运行令牌,只交给对应终端用户;禁止写入日志、埋点、客服截图或转发渠道。
  • return_url 必须先在 APP 详情登记并精确匹配;不得从终端查询参数动态透传任意地址。
  • Web postMessage 的 targetOrigin 从冻结 return_url 派生,不使用通配符;嵌入页与返回地址建议同源。
  • WebView 只放行 HTTPS 运行域名;摄像头授权必须由用户动作触发,不得静默预授权。
  • 若目标 WebView 不支持 navigator.mediaDevices.getUserMedia,白名单配置不能弥补能力缺失,应改用系统浏览器或另行建设原生采集适配。
§ 6

上线验收

01entry_url 可在目标终端打开,且令牌不会出现在 Referer、前端日志或埋点中。
02首次进入 AI 测评时出现摄像头授权,拒绝后有明确恢复指引。
03摄像头录制、视频上传、完成页和返回路径在 iOS / Android 真机均通过。
04终端全过程未请求麦克风权限。
05接入方服务端能查询执行状态,并通过报告 API 或 Webhook 获得结果。
06WebView 能接收 MBC_RUNTIME_SUBMITTED / MBC_RUNTIME_RETURN_CLICKED,有白名单 return_url 时“返回”按钮可正确回到接入方页面。
必须分别完成 iOS 微信和 Android 微信真机验收。若目标 WebView 不支持 getUserMedia, 域名白名单不能补足浏览器能力,应改用系统浏览器或单独建设原生摄像头采集适配。