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

Google Billing Library调用queryPurchasesAsync无法返回已取消订阅资源问题

已取消订阅无法通过queryPurchasesAsync获取的原因
  • queryPurchasesAsync() 的官方设计逻辑就是仅返回当前处于有效状态的购买记录,包含未过期的正常订阅、处于宽限期/账户保留期的异常订阅,已取消且已过期的订阅默认不会被该接口返回,属于预期行为。
  • 测试环境下的订阅过期后被从该接口移除的速度比正式环境更快,通常取消后到下一个续费周期节点就会被清除出返回结果。
获取已取消订阅记录的解决方案
  1. 客户端侧改用queryPurchaseHistoryAsync()接口查询
    该接口专门用于拉取当前应用下当前账号的所有历史购买记录,覆盖已取消、已过期的订阅资源,返回结果中包含完整的IsAutorenewing、过期时间、取消时间等字段,可满足你的读取需求。

注意调用时需要指定正确的Sku类型为订阅类BillingClient.SkuType.SUBS,不要和消耗型商品的查询类型混淆。

  1. 服务端对接Google Play Developer API校验
    生产环境下推荐优先使用服务端调用purchases.subscriptions.get接口,传入订阅的购买token即可拉取到全生命周期的订阅数据,无论订阅处于有效、取消、过期状态都能返回完整信息,同时可以避免客户端数据被篡改的风险,是最可靠的状态校验方案。

  2. 测试阶段的快速验证方案
    如果你目前处于集成测试阶段,可直接登录测试账号的Google Play订阅管理页,或者在Google Play Console的订单管理板块查找对应测试订阅的完整状态,也可以手动调整测试订阅的续费、过期状态验证你的业务逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 11:45:10