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

无注册免费应用Play Integrity校验方案求助:应对请求限制

针对Play Integrity API调用限制的替代方案建议

核心优化:降低API调用频次

  • 本地安全缓存校验结果:首次校验通过后,将加密的校验凭证存储在Android Keystore这类安全本地存储中。后续启动优先读取缓存,仅在缓存过期(比如每7天)、应用版本更新、或检测到签名/包名异常时,才重新调用Play Integrity API。这种方式能把每日调用量压缩到新用户+过期用户的规模,大概率不会触达10000次的限制。
  • 前置本地校验过滤:在应用启动时先做本地签名校验,快速拦截篡改后的应用,这类请求直接拒绝,无需发起服务器端的API调用。

替代/补充校验手段

  • 本地签名校验实现:在代码中嵌入应用官方签名的哈希值,启动时对比当前APK的签名哈希,不匹配则直接终止流程。虽然无法完全区分是否来自Google Play,但能过滤绝大多数篡改请求。
    // Android本地签名校验示例代码
    public boolean isAppSignatureValid() {
        try {
            PackageInfo pkgInfo = getPackageManager().getPackageInfo(
                getPackageName(), PackageManager.GET_SIGNATURES);
            Signature signature = pkgInfo.signatures[0];
            MessageDigest md = MessageDigest.getInstance("SHA-256");
            md.update(signature.toByteArray());
            String currentSignature = Base64.encodeToString(md.digest(), Base64.DEFAULT);
            // 替换为你的应用官方签名哈希
            String expectedSignature = "YOUR_OFFICIAL_SIGNATURE_HASH";
            return currentSignature.equals(expectedSignature);
        } catch (Exception e) {
            return false;
        }
    }
    
  • 切换SafetyNet Attestation API:该API的免费调用额度为每日50000次,比Play Integrity更高。同样配合本地缓存策略使用,能覆盖更多用户的校验需求。
  • 服务器端风险拦截:对请求做基础风险判断,比如异常高频请求、来自root设备的请求等,直接拒绝这类高风险请求,无需触发校验API。

免费额度内的高效利用

  • 优先保障新用户校验:把API调用额度优先分配给首次启动的新用户,老用户完全依赖本地缓存凭证,既满足防非Play渠道安装的核心需求,又能严格控制调用量。
  • 监控调用阈值:在服务器端统计API调用次数,设置临近额度的告警,触发后自动切换到降级策略(比如仅用本地校验),避免服务中断。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 05:27:07