mPaaS 小程序提示“网络不给力,请稍后再试”

问题描述

Android 开发者在完成小程序接入后,尝试在应用中打开小程序时,容器页面显示错误提示“网络不给力,请稍后再试”。

常见原因

mPaaS 在打开一个小程序应用前,首先需要获知该小程序包的基本信息,因此客户端会主动通过 mPaaS 的 RPC 接口 alipay.client.getUnionResource 去拉取离线包信息。如果小程序包信息获取失败(RPC 出现异常),小程序容器就会提示错误 “网络不给力,请稍后再试”。

问题排查步骤

  1. 过滤日志。 在 Android Studio 控制台过滤日志信息中的 RPC Exception 字段。

  2. 查询异常码描述。 如 常见原因 所述,客户端需要主动拉取离线包信息,而拉取过程依赖 RPC 请求。如果 RPC 链路存在问题,则无法正常获取离线包信息,导致加载失败。要确认 RPC 请求是否存在问题,需要在 Android Studio 控制台中搜索 alipay.client.getUnionResource 观察 RPC 请求是否正常返回。如果存在错误,一般的错误代码包括 7XXX 系列等,例如:

    错误码

    说明

    示例

    7000

    没有设置公钥

    移动 App 的无线保镖中无 appId 对应的密钥。

    7001

    验签的参数不够

    网关服务端验证签名不通过。

    7002

    验签失败

    网关服务端验证签名不通过。

    7003

    验签-时效性失败

    API 请求入参 ts 时间戳超过系统设置的时间有效性限制。

    7007

    验签-缺少 ts 参数

    API 请求缺少验签 ts 参数。

    7014

    验签-缺少 sign 参数

    API 请求缺少验签 sign 参数。

  3. 根据不同异常,解决RPC异常。

    • 7000-7002 代表图片生成有问题,请按照接入 Android 步骤重新生成图片,若是专有云环境,需要联系专门的服务人员进行进一步排查。

    • 7003、7007 代表验签时效问题,可能是手机时间设置与网关服务时间相差超过 30 分钟导致,需检查手机时间。

    • 7014 代表上传 mPaas 控制台的 APK 签名和应用打包签名信息不一致。排查方法如下:

      1. 检查上传 mPaas 控制台的 APK 包签名 debug 环境是否已配置。 在 App 的 gradle 打包配置信息中添加 debug 和 release 信息。正常手机运行在打 debug 包环境下,所以要配置 debug 信息。

         signingConfigs{
        
             debug{
                 keyAlias 'key0'
                 keyPassword '123456'
                 storeFile file('D:/project/signFile/xx.jks')
                 storePassword '123456'
             }
        
             release{
                 keyAlias 'key0'
                 keyPassword '123456'
                 storeFile file('D:project/signFile/xxx.jks')
                 storePassword '123456'
             }
         }
      2. 检查 mPaas 控制台 Android 配置信息中 Package Name 信息和上传 APK 文件是否和 App 工程一致。

工单协助

如果依然不能解决问题,请准备好相关问题的复现 Demo 工程,搜索群号 41708565 加入钉钉群进行咨询。