更新时间:2020-09-17 16:07
开发者在完成基本接入后,尝试打开 H5 应用,但容器页面显示错误提示“系统繁忙,请稍后再试”,如下图:
mPaaS 框架在打开一个 H5 应用前,首先需要获知该应用离线包的基本信息,因此客户端会主动通过 RPC 接口 alipay.client.getUnionResource
去拉取离线包信息。如果离线包信息获取失败,或没有命中要打开的目标应用,容器会提示错误 “系统繁忙,请稍后再试”。
针对这类问题,排查方向包括:检查 RPC 请求是否正常、检查环境和离线包发布是否匹配等。
如 常见原因 所述,客户端需要主动拉取离线包信息,而拉取过程依赖 RPC 请求,如果 RPC 链路存在问题,则无法正常获取离线包信息,导致加载失败。要确认 RPC 请求是否存在问题,需要在 Xcode 控制台中搜索 alipay.client.getUnionResource
观察 RPC 请求是否正常返回。如果存在错误,一般的错误代码包括 7XXX 或 3XXX 系列等,例如:
正常返回样例(result-status
为 1000
):
Demo[83767:2555863] [mPaaSLog] APMobileNetwork alipay.client.getUnionResource resp:{
"Content-Encoding" = gzip;
"Content-Type" = "text/plain;charset=UTF-8";
Date = "Tue, 11 Aug 2020 05:01:37 GMT";
Vary = "Accept-Encoding";
"mgw-traceid" = 0a1cfd401597122097726853822435;
"result-status" = 1000;
"server-time" = 1597122097739;
}
错误返回样例(result-status
不为 1000
):
Demo[83383:2546279] [mPaaSLog] APMobileNetwork alipay.client.getUnionResource resp:{
"Content-Length" = 0;
"Content-Type" = "text/plain;charset=UTF-8";
Date = "Tue, 11 Aug 2020 04:50:08 GMT";
memo = "%E9%AA%8C%E7%AD%BERPC%E6%8E%A5%E5%8F%A3%20%E5%8A%A0%E7%AD%BE%E6%95%B0%E6%8D%AE%E4%B8%BA%E7%A9%BA";
"mgw-traceid" = 0a1d7667159712140890222728553;
"result-status" = 7014;
"server-time" = 1597121408902;
tips = "%E9%AA%8C%E7%AD%BERPC%E6%8E%A5%E5%8F%A3%20%E5%8A%A0%E7%AD%BE%E6%95%B0%E6%8D%AE%E4%B8%BA%E7%A9%BA";
}
参考文档 网关结果码说明,7XXX 类错误均与 RPC 请求的签名验证过程有关,常见错误代码及原因如下:
7000 | 没有设置公钥 | 移动 APP 中无线保镖中无 appId 对应的密钥或者网关无法获取 appId 对应的签名密钥。 |
---|---|---|
7001 | 验签的参数不够 | 网关服务端验证签名不通过。 |
7002 | 验签失败 | 网关服务端验证签名不通过。 |
7003 | 验签-时效性失败 | API 请求入参 ts 时间戳超过系统设置的时间有效性。需要检查客户端时间是否为系统时间。 |
7007 | 验签-缺少 ts 参数 | API 请求缺少验签 ts 参数。 |
7014 | 验签-缺少 sign 参数 | API 请求缺少验签 sign 参数。一般情况下是客户端签名数据失败,导致缺失 sign 参数。请检查客户端无线保镖图片是否正确。 |
Bundle ID
与 iOS 工程是否完全一致,包括:Bundle ID
:Bundle ``Indentifier
:Info.plist
的 Bundle Indentifier
:.config
文件内容与项目中的 meta.config
是否完全一致:.config
文件:meta.config
文件:.config
文件,通过 mPaaS Extension 插件重新导入:RPC 3XXX 系列错误处理方法仅针对专有云开发者。公有云(aliyun.com)开发者请忽略。
网关开启数据加密(控制台 > 后台服务管理 > 移动网关 > 网关管理 Tab 页 > 数据加密)后,若客户端数据加密未配置或配置错误,alipay.client.getUnionResource
RPC 请求可能会返回 3XXX 系列错误,例如:
3001 | 请求数据为空 | 客户端请求数据中的 requestData 为空。请检查客户端 RPC 是否正常,iOS 端需确认已初始化网关服务 。 |
---|---|---|
3002 | 数据格式有误 | RPC 请求格式有问题。专有云用户可以在服务端日志 gateway-error.log 中查看详细信息。 |
3003 | 数据解密失败 | 数据解密失败。 |
基本排查动作
如 常见原因 所述,客户端需要主动拉取离线包信息,在 RPC 请求正常返回的前提下,如果服务端没有返回目标离线包的信息,也会导致加载失败的错误,错误原因为离线包 AppNotExist
不存在。
基本检查动作:
alipay.client.getUnionResource
RPC 请求是否可以正常返回。AppNotExist
,确认问题根因是否为找不到目标 H5 App,例如:worksapceId
、appId
、mpaasapi
等元数据:控制台和 meta.config
中的相关配置要完全一致,如果不一致,需要重新下载 .config
文件并导入。info.plist
中的 Produc Version
字段,而不是 Xcode 项目 version
,这里需要开发者手动同步。AppNotExist
类错误是否得到解决。如果依然不能解决问题,请准备好相关问题的复现 Demo 工程,通过阿里云工单系统联系 mPaaS 售后技术支持。
在文档使用中是否遇到以下问题
更多建议
匿名提交