You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native IAP Android13支付报错:应用未配置Google Play计费

Android 13设备Google Play支付E_DEVELOPER_ERROR排查方案

核心问题定位

报错E_DEVELOPER_ERROR(responseCode 5)且提示签名问题,说明Google Play Billing服务验证应用签名失败——虽然getProduct接口能正常调用,但支付环节的签名校验逻辑更严格,Android 13系统对此的校验标准也有升级。

具体排查步骤

  • 确认应用签名完全匹配
    • 测试设备上安装的APK签名,必须与Google Play Console中应用的发布签名证书完全一致。Android 13会严格校验签名指纹,使用调试签名打包的APK即便添加了测试账号,也无法通过支付环节的校验。
    • 可通过命令keytool -printcert -jarfile 你的APK文件路径查看APK的签名指纹,对比Google Play Console「应用签名」页面的SHA-1/SHA-256值。
  • 检查Google Play Console测试配置
    • 确认许可测试账号已添加到「应用内商品 > 许可测试」页面,且状态为「已启用」。注意测试账号需为普通Google账号,避免使用应用开发者账号的所有者/管理员账号(部分场景下会存在权限冲突)。
    • 确保待支付的应用内商品状态为「活跃」,且已关联到当前测试的应用版本。
  • 验证react-native-iap配置兼容性
    • 检查AndroidManifest.xml中是否正确声明Billing权限:
      <uses-permission android:name="com.android.vending.BILLING" />
      
    • 确认Module级build.gradle中Billing依赖版本与react-native-iap 12.10.5兼容,该版本对应推荐的Billing库版本为com.android.billingclient:billing:5.2.0,版本不匹配可能引发签名校验异常。
  • Android 13系统特定适配
    • 检查应用是否针对API 33(Android 13)添加了POST_NOTIFICATIONS权限,虽不直接导致支付失败,但权限缺失可能影响Billing服务的正常交互。
    • 确保测试设备的Google Play服务为最新版本,Android 13对Play服务版本要求更高,旧版本易出现兼容性问题。
  • 代码逻辑优化
    • 避免await与.then()混用引发的异步逻辑混乱,修改代码如下:
      try {
        const result = await RNIap.requestPurchase({ skus: [skus] });
        console.log('IAP req product ===>++', result);
        if (Platform.OS === 'android') {
          // 处理Android支付结果逻辑
        } else if (Platform.OS === 'ios') {
          // 处理iOS支付结果逻辑
        }
      } catch (err) {
        console.log("支付错误", err);
      }
      
    • 确保调用requestPurchase前,已成功调用RNIap.initConnection()完成Billing客户端初始化。

测试建议

  • 使用Google Play Console生成的内部测试版APK,或用发布签名证书签名的APK安装到测试设备,禁止使用调试签名打包的安装包。
  • 测试时确保设备已登录指定的许可测试账号,未切换其他Google账号。

内容的提问来源于stack exchange,提问作者React_Coder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 09:56:14