§ API 指引
终端配置
接入方服务端调用开放平台 API,终端只负责打开本次执行的托管运行链接。 本节说明微信小程序业务域名、原生 APP WebView、摄像头权限和上线验收要求。
当前 AI 测评仅采集摄像头视频,不采集麦克风音频。接入方只配置摄像头权限,不要为本流程申请麦克风。
§ 1
终端接入链路
FLOW1第三方业务页发起
终端用户在接入方自己的任务页、订单页或测评入口点击“开始测评”。
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
域名与网络白名单
DOMAINS| 域名 | 用途 | 微信小程序 | 原生 APP |
|---|---|---|---|
https://runtime.lingxiguangnian.com | 终端托管运行页面 | 配置为 web-view 业务域名 | 配置为 WebView 可信来源白名单 |
https://api.lingxiguangnian.com | 服务端 Open API | 由接入方服务端调用,不配置为小程序 request 域名 | 不得由 APP 前端直接携带平台凭据调用 |
OSS 对象存储域名 | AI 测评视频存储 | 当前由托管页面走同源上传代理,无需配置 | 当前无需加入终端网络白名单 |
§ 3
微信小程序配置
MINI PROGRAM- 1添加业务域名
登录微信小程序后台,在“开发 → 开发管理 → 开发设置 → 业务域名”中添加 https://runtime.lingxiguangnian.com。 - 2完成域名所有权校验
接入方下载微信生成的校验 txt 文件并提交给平台;平台部署到运行域名根目录,接入方确认可访问后保存配置。 - 3使用 web-view 打开链接
小程序从自己的服务端取得完整 entry_url,再赋给 web-view 的 src;不得记录、埋点或分享完整链接。 - 4补充隐私说明
在小程序隐私保护指引中说明 AI 测评需要摄像头视频采集;不应声明需要麦克风。 - 5完成双端真机验收
分别在 iOS 微信和 Android 微信验证入口跳转、摄像头授权、录制、上传和返回;开发者工具结果不能替代真机验收。
微信生成的域名校验 txt 必须部署到
https://runtime.lingxiguangnian.com 根目录。 接入方下载原始文件后提交给平台,确认公网可访问,再返回微信后台保存。MINI PROGRAM · WEB-VIEW
<web-view
src="{{entryUrl}}"
bindload="onLoad"
binderror="onError"
/>
// entryUrl 由接入方服务端取得后下发
// 小程序前端不持有 api_secret / access_token§ 4
原生 APP 配置
NATIVE APPAndroid
- AndroidManifest.xml 声明 android.permission.CAMERA,并在运行时申请 CAMERA。
- WebChromeClient.onPermissionRequest() 只允许可信运行域名的 RESOURCE_VIDEO_CAPTURE。
- 不得直接 grant(request.resources);未知来源或未知资源必须拒绝。
iOS
- Info.plist 配置 NSCameraUsageDescription,说明用于 AI 测评视频采集。
- WKUIDelegate 媒体授权回调只允许可信运行域名的 camera 请求。
- 当前不采集音频,不需要为本流程声明 NSMicrophoneUsageDescription。
§ 5
安全边界
SECURITY- api_secret 与 access_token 只保存在接入方服务端,不进入小程序、APP、WebView、URL 或日志。
- entry_url 含运行令牌,只交给对应终端用户;禁止写入日志、埋点、客服截图或转发渠道。
- return_url 必须先在 APP 详情登记并精确匹配;不得从终端查询参数动态透传任意地址。
- Web postMessage 的 targetOrigin 从冻结 return_url 派生,不使用通配符;嵌入页与返回地址建议同源。
- WebView 只放行 HTTPS 运行域名;摄像头授权必须由用户动作触发,不得静默预授权。
- 若目标 WebView 不支持 navigator.mediaDevices.getUserMedia,白名单配置不能弥补能力缺失,应改用系统浏览器或另行建设原生采集适配。
§ 6
上线验收
ACCEPTANCE01entry_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, 域名白名单不能补足浏览器能力,应改用系统浏览器或单独建设原生摄像头采集适配。