当 Android 应用打开 mPaaS小程序出现“网络不给力,请稍后再试”时,应该如何排查问题?
在我们集成 mPaaS 插件并使用小程序的过程中,很多开发者会遇到了打不开小程序的问题,今天就举例说明,开发者在完成基本接入后,尝试打开小程序,如果容器页面显示错误提示“网络不给力,请稍后再试”,应该如何排查。
原因分析
mPaaS 在打开一个小程序应用前,首先需要获知该小程序包的基本信息。
因此客户端会主动通过 mPaaS 的 RPC 接口alipay.client.getUnionResource去拉取离线包信息。如果小程序包信息获取失败(RPC出现异常),小程序容器就会提示错误 “网络不给力,请稍后再试”。
问题排查步骤
1.过滤日志
在AS控制台过log日志信息 RPC Exception;
2.查询异常码描述
如常见原因所述。
客户端需要主动拉取离线包信息,而拉取过程依赖 RPC 请求,如果 RPC 链路存在问题,则无法正常获取离线包信息,导致加载失败。要确认 RPC 请求是否存在问题,需要在 AS 控制台中搜索alipay.client.getUnionResource观察 RPC 请求是否正常返回。如果存在错误,一般的错误代码包括 7XXX 或 3XXX 系列等,例如:
错误码 | 说明 | 示例 |
---|---|---|
7000 | 没有设置公钥 | 移动 APP 中无线保镖中无 appId 对应的密钥或者网关无法获取 appId 对应的签名密钥。 |
7001 | 验签的参数不够 | 网关服务端验证签名不通过。 |
7002 | 验签失败 | 网关服务端验证签名不通过。 |
7003 | 验签-时效性失败 | API 请求入参 ts 时间戳超过系统设置的时间有效性。需要检查客户端时间是否为系统时间。 |
7007 | 验签-缺少 ts 参数 | API 请求缺少验签 ts 参数。 |
7014 | 验签-缺少 sign 参数 | API 请求缺少验签 sign 参数。一般情况下是客户端签名数据失败,导致缺失 sign 参数。请检查客户端无线保镖图片是否正确。 |
3.根据不同异常,解决RPC异常
7000-7002
图片生成有问题,请按照接入Android,重新生成图片,若是专有云环境,需要联系专门的服务人员进行进一步排查。
7003、7007
验签时效问题,可能是手机时间设置与网关服务时间相差超过30分钟导致,检查手机时间。
7014
上传mPaas控制台的APK签名和应用打包签名信息不一致。
针对常见问题RPC7014排查
- 检查上传mPaas控制台的Apk包签名debug环境是否配置
在 app 的 gradle 打包配置信息添加debug和release信息,正常手机运行打的debug环境下,所以要配置debug信息。
- 检查mPaas控制台Android配置信息中Package Name 信息和上传APK文件是否和APP工程一致
工单协助
如果依然不能解决问题,请准备好相关问题的复现 Demo 工程,通过阿里云工单系统联系 mPaaS 售后技术支持。
撰文:刘启洋、刺胃
END
延伸阅读